diff --git a/.env.example b/.env.example index 8df547e37..76b0825a0 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ COMPOSE_PROJECT_NAME=ghostfolio-development # CACHE -REDIS_HOST=localhost +REDIS_HOST=redis REDIS_PORT=6379 REDIS_PASSWORD= @@ -11,5 +11,5 @@ POSTGRES_USER=user POSTGRES_PASSWORD= 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/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 75e362465..000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,151 +0,0 @@ -{ - "root": true, - "ignorePatterns": ["**/*"], - "plugins": ["@nx"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": { - "@nx/enforce-module-boundaries": [ - "warn", - { - "enforceBuildableLibDependency": true, - "allow": [], - "depConstraints": [ - { - "sourceTag": "*", - "onlyDependOnLibsWithTags": ["*"] - } - ] - } - ], - "@typescript-eslint/no-extra-semi": "error", - "no-extra-semi": "off" - } - }, - { - "files": ["*.ts", "*.tsx"], - "extends": ["plugin:@nx/typescript"] - }, - { - "files": ["*.js", "*.jsx"], - "extends": ["plugin:@nx/javascript"] - }, - { - "files": ["*.ts"], - "plugins": ["eslint-plugin-import", "@typescript-eslint"], - "extends": [ - "plugin:@typescript-eslint/recommended-type-checked", - "plugin:@typescript-eslint/stylistic-type-checked" - ], - "rules": { - "@typescript-eslint/consistent-indexed-object-style": "off", - "@typescript-eslint/dot-notation": "off", - "@typescript-eslint/explicit-member-accessibility": [ - "off", - { - "accessibility": "explicit" - } - ], - "@typescript-eslint/member-ordering": "warn", - "@typescript-eslint/naming-convention": [ - "off", - { - "selector": "default", - "format": ["camelCase"], - "leadingUnderscore": "allow", - "trailingUnderscore": "allow" - }, - { - "selector": ["variable", "classProperty", "typeProperty"], - "format": ["camelCase", "UPPER_CASE"], - "leadingUnderscore": "allow", - "trailingUnderscore": "allow" - }, - { - "selector": "objectLiteralProperty", - "format": null - }, - { - "selector": "enumMember", - "format": ["camelCase", "UPPER_CASE", "PascalCase"] - }, - { - "selector": "typeLike", - "format": ["PascalCase"] - } - ], - "@typescript-eslint/no-empty-interface": "warn", - "@typescript-eslint/no-inferrable-types": [ - "warn", - { - "ignoreParameters": true - } - ], - "@typescript-eslint/no-non-null-assertion": "warn", - "@typescript-eslint/no-shadow": [ - "warn", - { - "hoist": "all" - } - ], - "@typescript-eslint/unified-signatures": "error", - "@typescript-eslint/no-loss-of-precision": "warn", - "@typescript-eslint/no-var-requires": "warn", - "@typescript-eslint/ban-types": "warn", - "arrow-body-style": "off", - "constructor-super": "error", - "eqeqeq": ["error", "smart"], - "guard-for-in": "warn", - "id-blacklist": "off", - "id-match": "off", - "import/no-deprecated": "warn", - "no-bitwise": "error", - "no-caller": "error", - "no-debugger": "error", - "no-empty": "off", - "no-eval": "error", - "no-fallthrough": "error", - "no-new-wrappers": "error", - "no-restricted-imports": ["error", "rxjs/Rx"], - "no-undef-init": "error", - "no-underscore-dangle": "off", - "no-var": "error", - "radix": "error", - "no-unsafe-optional-chaining": "warn", - "no-extra-boolean-cast": "warn", - "no-empty-pattern": "warn", - "no-useless-catch": "warn", - "no-unsafe-finally": "warn", - "no-prototype-builtins": "warn", - "no-async-promise-executor": "warn", - "no-constant-condition": "warn", - - // The following rules are part of @typescript-eslint/recommended-type-checked - // and can be remove once solved - "@typescript-eslint/await-thenable": "warn", - "@typescript-eslint/ban-ts-comment": "warn", - "@typescript-eslint/no-base-to-string": "warn", - "@typescript-eslint/no-explicit-any": "warn", - "@typescript-eslint/no-floating-promises": "warn", - "@typescript-eslint/no-misused-promises": "warn", - "@typescript-eslint/no-redundant-type-constituents": "warn", - "@typescript-eslint/no-unnecessary-type-assertion": "warn", - "@typescript-eslint/no-unsafe-argument": "warn", - "@typescript-eslint/no-unsafe-assignment": "warn", - "@typescript-eslint/no-unsafe-enum-comparison": "warn", - "@typescript-eslint/no-unsafe-member-access": "warn", - "@typescript-eslint/no-unsafe-return": "warn", - "@typescript-eslint/no-unsafe-call": "warn", - "@typescript-eslint/require-await": "warn", - "@typescript-eslint/restrict-template-expressions": "warn", - "@typescript-eslint/unbound-method": "warn", - - // The following rules are part of @typescript-eslint/stylistic-type-checked - // and can be remove once solved - "@typescript-eslint/prefer-nullish-coalescing": "warn" // TODO: Requires strictNullChecks: true - } - } - ], - "extends": ["plugin:storybook/recommended"] -} diff --git a/.github/workflows/extract-locales.yml b/.github/workflows/extract-locales.yml new file mode 100644 index 000000000..c17eac5b6 --- /dev/null +++ b/.github/workflows/extract-locales.yml @@ -0,0 +1,40 @@ +name: Extract locales + +on: + push: + branches: + - main + +permissions: + contents: write + pull-requests: write + +jobs: + extract_locales: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install dependencies + run: npm ci + + - name: Extract locales + run: npm run extract-locales + + - name: Check changes + id: verify-changed-files + uses: tj-actions/verify-changed-files@v20 + + - name: Create pull request + if: steps.verify-changed-files.outputs.files_changed == 'true' + uses: peter-evans/create-pull-request@v7 + with: + author: 'github-actions[bot] ' + branch: 'feature/update-locales' + commit-message: 'Update locales' + delete-branch: true + title: 'Feature/update locales' + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 33f1064ba..de1ef0182 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -94,12 +94,233 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## 2.115.0 - 2024-10-14 +### Added + +- Set up a _GitHub Action_ to automatically extract locales when the `main` branch changes + +### Changed + +- Extended the _Financial Modeling Prep_ service +- Improved the language localization for Ukrainian (`uk`) +- Refreshed the cryptocurrencies list +- Upgraded `date-fns` from version `3.6.0` to `4.1.0` +- Upgraded `rxjs` from version `7.5.6` to `7.8.1` + +### Fixed + +- Fixed an issue with the MIME type detection in the scraper configuration + +## 2.135.0 - 2025-01-19 + +### Changed + +- Moved the language localization for Polski (`pl`) from experimental to general availability +- Extended the _Financial Modeling Prep_ service +- Switched to _ESLint_’s flat config format +- Upgraded `chart.js` from version `4.2.0` to `4.4.7` +- Upgraded `chartjs-chart-treemap` from version `2.3.1` to `3.1.0` +- Upgraded `chartjs-plugin-annotation` from version `2.1.2` to `3.1.0` +- Upgraded `eslint` dependencies +- Upgraded `nestjs` from version `10.1.3` to `10.4.15` +- Upgraded `Nx` from version `20.3.0` to `20.3.2` +- Upgraded `reflect-metadata` from version `0.1.13` to `0.2.2` +- Upgraded `uuid` from version `11.0.2` to `11.0.5` + +## 2.134.0 - 2025-01-15 + +### Added + +- Set up the language localization for Українська (`uk`) + +### Changed + +- Extended the health check endpoint to include database and cache operations (experimental) +- Refactored various `lodash` functions with native JavaScript equivalents +- Improved the language localization for German (`de`) +- Upgraded `prisma` from version `6.1.0` to `6.2.1` + +### Fixed + +- Fixed an issue with the import of activities with type `FEE` (where unit price is `0`) +- Fixed an issue with the renaming of activities with type `FEE`, `INTEREST`, `ITEM` or `LIABILITY` +- Handled an exception in the scraper configuration introduced by the migration from `got` to `fetch` + +## 2.133.1 - 2025-01-09 + +### Added + +- Added a _Copy AI prompt to clipboard_ action to the analysis page (experimental) + ### 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` +- 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`) +- 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 + +- Improved the handling of a missing url in the endpoint to fetch the logo of an asset or a platform +- Fixed the _Storybook_ setup + +## 2.132.0 - 2024-12-30 + +### Added + +- Added the user interface for received access from others + +### Changed + +- 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 +- 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 `prisma` from version `6.0.1` to `6.1.0` +- Upgraded `storybook` from version `8.2.5` to `8.4.7` +- 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 + +- 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`) + +## 2.130.0 - 2024-12-21 + +### 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) +- 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 +- 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` + +## 2.129.0 - 2024-12-14 + +### Added + +- Added `userId` to the `SymbolProfile` database schema + +### 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 + +### 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` + +### 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 + +### Added + +- 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 + +- Added pagination to the users table of the admin control panel + +### 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 +- 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 + +### Changed + +- Improved the style of the symbol search component +- Extended the users table in the admin control panel +- Refreshed the cryptocurrencies list +- Increased the default request timeout (`REQUEST_TIMEOUT`) +- Upgraded `cheerio` from version `1.0.0-rc.12` to `1.0.0` +- Upgraded `prisma` from version `5.22.0` to `6.0.0` + +## 2.124.1 - 2024-11-25 + +### Fixed + +- Fixed the tables style related to sticky columns + +## 2.124.0 - 2024-11-24 + +### Added + +- Added pagination parameters (`skip`, `take`) to the endpoint `GET api/v1/admin/user` +- Added pagination response (`count`) to the endpoint `GET api/v1/admin/user` +- Added `GHOSTFOLIO` as a new data source type + +### Changed + +- Extended the allocations by ETF holding on the allocations page by the parent ETFs (experimental) +- Improved the language localization for German (`de`) +- Upgraded `countries-and-timezones` from version `3.4.1` to `3.7.2` +- Upgraded `Nx` from version `20.0.6` to `20.1.2` + +## 2.123.0 - 2024-11-16 + +### Added + +- Added a blog post: _Black Weeks 2024_ + +### Changed + +- Moved the chart of the holdings tab on the home page from experimental to general availability - Extended the assistant by a holding selector - Separated the _FIRE_ / _X-ray_ page +- Improved the usability to customize the rule thresholds in the _X-ray_ page by introducing range sliders (experimental) +- Improved the language localization for German (`de`) - Improved the language localization for Italian (`it`) - Upgraded `ngx-skeleton-loader` from version `7.0.0` to `9.0.0` +- Upgraded `prisma` from version `5.21.1` to `5.22.0` +- Upgraded `uuid` from version `9.0.1` to `11.0.2` ## 2.122.0 - 2024-11-07 diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index b009679ac..9e32b56eb 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/Dockerfile b/Dockerfile index 0e5c0d275..e2c1e47f4 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 ./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 -COPY ./libs libs -COPY ./apps apps RUN npm run build:production diff --git a/README.md b/README.md index dca360c39..14477ea9a 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) @@ -296,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). diff --git a/apps/api/.eslintrc.json b/apps/api/.eslintrc.json deleted file mode 100644 index 9263d0065..000000000 --- a/apps/api/.eslintrc.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": "../../.eslintrc.json", - "ignorePatterns": ["!**/*"], - "rules": {}, - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "parserOptions": { - "project": ["apps/api/tsconfig.*?.json"] - }, - "rules": {} - }, - { - "files": ["*.ts", "*.tsx"], - "rules": {} - }, - { - "files": ["*.js", "*.jsx"], - "rules": {} - } - ] -} diff --git a/apps/api/eslint.config.cjs b/apps/api/eslint.config.cjs new file mode 100644 index 000000000..043802a0d --- /dev/null +++ b/apps/api/eslint.config.cjs @@ -0,0 +1,31 @@ +const baseConfig = require('../../eslint.config.cjs'); + +module.exports = [ + { + ignores: ['**/dist'] + }, + ...baseConfig, + { + rules: {} + }, + { + files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], + // Override or add rules here + rules: {}, + languageOptions: { + parserOptions: { + project: ['apps/api/tsconfig.*?.json'] + } + } + }, + { + files: ['**/*.ts', '**/*.tsx'], + // Override or add rules here + rules: {} + }, + { + files: ['**/*.js', '**/*.jsx'], + // Override or add rules here + rules: {} + } +]; diff --git a/apps/api/src/app/admin/admin.controller.ts b/apps/api/src/app/admin/admin.controller.ts index 1c8cd55c0..2832c1493 100644 --- a/apps/api/src/app/admin/admin.controller.ts +++ b/apps/api/src/app/admin/admin.controller.ts @@ -246,6 +246,9 @@ export class AdminController { }); } + /** + * @deprecated + */ @Get('market-data/:dataSource/:symbol') @HasPermission(permissions.accessAdminControl) @UseGuards(AuthGuard('jwt'), HasPermissionGuard) @@ -282,6 +285,9 @@ export class AdminController { } } + /** + * @deprecated + */ @HasPermission(permissions.accessAdminControl) @Post('market-data/:dataSource/:symbol') @UseGuards(AuthGuard('jwt'), HasPermissionGuard) @@ -390,7 +396,13 @@ export class AdminController { @Get('user') @HasPermission(permissions.accessAdminControl) @UseGuards(AuthGuard('jwt'), HasPermissionGuard) - public async getUsers(): Promise { - return this.adminService.getUsers(); + public async getUsers( + @Query('skip') skip?: number, + @Query('take') take?: number + ): Promise { + return this.adminService.getUsers({ + skip: isNaN(skip) ? undefined : skip, + take: isNaN(take) ? undefined : take + }); } } diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index 112d774e7..8a09dbdcb 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -140,7 +140,7 @@ export class AdminService { const [settings, transactionCount, userCount] = await Promise.all([ this.propertyService.get(), this.prismaService.order.count(), - this.prismaService.user.count() + this.countUsersWithAnalytics() ]); return { @@ -433,8 +433,19 @@ export class AdminService { }; } - public async getUsers(): Promise { - return { users: await this.getUsersWithAnalytics() }; + public async getUsers({ + skip, + take = Number.MAX_SAFE_INTEGER + }: { + skip?: number; + take?: number; + }): Promise { + const [count, users] = await Promise.all([ + this.countUsersWithAnalytics(), + this.getUsersWithAnalytics({ skip, take }) + ]); + + return { count, users }; } public async patchAssetProfileData({ @@ -514,6 +525,22 @@ export class AdminService { return response; } + private async countUsersWithAnalytics() { + let where: Prisma.UserWhereInput; + + if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { + where = { + NOT: { + Analytics: null + } + }; + } + + return this.prismaService.user.count({ + where + }); + } + private getExtendedPrismaClient() { Logger.debug('Connect extended prisma client', 'AdminService'); @@ -647,7 +674,13 @@ export class AdminService { return { marketData, count: marketData.length }; } - private async getUsersWithAnalytics(): Promise { + private async getUsersWithAnalytics({ + skip, + take + }: { + skip?: number; + take?: number; + }): Promise { let orderBy: Prisma.UserOrderByWithRelationInput = { createdAt: 'desc' }; @@ -668,6 +701,8 @@ export class AdminService { const usersWithAnalytics = await this.prismaService.user.findMany({ orderBy, + skip, + take, where, select: { _count: { @@ -677,6 +712,7 @@ export class AdminService { select: { activityCount: true, country: true, + dataProviderGhostfolioDailyRequests: true, updatedAt: true } }, @@ -684,8 +720,7 @@ export class AdminService { id: true, role: true, Subscription: true - }, - take: 30 + } }); return usersWithAnalytics.map( @@ -713,6 +748,7 @@ export class AdminService { subscription, accountCount: _count.Account || 0, country: Analytics?.country, + dailyApiRequests: Analytics?.dataProviderGhostfolioDailyRequests || 0, lastActivity: Analytics?.updatedAt, transactionCount: _count.Order || 0 }; diff --git a/apps/api/src/app/app.module.ts b/apps/api/src/app/app.module.ts index 2803a0580..6d097aeff 100644 --- a/apps/api/src/app/app.module.ts +++ b/apps/api/src/app/app.module.ts @@ -31,6 +31,10 @@ 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 { AiModule } from './endpoints/ai/ai.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'; @@ -54,6 +58,8 @@ import { UserModule } from './user/user.module'; AdminModule, AccessModule, AccountModule, + AiModule, + ApiKeysModule, AssetModule, AuthDeviceModule, AuthModule, @@ -76,10 +82,12 @@ import { UserModule } from './user/user.module'; ExchangeRateModule, ExchangeRateDataModule, ExportModule, + GhostfolioModule, HealthModule, ImportModule, InfoModule, LogoModule, + MarketDataModule, OrderModule, PlatformModule, PortfolioModule, 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 000000000..ace7fb245 --- /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 67b078c9b..824c432b1 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/benchmark/benchmark.service.ts b/apps/api/src/app/benchmark/benchmark.service.ts index a659281d7..4e466668c 100644 --- a/apps/api/src/app/benchmark/benchmark.service.ts +++ b/apps/api/src/app/benchmark/benchmark.service.ts @@ -38,7 +38,7 @@ import { isSameDay, subDays } from 'date-fns'; -import { isNumber, last, uniqBy } from 'lodash'; +import { isNumber, uniqBy } from 'lodash'; import ms from 'ms'; import { BenchmarkValue } from './interfaces/benchmark-value.interface'; @@ -258,7 +258,7 @@ export class BenchmarkService { } const includesEndDate = isSameDay( - parseDate(last(marketData).date), + parseDate(marketData.at(-1).date), endDate ); diff --git a/apps/api/src/app/endpoints/ai/ai.controller.ts b/apps/api/src/app/endpoints/ai/ai.controller.ts new file mode 100644 index 000000000..981b26aa2 --- /dev/null +++ b/apps/api/src/app/endpoints/ai/ai.controller.ts @@ -0,0 +1,39 @@ +import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator'; +import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard'; +import { + DEFAULT_CURRENCY, + DEFAULT_LANGUAGE_CODE +} from '@ghostfolio/common/config'; +import { AiPromptResponse } from '@ghostfolio/common/interfaces'; +import { permissions } from '@ghostfolio/common/permissions'; +import type { RequestWithUser } from '@ghostfolio/common/types'; + +import { Controller, Get, Inject, UseGuards } from '@nestjs/common'; +import { REQUEST } from '@nestjs/core'; +import { AuthGuard } from '@nestjs/passport'; + +import { AiService } from './ai.service'; + +@Controller('ai') +export class AiController { + public constructor( + private readonly aiService: AiService, + @Inject(REQUEST) private readonly request: RequestWithUser + ) {} + + @Get('prompt') + @HasPermission(permissions.readAiPrompt) + @UseGuards(AuthGuard('jwt'), HasPermissionGuard) + public async getPrompt(): Promise { + const prompt = await this.aiService.getPrompt({ + impersonationId: undefined, + languageCode: + this.request.user.Settings.settings.language ?? DEFAULT_LANGUAGE_CODE, + userCurrency: + this.request.user.Settings.settings.baseCurrency ?? DEFAULT_CURRENCY, + userId: this.request.user.id + }); + + return { prompt }; + } +} diff --git a/apps/api/src/app/endpoints/ai/ai.module.ts b/apps/api/src/app/endpoints/ai/ai.module.ts new file mode 100644 index 000000000..5a30f3264 --- /dev/null +++ b/apps/api/src/app/endpoints/ai/ai.module.ts @@ -0,0 +1,51 @@ +import { AccountBalanceService } from '@ghostfolio/api/app/account-balance/account-balance.service'; +import { AccountService } from '@ghostfolio/api/app/account/account.service'; +import { OrderModule } from '@ghostfolio/api/app/order/order.module'; +import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory'; +import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service'; +import { PortfolioService } from '@ghostfolio/api/app/portfolio/portfolio.service'; +import { RulesService } from '@ghostfolio/api/app/portfolio/rules.service'; +import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module'; +import { UserModule } from '@ghostfolio/api/app/user/user.module'; +import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module'; +import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; +import { ExchangeRateDataModule } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.module'; +import { ImpersonationModule } from '@ghostfolio/api/services/impersonation/impersonation.module'; +import { MarketDataModule } from '@ghostfolio/api/services/market-data/market-data.module'; +import { MarketDataService } from '@ghostfolio/api/services/market-data/market-data.service'; +import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module'; +import { PortfolioSnapshotQueueModule } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.module'; +import { SymbolProfileModule } from '@ghostfolio/api/services/symbol-profile/symbol-profile.module'; + +import { Module } from '@nestjs/common'; + +import { AiController } from './ai.controller'; +import { AiService } from './ai.service'; + +@Module({ + controllers: [AiController], + imports: [ + ConfigurationModule, + DataProviderModule, + ExchangeRateDataModule, + ImpersonationModule, + MarketDataModule, + OrderModule, + PortfolioSnapshotQueueModule, + PrismaModule, + RedisCacheModule, + SymbolProfileModule, + UserModule + ], + providers: [ + AccountBalanceService, + AccountService, + AiService, + CurrentRateService, + MarketDataService, + PortfolioCalculatorFactory, + PortfolioService, + RulesService + ] +}) +export class AiModule {} diff --git a/apps/api/src/app/endpoints/ai/ai.service.ts b/apps/api/src/app/endpoints/ai/ai.service.ts new file mode 100644 index 000000000..59dec6add --- /dev/null +++ b/apps/api/src/app/endpoints/ai/ai.service.ts @@ -0,0 +1,60 @@ +import { PortfolioService } from '@ghostfolio/api/app/portfolio/portfolio.service'; + +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class AiService { + public constructor(private readonly portfolioService: PortfolioService) {} + + public async getPrompt({ + impersonationId, + languageCode, + userCurrency, + userId + }: { + impersonationId: string; + languageCode: string; + userCurrency: string; + userId: string; + }) { + const { holdings } = await this.portfolioService.getDetails({ + impersonationId, + userId + }); + + const holdingsTable = [ + '| Name | Symbol | Currency | Asset Class | Asset Sub Class | Allocation in Percentage |', + '| --- | --- | --- | --- | --- | --- |', + ...Object.values(holdings) + .sort((a, b) => { + return b.allocationInPercentage - a.allocationInPercentage; + }) + .map( + ({ + allocationInPercentage, + assetClass, + assetSubClass, + currency, + name, + symbol + }) => { + return `| ${name} | ${symbol} | ${currency} | ${assetClass} | ${assetSubClass} | ${(allocationInPercentage * 100).toFixed(3)}% |`; + } + ) + ]; + + return [ + `You are a neutral financial assistant. Please analyze the following investment portfolio (base currency being ${userCurrency}) in simple words.`, + ...holdingsTable, + 'Structure your answer with these sections:', + 'Overview: Briefly summarize the portfolio’s composition and allocation rationale.', + 'Risk Assessment: Identify potential risks, including market volatility, concentration, and sectoral imbalances.', + 'Advantages: Highlight strengths, focusing on growth potential, diversification, or other benefits.', + 'Disadvantages: Point out weaknesses, such as overexposure or lack of defensive assets.', + 'Target Group: Discuss who this portfolio might suit (e.g., risk tolerance, investment goals, life stages, and experience levels).', + 'Optimization Ideas: Offer ideas to complement the portfolio, ensuring they are constructive and neutral in tone.', + 'Conclusion: Provide a concise summary highlighting key insights.', + `Provide your answer in the following language: ${languageCode}.` + ].join('\n'); + } +} 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 000000000..cbc68df93 --- /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 000000000..123f11854 --- /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/get-dividends.dto.ts b/apps/api/src/app/endpoints/data-providers/ghostfolio/get-dividends.dto.ts new file mode 100644 index 000000000..6df457c64 --- /dev/null +++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/get-dividends.dto.ts @@ -0,0 +1,15 @@ +import { Granularity } from '@ghostfolio/common/types'; + +import { IsIn, IsISO8601, IsOptional } from 'class-validator'; + +export class GetDividendsDto { + @IsISO8601() + from: string; + + @IsIn(['day', 'month'] as Granularity[]) + @IsOptional() + granularity: Granularity; + + @IsISO8601() + to: string; +} diff --git a/apps/api/src/app/endpoints/data-providers/ghostfolio/get-historical.dto.ts b/apps/api/src/app/endpoints/data-providers/ghostfolio/get-historical.dto.ts new file mode 100644 index 000000000..385c51d52 --- /dev/null +++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/get-historical.dto.ts @@ -0,0 +1,15 @@ +import { Granularity } from '@ghostfolio/common/types'; + +import { IsIn, IsISO8601, IsOptional } from 'class-validator'; + +export class GetHistoricalDto { + @IsISO8601() + from: string; + + @IsIn(['day', 'month'] as Granularity[]) + @IsOptional() + granularity: Granularity; + + @IsISO8601() + to: string; +} diff --git a/apps/api/src/app/endpoints/data-providers/ghostfolio/get-quotes.dto.ts b/apps/api/src/app/endpoints/data-providers/ghostfolio/get-quotes.dto.ts new file mode 100644 index 000000000..e83c1be82 --- /dev/null +++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/get-quotes.dto.ts @@ -0,0 +1,10 @@ +import { Transform } from 'class-transformer'; +import { IsString } from 'class-validator'; + +export class GetQuotesDto { + @IsString({ each: true }) + @Transform(({ value }) => + typeof value === 'string' ? value.split(',') : value + ) + symbols: string[]; +} 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 new file mode 100644 index 000000000..f3386f8a7 --- /dev/null +++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts @@ -0,0 +1,375 @@ +import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator'; +import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard'; +import { parseDate } from '@ghostfolio/common/helper'; +import { + DataProviderGhostfolioStatusResponse, + DividendsResponse, + HistoricalResponse, + LookupResponse, + QuotesResponse +} from '@ghostfolio/common/interfaces'; +import { permissions } from '@ghostfolio/common/permissions'; +import { RequestWithUser } from '@ghostfolio/common/types'; + +import { + Controller, + Get, + HttpException, + Inject, + Param, + Query, + UseGuards, + Version +} from '@nestjs/common'; +import { REQUEST } from '@nestjs/core'; +import { AuthGuard } from '@nestjs/passport'; +import { getReasonPhrase, StatusCodes } from 'http-status-codes'; + +import { GetDividendsDto } from './get-dividends.dto'; +import { GetHistoricalDto } from './get-historical.dto'; +import { GetQuotesDto } from './get-quotes.dto'; +import { GhostfolioService } from './ghostfolio.service'; + +@Controller('data-providers/ghostfolio') +export class GhostfolioController { + public constructor( + private readonly ghostfolioService: GhostfolioService, + @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 + ): 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 + ); + } + } + + /** + * @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 + ): 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 + ); + } + } + + /** + * @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 = '' + ): 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 + ); + } + } + + /** + * @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 { + 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 + ); + } + } + + /** + * @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.module.ts b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.module.ts new file mode 100644 index 000000000..01691bcf4 --- /dev/null +++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.module.ts @@ -0,0 +1,83 @@ +import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module'; +import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; +import { CryptocurrencyModule } from '@ghostfolio/api/services/cryptocurrency/cryptocurrency.module'; +import { AlphaVantageService } from '@ghostfolio/api/services/data-provider/alpha-vantage/alpha-vantage.service'; +import { CoinGeckoService } from '@ghostfolio/api/services/data-provider/coingecko/coingecko.service'; +import { YahooFinanceDataEnhancerService } from '@ghostfolio/api/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service'; +import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; +import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service'; +import { EodHistoricalDataService } from '@ghostfolio/api/services/data-provider/eod-historical-data/eod-historical-data.service'; +import { FinancialModelingPrepService } from '@ghostfolio/api/services/data-provider/financial-modeling-prep/financial-modeling-prep.service'; +import { GoogleSheetsService } from '@ghostfolio/api/services/data-provider/google-sheets/google-sheets.service'; +import { ManualService } from '@ghostfolio/api/services/data-provider/manual/manual.service'; +import { RapidApiService } from '@ghostfolio/api/services/data-provider/rapid-api/rapid-api.service'; +import { YahooFinanceService } from '@ghostfolio/api/services/data-provider/yahoo-finance/yahoo-finance.service'; +import { MarketDataModule } from '@ghostfolio/api/services/market-data/market-data.module'; +import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module'; +import { PropertyModule } from '@ghostfolio/api/services/property/property.module'; +import { SymbolProfileModule } from '@ghostfolio/api/services/symbol-profile/symbol-profile.module'; + +import { Module } from '@nestjs/common'; + +import { GhostfolioController } from './ghostfolio.controller'; +import { GhostfolioService } from './ghostfolio.service'; + +@Module({ + controllers: [GhostfolioController], + imports: [ + CryptocurrencyModule, + DataProviderModule, + MarketDataModule, + PrismaModule, + PropertyModule, + RedisCacheModule, + SymbolProfileModule + ], + providers: [ + AlphaVantageService, + CoinGeckoService, + ConfigurationService, + DataProviderService, + EodHistoricalDataService, + FinancialModelingPrepService, + GhostfolioService, + GoogleSheetsService, + ManualService, + RapidApiService, + YahooFinanceService, + YahooFinanceDataEnhancerService, + { + inject: [ + AlphaVantageService, + CoinGeckoService, + EodHistoricalDataService, + FinancialModelingPrepService, + GoogleSheetsService, + ManualService, + RapidApiService, + YahooFinanceService + ], + provide: 'DataProviderInterfaces', + useFactory: ( + alphaVantageService, + coinGeckoService, + eodHistoricalDataService, + financialModelingPrepService, + googleSheetsService, + manualService, + rapidApiService, + yahooFinanceService + ) => [ + alphaVantageService, + coinGeckoService, + eodHistoricalDataService, + financialModelingPrepService, + googleSheetsService, + manualService, + rapidApiService, + yahooFinanceService + ] + } + ] +}) +export class GhostfolioModule {} 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 new file mode 100644 index 000000000..78685a61b --- /dev/null +++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts @@ -0,0 +1,303 @@ +import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; +import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service'; +import { + GetDividendsParams, + GetHistoricalParams, + GetQuotesParams, + GetSearchParams +} from '@ghostfolio/api/services/data-provider/interfaces/data-provider.interface'; +import { IDataProviderHistoricalResponse } from '@ghostfolio/api/services/interfaces/interfaces'; +import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; +import { PropertyService } from '@ghostfolio/api/services/property/property.service'; +import { + DEFAULT_CURRENCY, + DERIVED_CURRENCIES +} from '@ghostfolio/common/config'; +import { PROPERTY_DATA_SOURCES_GHOSTFOLIO_DATA_PROVIDER_MAX_REQUESTS } from '@ghostfolio/common/config'; +import { + DataProviderInfo, + DividendsResponse, + HistoricalResponse, + LookupItem, + LookupResponse, + QuotesResponse +} from '@ghostfolio/common/interfaces'; +import { UserWithSettings } from '@ghostfolio/common/types'; + +import { Injectable, Logger } from '@nestjs/common'; +import { DataSource } from '@prisma/client'; +import { Big } from 'big.js'; + +@Injectable() +export class GhostfolioService { + public constructor( + private readonly configurationService: ConfigurationService, + private readonly dataProviderService: DataProviderService, + private readonly prismaService: PrismaService, + private readonly propertyService: PropertyService + ) {} + + public async getDividends({ + from, + granularity, + requestTimeout = this.configurationService.get('REQUEST_TIMEOUT'), + symbol, + to + }: GetDividendsParams) { + const result: DividendsResponse = { dividends: {} }; + + try { + const promises: Promise<{ + [date: string]: IDataProviderHistoricalResponse; + }>[] = []; + + for (const dataProviderService of this.getDataProviderServices()) { + promises.push( + dataProviderService + .getDividends({ + from, + granularity, + requestTimeout, + symbol, + to + }) + .then((dividends) => { + result.dividends = dividends; + + return dividends; + }) + ); + } + + await Promise.all(promises); + + return result; + } catch (error) { + Logger.error(error, 'GhostfolioService'); + + throw error; + } + } + + public async getHistorical({ + from, + granularity, + requestTimeout, + to, + symbol + }: GetHistoricalParams) { + const result: HistoricalResponse = { historicalData: {} }; + + try { + const promises: Promise<{ + [symbol: string]: { [date: string]: IDataProviderHistoricalResponse }; + }>[] = []; + + for (const dataProviderService of this.getDataProviderServices()) { + promises.push( + dataProviderService + .getHistorical({ + from, + granularity, + requestTimeout, + symbol, + to + }) + .then((historicalData) => { + result.historicalData = historicalData[symbol]; + + return historicalData; + }) + ); + } + + await Promise.all(promises); + + return result; + } catch (error) { + Logger.error(error, 'GhostfolioService'); + + throw error; + } + } + + public async getMaxDailyRequests() { + return parseInt( + ((await this.propertyService.getByKey( + PROPERTY_DATA_SOURCES_GHOSTFOLIO_DATA_PROVIDER_MAX_REQUESTS + )) as string) || '0', + 10 + ); + } + + public async getQuotes({ requestTimeout, symbols }: GetQuotesParams) { + const results: QuotesResponse = { quotes: {} }; + + try { + const promises: Promise[] = []; + + for (const dataProvider of this.getDataProviderServices()) { + const maximumNumberOfSymbolsPerRequest = + dataProvider.getMaxNumberOfSymbolsPerRequest?.() ?? + Number.MAX_SAFE_INTEGER; + + for ( + let i = 0; + i < symbols.length; + i += maximumNumberOfSymbolsPerRequest + ) { + const symbolsChunk = symbols.slice( + i, + i + maximumNumberOfSymbolsPerRequest + ); + + const promise = Promise.resolve( + dataProvider.getQuotes({ requestTimeout, symbols: symbolsChunk }) + ); + + promises.push( + promise.then(async (result) => { + for (const [symbol, dataProviderResponse] of Object.entries( + result + )) { + dataProviderResponse.dataSource = 'GHOSTFOLIO'; + + if ( + [ + ...DERIVED_CURRENCIES.map(({ currency }) => { + return `${DEFAULT_CURRENCY}${currency}`; + }), + `${DEFAULT_CURRENCY}USX` + ].includes(symbol) + ) { + continue; + } + + results.quotes[symbol] = dataProviderResponse; + + for (const { + currency, + factor, + rootCurrency + } of DERIVED_CURRENCIES) { + if (symbol === `${DEFAULT_CURRENCY}${rootCurrency}`) { + results.quotes[`${DEFAULT_CURRENCY}${currency}`] = { + ...dataProviderResponse, + currency, + marketPrice: new Big( + result[`${DEFAULT_CURRENCY}${rootCurrency}`].marketPrice + ) + .mul(factor) + .toNumber(), + marketState: 'open' + }; + } + } + } + }) + ); + } + + await Promise.all(promises); + } + + return results; + } catch (error) { + Logger.error(error, 'GhostfolioService'); + + throw error; + } + } + + public async getStatus({ user }: { user: UserWithSettings }) { + return { + dailyRequests: user.dataProviderGhostfolioDailyRequests, + dailyRequestsMax: await this.getMaxDailyRequests(), + subscription: user.subscription + }; + } + + public async incrementDailyRequests({ userId }: { userId: string }) { + await this.prismaService.analytics.update({ + data: { + dataProviderGhostfolioDailyRequests: { increment: 1 } + }, + where: { userId } + }); + } + + public async lookup({ + includeIndices = false, + query + }: GetSearchParams): Promise { + const results: LookupResponse = { items: [] }; + + if (!query) { + return results; + } + + try { + let lookupItems: LookupItem[] = []; + const promises: Promise<{ items: LookupItem[] }>[] = []; + + if (query?.length < 2) { + return { items: lookupItems }; + } + + for (const dataProviderService of this.getDataProviderServices()) { + promises.push( + dataProviderService.search({ + includeIndices, + query + }) + ); + } + + const searchResults = await Promise.all(promises); + + for (const { items } of searchResults) { + if (items?.length > 0) { + lookupItems = lookupItems.concat(items); + } + } + + const filteredItems = lookupItems + .filter(({ currency }) => { + // Only allow symbols with supported currency + return currency ? true : false; + }) + .sort(({ name: name1 }, { name: name2 }) => { + return name1?.toLowerCase().localeCompare(name2?.toLowerCase()); + }) + .map((lookupItem) => { + lookupItem.dataProviderInfo = this.getDataProviderInfo(); + lookupItem.dataSource = 'GHOSTFOLIO'; + + return lookupItem; + }); + + results.items = filteredItems; + return results; + } catch (error) { + Logger.error(error, 'GhostfolioService'); + + throw error; + } + } + + private getDataProviderInfo(): DataProviderInfo { + return { + isPremium: false, + name: 'Ghostfolio Premium', + url: 'https://ghostfol.io' + }; + } + + private getDataProviderServices() { + return this.configurationService + .get('DATA_SOURCES_GHOSTFOLIO_DATA_PROVIDER') + .map((dataSource) => { + return this.dataProviderService.getDataProvider(DataSource[dataSource]); + }); + } +} 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 000000000..b4aef807a --- /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 000000000..2050889fd --- /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 000000000..d07b189b2 --- /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/api/src/app/health/health.controller.ts b/apps/api/src/app/health/health.controller.ts index 62ee20419..6ff09825b 100644 --- a/apps/api/src/app/health/health.controller.ts +++ b/apps/api/src/app/health/health.controller.ts @@ -3,13 +3,14 @@ import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interce import { Controller, Get, - HttpCode, HttpException, HttpStatus, Param, + Res, UseInterceptors } from '@nestjs/common'; import { DataSource } from '@prisma/client'; +import { Response } from 'express'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { HealthService } from './health.service'; @@ -19,9 +20,20 @@ export class HealthController { public constructor(private readonly healthService: HealthService) {} @Get() - @HttpCode(HttpStatus.OK) - public getHealth() { - return { status: getReasonPhrase(StatusCodes.OK) }; + public async getHealth(@Res() response: Response) { + const databaseServiceHealthy = await this.healthService.isDatabaseHealthy(); + const redisCacheServiceHealthy = + await this.healthService.isRedisCacheHealthy(); + + if (databaseServiceHealthy && redisCacheServiceHealthy) { + return response + .status(HttpStatus.OK) + .json({ status: getReasonPhrase(StatusCodes.OK) }); + } else { + return response + .status(HttpStatus.SERVICE_UNAVAILABLE) + .json({ status: getReasonPhrase(StatusCodes.SERVICE_UNAVAILABLE) }); + } } @Get('data-enhancer/:name') diff --git a/apps/api/src/app/health/health.module.ts b/apps/api/src/app/health/health.module.ts index 6ed464401..b8c4d5810 100644 --- a/apps/api/src/app/health/health.module.ts +++ b/apps/api/src/app/health/health.module.ts @@ -1,6 +1,8 @@ +import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module'; import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module'; import { DataEnhancerModule } from '@ghostfolio/api/services/data-provider/data-enhancer/data-enhancer.module'; import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; +import { PropertyModule } from '@ghostfolio/api/services/property/property.module'; import { Module } from '@nestjs/common'; @@ -12,6 +14,8 @@ import { HealthService } from './health.service'; imports: [ DataEnhancerModule, DataProviderModule, + PropertyModule, + RedisCacheModule, TransformDataSourceInRequestModule ], providers: [HealthService] diff --git a/apps/api/src/app/health/health.service.ts b/apps/api/src/app/health/health.service.ts index b0c811392..f08f33a1e 100644 --- a/apps/api/src/app/health/health.service.ts +++ b/apps/api/src/app/health/health.service.ts @@ -1,5 +1,8 @@ +import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service'; import { DataEnhancerService } from '@ghostfolio/api/services/data-provider/data-enhancer/data-enhancer.service'; import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service'; +import { PropertyService } from '@ghostfolio/api/services/property/property.service'; +import { PROPERTY_CURRENCIES } from '@ghostfolio/common/config'; import { Injectable } from '@nestjs/common'; import { DataSource } from '@prisma/client'; @@ -8,7 +11,9 @@ import { DataSource } from '@prisma/client'; export class HealthService { public constructor( private readonly dataEnhancerService: DataEnhancerService, - private readonly dataProviderService: DataProviderService + private readonly dataProviderService: DataProviderService, + private readonly propertyService: PropertyService, + private readonly redisCacheService: RedisCacheService ) {} public async hasResponseFromDataEnhancer(aName: string) { @@ -18,4 +23,24 @@ export class HealthService { public async hasResponseFromDataProvider(aDataSource: DataSource) { return this.dataProviderService.checkQuote(aDataSource); } + + public async isDatabaseHealthy() { + try { + await this.propertyService.getByKey(PROPERTY_CURRENCIES); + + return true; + } catch { + return false; + } + } + + public async isRedisCacheHealthy() { + try { + const isHealthy = await this.redisCacheService.isHealthy(); + + return isHealthy; + } catch { + return false; + } + } } diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index 5e676c0a6..0d393bfeb 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -30,7 +30,7 @@ import { Injectable } from '@nestjs/common'; import { DataSource, Prisma, SymbolProfile } from '@prisma/client'; import { Big } from 'big.js'; import { endOfToday, format, isAfter, isSameSecond, parseISO } from 'date-fns'; -import { uniqBy } from 'lodash'; +import { isNumber, uniqBy } from 'lodash'; import { v4 as uuidv4 } from 'uuid'; @Injectable() @@ -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 = @@ -328,7 +328,7 @@ export class ImportService { date ); - if (!unitPrice) { + if (!isNumber(unitPrice)) { throw new Error( `activities.${index} historical exchange rate at ${format( date, @@ -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: { @@ -582,12 +584,13 @@ export class ImportService { const assetProfiles: { [assetProfileIdentifier: string]: Partial; } = {}; + const dataSources = await this.dataProviderService.getDataSources(); for (const [ index, { currency, dataSource, symbol, type } ] of activitiesDto.entries()) { - if (!this.configurationService.get('DATA_SOURCES').includes(dataSource)) { + if (!dataSources.includes(dataSource)) { throw new Error( `activities.${index}.dataSource ("${dataSource}") is not valid` ); diff --git a/apps/api/src/app/info/info.service.ts b/apps/api/src/app/info/info.service.ts index 62a78d1d8..1af41520d 100644 --- a/apps/api/src/app/info/info.service.ts +++ b/apps/api/src/app/info/info.service.ts @@ -7,6 +7,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate- import { PropertyService } from '@ghostfolio/api/services/property/property.service'; import { DEFAULT_CURRENCY, + HEADER_KEY_TOKEN, PROPERTY_BETTER_UPTIME_MONITOR_ID, PROPERTY_COUNTRIES_OF_SUBSCRIBERS, PROPERTY_DEMO_USER_ID, @@ -32,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 { @@ -154,20 +154,15 @@ 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`, + const { pull_count } = (await fetch( + '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(); + ).then((res) => res.json())) as { pull_count: number }; return pull_count; } catch (error) { @@ -179,22 +174,17 @@ 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 - }); + 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); return extractNumberFromString({ value: $( - `a[href="/ghostfolio/ghostfolio/graphs/contributors"] .Counter` + 'a[href="/ghostfolio/ghostfolio/graphs/contributors"] .Counter' ).text() }); } catch (error) { @@ -206,20 +196,15 @@ 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`, + const { stargazers_count } = (await fetch( + '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(); + ).then((res) => res.json())) as { stargazers_count: number }; return stargazers_count; } catch (error) { @@ -334,27 +319,22 @@ 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( + const { data } = await fetch( `https://uptime.betterstack.com/api/v2/monitors/${monitorId}/sla?from=${format( subDays(new Date(), 90), DATE_FORMAT )}&to${format(new Date(), DATE_FORMAT)}`, { headers: { - Authorization: `Bearer ${this.configurationService.get( + [HEADER_KEY_TOKEN]: `Bearer ${this.configurationService.get( 'API_KEY_BETTER_UPTIME' )}` }, - // @ts-ignore - signal: abortController.signal + 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.controller.ts b/apps/api/src/app/logo/logo.controller.ts index 0982a793f..fdbe430c9 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 908921a19..ba1acdd29 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() @@ -29,7 +28,7 @@ export class LogoService { { dataSource, symbol } ]); - if (!assetProfile) { + if (!assetProfile?.url) { throw new HttpException( getReasonPhrase(StatusCodes.NOT_FOUND), StatusCodes.NOT_FOUND @@ -39,24 +38,26 @@ 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) { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - - return got( + 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' }, - // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) } - ).buffer(); + ).then((res) => res.blob()); + + return { + buffer: await blob.arrayBuffer().then((arrayBuffer) => { + return Buffer.from(arrayBuffer); + }), + type: blob.type + }; } } diff --git a/apps/api/src/app/order/order.service.ts b/apps/api/src/app/order/order.service.ts index 18f996a52..dbe30c914 100644 --- a/apps/api/src/app/order/order.service.ts +++ b/apps/api/src/app/order/order.service.ts @@ -100,7 +100,7 @@ export class OrderService { userId: string; } ): Promise { - let Account; + let Account: Prisma.AccountCreateNestedOneWithoutOrderInput; if (data.accountId) { Account = { @@ -131,6 +131,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 @@ -230,10 +231,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); } diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts index bb83b98a8..4cfe0e27a 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts @@ -49,7 +49,7 @@ import { min, subDays } from 'date-fns'; -import { first, isNumber, last, sortBy, sum, uniq, uniqBy } from 'lodash'; +import { isNumber, sortBy, sum, uniq, uniqBy } from 'lodash'; export abstract class PortfolioCalculator { protected static readonly ENABLE_LOGGING = false; @@ -164,7 +164,7 @@ export abstract class PortfolioCalculator { @LogPerformance public async computeSnapshot(): Promise { - const lastTransactionPoint = last(this.transactionPoints); + const lastTransactionPoint = this.transactionPoints.at(-1); const transactionPoints = this.transactionPoints?.filter(({ date }) => { return isBefore(parseDate(date), this.endDate); @@ -173,6 +173,7 @@ export abstract class PortfolioCalculator { if (!transactionPoints.length) { return { currentValueInBaseCurrency: new Big(0), + errors: [], hasErrors: false, historicalData: [], positions: [], @@ -765,7 +766,35 @@ export abstract class PortfolioCalculator { return { chart }; } - @LogPerformance + public getStartDate() { + let firstAccountBalanceDate: Date; + let firstActivityDate: Date; + + try { + const firstAccountBalanceDateString = this.accountBalanceItems[0]?.date; + firstAccountBalanceDate = firstAccountBalanceDateString + ? parseDate(firstAccountBalanceDateString) + : new Date(); + } catch (error) { + firstAccountBalanceDate = new Date(); + } + + try { + const firstActivityDateString = this.transactionPoints[0].date; + firstActivityDate = firstActivityDateString + ? parseDate(firstActivityDateString) + : new Date(); + } catch (error) { + firstActivityDate = new Date(); + } + + return min([firstAccountBalanceDate, firstActivityDate]); + } + + public getTransactionPoints() { + return this.transactionPoints; + } + public async getValuablesInBaseCurrency() { await this.snapshotPromise; @@ -1000,37 +1029,6 @@ export abstract class PortfolioCalculator { } } - public getStartDate() { - let firstAccountBalanceDate: Date; - let firstActivityDate: Date; - - try { - const firstAccountBalanceDateString = first( - this.accountBalanceItems - )?.date; - firstAccountBalanceDate = firstAccountBalanceDateString - ? parseDate(firstAccountBalanceDateString) - : new Date(); - } catch (error) { - firstAccountBalanceDate = new Date(); - } - - try { - const firstActivityDateString = this.transactionPoints[0].date; - firstActivityDate = firstActivityDateString - ? parseDate(firstActivityDateString) - : new Date(); - } catch (error) { - firstActivityDate = new Date(); - } - - return min([firstAccountBalanceDate, firstActivityDate]); - } - - public getTransactionPoints() { - return this.transactionPoints; - } - private getChartDateMap({ endDate, startDate, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts index 3ffe0bfbd..70123d68f 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts @@ -19,7 +19,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -202,7 +201,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: -15.8, netPerformanceInPercentage: -0.05528341497550734703, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts index 86110b11f..bee901745 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts @@ -19,7 +19,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -187,7 +186,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: -15.8, netPerformanceInPercentage: -0.05528341497550734703, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts index b83479ef8..ff4ad94b6 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts @@ -19,7 +19,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -178,7 +177,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: 23.05, netPerformanceInPercentage: 0.08437042459736457, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts index d321f104e..09898aa30 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts @@ -20,7 +20,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -206,7 +205,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: new Big('27172.74').mul(0.97373).toNumber(), netPerformanceInPercentage: 42.41983590271396609433, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts index a0784542f..5f543b223 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts @@ -19,7 +19,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -159,7 +158,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: 0, netPerformanceInPercentage: 0, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts index 501b97bf7..11c09365e 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts @@ -20,7 +20,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -185,7 +184,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: new Big('26.33').mul(0.8854).toNumber(), netPerformanceInPercentage: 0.29544434470377019749, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts index 3be884154..a1af61907 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts @@ -19,7 +19,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -159,7 +158,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: 0, netPerformanceInPercentage: 0, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts index 3cb84ca14..a6ea7b8b8 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts @@ -20,7 +20,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { return { @@ -191,7 +190,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ totalInvestmentValueWithCurrencyEffect: 298.58 }) diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts index 888d1e968..e5b6da13e 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts @@ -21,7 +21,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; import { join } from 'path'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { @@ -183,7 +182,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: 17.68, netPerformanceInPercentage: 0.12184460284330327256, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts index 575d01dc6..ecb0dfd0e 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts @@ -21,7 +21,6 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po import { parseDate } from '@ghostfolio/common/helper'; import { Big } from 'big.js'; -import { last } from 'lodash'; import { join } from 'path'; jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { @@ -230,7 +229,7 @@ describe('PortfolioCalculator', () => { totalValuablesWithCurrencyEffect: new Big('0') }); - expect(last(portfolioSnapshot.historicalData)).toMatchObject( + expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject( expect.objectContaining({ netPerformance: 19.86, netPerformanceInPercentage: 0.13100263852242744063, 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 3474a4e7e..d25e219b4 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts @@ -13,7 +13,7 @@ import { DateRange } from '@ghostfolio/common/types'; import { Logger } from '@nestjs/common'; import { Big } from 'big.js'; import { addMilliseconds, differenceInDays, format, isBefore } from 'date-fns'; -import { cloneDeep, first, last, sortBy } from 'lodash'; +import { cloneDeep, sortBy } from 'lodash'; export class TWRPortfolioCalculator extends PortfolioCalculator { private chartDates: string[]; @@ -101,6 +101,7 @@ export class TWRPortfolioCalculator extends PortfolioCalculator { totalInterestWithCurrencyEffect, totalInvestment, totalInvestmentWithCurrencyEffect, + errors: [], historicalData: [], totalLiabilitiesWithCurrencyEffect: new Big(0), totalValuablesWithCurrencyEffect: new Big(0) @@ -224,7 +225,7 @@ export class TWRPortfolioCalculator extends PortfolioCalculator { }; } - const dateOfFirstTransaction = new Date(first(orders).date); + const dateOfFirstTransaction = new Date(orders[0].date); const endDateString = format(end, DATE_FORMAT); const startDateString = format(start, DATE_FORMAT); @@ -347,7 +348,7 @@ export class TWRPortfolioCalculator extends PortfolioCalculator { }); } - const lastOrder = last(orders); + const lastOrder = orders.at(-1); lastUnitPrice = lastOrder.unitPriceFromMarketData ?? lastOrder.unitPrice; } diff --git a/apps/api/src/app/portfolio/current-rate.service.ts b/apps/api/src/app/portfolio/current-rate.service.ts index ab7bf2ebf..058bf1dd5 100644 --- a/apps/api/src/app/portfolio/current-rate.service.ts +++ b/apps/api/src/app/portfolio/current-rate.service.ts @@ -13,7 +13,7 @@ import type { RequestWithUser } from '@ghostfolio/common/types'; import { Inject, Injectable } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { isBefore, isToday } from 'date-fns'; -import { flatten, isEmpty, uniqBy } from 'lodash'; +import { isEmpty, uniqBy } from 'lodash'; import { GetValueObject } from './interfaces/get-value-object.interface'; import { GetValuesObject } from './interfaces/get-values-object.interface'; @@ -102,7 +102,9 @@ export class CurrentRateService { }) ); - const values = flatten(await Promise.all(promises)); + const values = await Promise.all(promises).then((array) => { + return array.flat(); + }); const response: GetValuesObject = { dataProviderInfos, diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index e33027fb6..beb75001b 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -26,7 +26,7 @@ import { PortfolioHoldingsResponse, PortfolioInvestments, PortfolioPerformanceResponse, - PortfolioReport + PortfolioReportResponse } from '@ghostfolio/common/interfaces'; import { hasReadRestrictedAccessPermission, @@ -161,24 +161,22 @@ export class PortfolioController { portfolioPosition.investment / totalInvestment; portfolioPosition.valueInPercentage = portfolioPosition.valueInBaseCurrency / totalValue; - (portfolioPosition.assetClass = hasDetails + portfolioPosition.assetClass = hasDetails ? portfolioPosition.assetClass - : undefined), - (portfolioPosition.assetSubClass = hasDetails - ? portfolioPosition.assetSubClass - : undefined), - (portfolioPosition.countries = hasDetails - ? portfolioPosition.countries - : []), - (portfolioPosition.currency = hasDetails - ? portfolioPosition.currency - : undefined), - (portfolioPosition.markets = hasDetails - ? portfolioPosition.markets - : undefined), - (portfolioPosition.sectors = hasDetails - ? portfolioPosition.sectors - : []); + : undefined; + portfolioPosition.assetSubClass = hasDetails + ? portfolioPosition.assetSubClass + : undefined; + portfolioPosition.countries = hasDetails + ? portfolioPosition.countries + : []; + portfolioPosition.currency = hasDetails + ? portfolioPosition.currency + : undefined; + portfolioPosition.markets = hasDetails + ? portfolioPosition.markets + : undefined; + portfolioPosition.sectors = hasDetails ? portfolioPosition.sectors : []; } for (const [name, { valueInBaseCurrency }] of Object.entries(accounts)) { @@ -633,7 +631,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 ( @@ -641,10 +639,13 @@ 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 = { + rulesActiveCount: 0, + rulesFulfilledCount: 0 + }; } return report; diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index bae845fab..207879b86 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -8,6 +8,8 @@ import { getFactor } from '@ghostfolio/api/helper/portfolio.helper'; import { LogPerformance } from '@ghostfolio/api/interceptors/performance-logging/performance-logging.interceptor'; 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'; @@ -38,7 +40,7 @@ import { PortfolioInvestments, PortfolioPerformanceResponse, PortfolioPosition, - PortfolioReport, + PortfolioReportResponse, PortfolioSummary, Position, UserSettings @@ -76,7 +78,7 @@ import { parseISO, set } from 'date-fns'; -import { isEmpty, last, uniq } from 'lodash'; +import { isEmpty, uniq } from 'lodash'; import { CPRPortfolioCalculator } from './calculator/constantPortfolioReturn/portfolio-calculator'; import { PortfolioCalculator } from './calculator/portfolio-calculator'; @@ -1156,18 +1158,15 @@ export class PortfolioService { netWorth, totalInvestment, valueWithCurrencyEffect - } = - chart?.length > 0 - ? last(chart) - : { - netPerformance: 0, - netPerformanceInPercentage: 0, - netPerformanceInPercentageWithCurrencyEffect: 0, - netPerformanceWithCurrencyEffect: 0, - netWorth: 0, - totalInvestment: 0, - valueWithCurrencyEffect: 0 - }; + } = chart?.at(-1) ?? { + netPerformance: 0, + netPerformanceInPercentage: 0, + netPerformanceInPercentageWithCurrencyEffect: 0, + netPerformanceWithCurrencyEffect: 0, + netWorth: 0, + totalInvestment: 0, + valueWithCurrencyEffect: 0 + }; return { chart, @@ -1187,7 +1186,9 @@ export class PortfolioService { } @LogPerformance - 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; @@ -1204,79 +1205,95 @@ 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, + assetClassClusterRisk: + summary.ordersCount > 0 + ? await this.rulesService.evaluate( + [ + new AssetClassClusterRiskEquity( + this.exchangeRateDataService, + Object.values(holdings) + ), + new AssetClassClusterRiskFixedIncome( + this.exchangeRateDataService, + Object.values(holdings) + ) + ], + 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, + 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( + 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) }; } @LogPerformance @@ -1697,6 +1714,25 @@ export class PortfolioService { return { markets, marketsAdvanced }; } + @LogPerformance + private getReportStatistics( + evaluatedRules: PortfolioReportResponse['rules'] + ): PortfolioReportResponse['statistics'] { + const rulesActiveCount = Object.values(evaluatedRules) + .flat() + .filter((rule) => { + return rule?.isActive === true; + }).length; + + const rulesFulfilledCount = Object.values(evaluatedRules) + .flat() + .filter((rule) => { + return rule?.value === true; + }).length; + + return { rulesActiveCount, rulesFulfilledCount }; + } + @LogPerformance private getStreaks({ investments, diff --git a/apps/api/src/app/redis-cache/redis-cache.service.ts b/apps/api/src/app/redis-cache/redis-cache.service.ts index c972c30a1..51db93ec6 100644 --- a/apps/api/src/app/redis-cache/redis-cache.service.ts +++ b/apps/api/src/app/redis-cache/redis-cache.service.ts @@ -7,6 +7,7 @@ import { Inject, Injectable, Logger } from '@nestjs/common'; import { Milliseconds } from 'cache-manager'; import { RedisCache } from 'cache-manager-redis-yet'; import { createHash } from 'crypto'; +import ms from 'ms'; @Injectable() export class RedisCacheService { @@ -59,6 +60,26 @@ export class RedisCacheService { return `quote-${getAssetProfileIdentifier({ dataSource, symbol })}`; } + public async isHealthy() { + try { + const client = this.cache.store.client; + + const isHealthy = await Promise.race([ + client.ping(), + new Promise((_, reject) => + setTimeout( + () => reject(new Error('Redis health check timeout')), + ms('2 seconds') + ) + ) + ]); + + return isHealthy === 'PONG'; + } catch (error) { + return false; + } + } + public async remove(key: string) { return this.cache.del(key); } diff --git a/apps/api/src/app/symbol/symbol.controller.ts b/apps/api/src/app/symbol/symbol.controller.ts index 89cdd416c..5d9a49a29 100644 --- a/apps/api/src/app/symbol/symbol.controller.ts +++ b/apps/api/src/app/symbol/symbol.controller.ts @@ -47,7 +47,7 @@ export class SymbolController { try { return this.symbolService.lookup({ includeIndices, - query: query.toLowerCase(), + query, user: this.request.user }); } catch { diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index 443a2a052..b5c71179f 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -2,8 +2,11 @@ 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 { 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'; @@ -37,11 +40,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 +63,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'); @@ -87,6 +89,7 @@ export class UserService { }), this.tagService.getTagsForUser(id) ]); + const access = userData[0]; const firstActivity = userData[1]; let tags = userData[2]; @@ -117,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, @@ -183,7 +187,9 @@ export class UserService { Settings: Settings as UserWithSettings['Settings'], thirdPartyId, updatedAt, - activityCount: Analytics?.activityCount + activityCount: Analytics?.activityCount, + dataProviderGhostfolioDailyRequests: + Analytics?.dataProviderGhostfolioDailyRequests }; if (user?.Settings) { @@ -224,25 +230,33 @@ export class UserService { undefined, {} ).getSettings(user.Settings.settings), - EconomicMarketClusterRiskDevelopedMarkets: - new EconomicMarketClusterRiskDevelopedMarkets( - undefined, + 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), - EconomicMarketClusterRiskEmergingMarkets: - new EconomicMarketClusterRiskEmergingMarkets( - undefined, + CurrencyClusterRiskCurrentInvestment: + new CurrencyClusterRiskCurrentInvestment( undefined, undefined ).getSettings(user.Settings.settings), - CurrencyClusterRiskBaseCurrencyCurrentInvestment: - new CurrencyClusterRiskBaseCurrencyCurrentInvestment( + EconomicMarketClusterRiskDevelopedMarkets: + new EconomicMarketClusterRiskDevelopedMarkets( + undefined, undefined, undefined ).getSettings(user.Settings.settings), - CurrencyClusterRiskCurrentInvestment: - new CurrencyClusterRiskCurrentInvestment( + EconomicMarketClusterRiskEmergingMarkets: + new EconomicMarketClusterRiskEmergingMarkets( + undefined, undefined, undefined ).getSettings(user.Settings.settings), @@ -298,7 +312,8 @@ export class UserService { currentPermissions = without( currentPermissions, permissions.accessHoldingsChart, - permissions.createAccess + permissions.createAccess, + permissions.readAiPrompt ); // Reset benchmark @@ -307,6 +322,8 @@ 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); currentPermissions = without( @@ -405,10 +422,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, @@ -525,17 +539,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/assets/cryptocurrencies/cryptocurrencies.json b/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json index c63ba5c73..7d414ef11 100644 --- a/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json +++ b/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json @@ -1,6 +1,8 @@ { + "3": "The Three Musketeers", "7": "Lucky7", "42": "42 Coin", + "47": "President Trump", "300": "300 token", "365": "365Coin", "369": "Nikola Tesla Token", @@ -9,7 +11,7 @@ "611": "SixEleven", "777": "Jackpot", "808": "808", - "888": "Octocoin", + "888": "888", "1337": "EliteCoin", "1717": "1717 Masonic Commemorative Token", "2015": "2015 coin", @@ -18,14 +20,16 @@ "2192": "LERNITAS", "$MAID": "MaidCoin", "$ROPE": "Rope", - "$TIME": "Madagascar Token", "$TREAM": "World Stream Finance", "00": "ZER0ZER0", "007": "007 coin", + "0DOG": "Bitcoin Dogs", "0KN": "0 Knowledge Network", "0NE": "Stone", + "0X0": "0x0.ai", "0X1": "0x1.tools: AI Multi-tool Plaform", "0XBTC": "0xBitcoin", + "0XCOCO": "0xCoco", "0XDEV": "DEVAI", "0XG": "0xGpu.ai", "0XGAS": "0xGasless", @@ -33,11 +37,11 @@ "0XOS": "0xOS AI", "0XSEARCH": "Search", "0XVOX": "HashVox AI", - "0x0": "0x0.ai", "0xDIARY": "The 0xDiary Token", "0xVPN": "0xVPN.org", "1-UP": "1-UP", "1000SATS": "SATS", + "1000X": "1000x by Virtuals", "10SET": "Tenset", "1ART": "ArtWallet", "1CAT": "Bitcoin Cats", @@ -47,6 +51,7 @@ "1EX": "1ex Trading Board", "1FLR": "Flare Token", "1GOLD": "1irstGold", + "1GUY": "1GUY", "1INCH": "1inch", "1IRST": "1irstcoin", "1MCT": "MicroCreditToken", @@ -62,6 +67,7 @@ "1UP": "Uptrennd", "1WO": "1World", "2022M": "2022MOON", + "21BTC": "21.co Wrapped BTC", "21X": "21X", "2BACCO": "2BACCO Coin", "2BASED": "2Based Finance", @@ -81,6 +87,7 @@ "32BIT": "32Bitcoin", "360NS": "360 NOSCOPE INSTASWAP WALLBANG", "37C": "37Protocol", + "3AC": "THREE ARROWZ CAPITEL", "3AIR": "3air", "3CEO": "FLOKI SHIBA PEPE CEO", "3CRV": "LP 3pool Curve", @@ -90,6 +97,7 @@ "3KM": "3 Kingdoms Multiverse", "3P": "Web3Camp", "3ULL": "3ULL Coin", + "3ULLV1": "Playa3ull Games v1", "3XD": "3DChain", "404A": "404Aliens", "404BLOCKS": "404Blocks", @@ -97,12 +105,16 @@ "4ART": "4ART Coin", "4CHAN": "4Chan", "4CZ": "FourCZ", + "4DOGE": "4DOGE", "4JNET": "4JNET", "4MW": "For Meta World", + "4P": "4P FOUR", "4RZ": "4REALZA COIN", "4TOKEN": "Ignore Fud", + "4WIN": "4TRUMP", "4WMM": "4-Way Mirror Money", "50C": "50Cent", + "50TRUMP": "50TRUMP", "50X": "50x.com", "5IRE": "5ire", "77G": "GraphenTech", @@ -112,46 +124,66 @@ "8BT": "8 Circuit Studios", "8PAY": "8Pay", "8X8": "8X8 Protocol", + "99BTC": "99 Bitcoins", "9DOGS": "NINE DOGS", "9GAG": "9GAG", "9MM": "Shigure UI", "A": "Alpha Token", + "A1INCH": "1inch (Arbitrum Bridge)", "A2A": "A2A", "A4": "A4 Finance", "A4M": "AlienForm", "A51": "A51 Finance", "A5T": "Alpha5", + "A8": "Ancient8", "AA": "Alva", "AAA": "Moon Rabbit", + "AAAHHM": "Plankton in Pain", "AAB": "AAX Token", "AABL": "Abble", "AAC": "Double-A Chain", "AAG": "AAG Ventures", "AAI": "AutoAir AI", "AAPX": "AMPnet", + "AARDY": "Baby Aardvark", + "AARK": "Aark", "AART": "ALL.ART", "AAST": "AASToken", "AAT": "Agricultural Trade Chain", "AAVE": "Aave", + "AAVEE": "AAVE.e (Avalanche Bride)", + "AAVEGOTCHIFOMO": "Aavegotchi FOMO", + "AAX": "Academic Labs", "AAZ": "ATLAZ", + "AB1INCH": "1inch (Avalanche Bride)", "ABA": "EcoBall", "ABBC": "ABBC Coin", "ABC": "ABC Chain", "ABCC": "ABCC Token", "ABCD": "Crypto Inu", + "ABCM": "ABCMETA", + "ABCRV": "Curve DAO Token (Arbitrum Bridge)", "ABD": "AB DEFI", + "ABDS": "ABDS Token", + "ABE": "ABE", "ABEL": "Abelian", "ABET": "Altbet", "ABEY": "Abey", "ABIC": "Arabic", "ABJ": "Abjcoin", "ABL": "Airbloc", + "ABLE": "Able Finance", + "ABLINK": "Chainlink (Arbitrum Bridge)", "ABN": "Antofy", "ABO": "Albino", "ABOND": "ApeBond", "ABONDV1": "ApeSwap", "ABR": "Allbridge", "ABT": "ArcBlock", + "ABTC": "aBTC", + "ABUL": "Abulaba", + "ABUNI": "Uniswap Protocol Token (Arbitrum Bridge)", + "ABUSDC": "USD Coin (Arbitrum Bridge)", "ABX": "Arbidex", "ABY": "ArtByte", "ABYSS": "Abyss Finance", @@ -167,24 +199,29 @@ "ACDC": "Volt", "ACE": "Fusionist", "ACEN": "Acent", + "ACEO": "Ace of Pentacles", "ACES": "AcesCoin", "ACET": "Acet", "ACETH": "Acether", "ACH": "Alchemy Pay", + "ACHAIN": "Achain", "ACHC": "AchieveCoin", "ACHI": "achi", "ACID": "AcidCoin", "ACK": "Arcade Kingdoms", + "ACL": "Auction Light", "ACM": "AC Milan Fan Token", "ACN": "AvonCoin", "ACOIN": "ACoin", + "ACOLYT": "Acolyte by Virtuals", "ACP": "Anarchists Prime", "ACPT": "Crypto Accept", "ACQ": "Acquire.Fi", "ACRE": "Arable Protocol", "ACRIA": "Acria.AI", "ACS": "Access Protocol", - "ACT": "Achain", + "ACSI": "ACryptoSI", + "ACT": "Act I The AI Prophecy", "ACTA": "Acta Finance", "ACTIN": "Actinium", "ACTN": "Action Coin", @@ -197,9 +234,12 @@ "ADAB": "Adab Solutions", "ADACASH": "ADACash", "ADAI": "Aave DAI", + "ADAM": "Adam Back", "ADANA": "Adanaspor Fan Token", "ADAO": "ADADao", "ADAPAD": "ADAPad", + "ADASOL": "ADA", + "ADASTRA": "Ad Astra", "ADAT": "Adadex Tools", "ADAX": "ADAX", "ADB": "Adbank", @@ -208,6 +248,7 @@ "ADD": "ADD.xyz", "ADDAMS": "ADDAMS AI", "ADDY": "Adamant", + "ADE": "AADex Finance", "ADEL": "Akropolis Delphi", "ADF": "Art de Finance", "ADH": "Adhive", @@ -218,6 +259,7 @@ "ADN": "Aladdin", "ADNT": "Aiden", "ADO": "ADO Protocol", + "ADOG": "America Dog", "ADOGE": "Arbidoge", "ADON": "Adonis", "ADP": "Adappter Token", @@ -270,6 +312,7 @@ "AFR": "Afreum", "AFRO": "Afrostar", "AFROX": "AfroDex", + "AFSUI": "Aftermath Staked SUI", "AFTT": "Africa Trading Chain", "AFX": "Afrix", "AFYON": "Afyonspor Fan Token", @@ -278,14 +321,20 @@ "AGA": "AGA Token", "AGATA": "Agatech", "AGB": "Apes Go Bananas", + "AGC": "Argocoin", + "AGENT": "AgentLayer", + "AGENTFUN": "AgentFun.AI", "AGET": "Agetron", + "AGETH": "Kelp Gain", "AGEUR": "agEUR", "AGF": "Augmented Finance", "AGG": "AGG", "AGI": "Delysium", "AGII": "AGII", + "AGIL": "Agility LSD", "AGIV1": "SingularityNET v1", "AGIX": "SingularityNET", + "AGIXBT": "AGIXBT by Virtuals", "AGLA": "Angola", "AGLD": "Adventure Gold", "AGM": "Argoneum", @@ -298,6 +347,7 @@ "AGRS": "Agoras Token", "AGS": "Aegis", "AGT": "aGifttoken", + "AGURI": "Aguri-Chan", "AGV": "Astra Guild Ventures", "AGVC": "AgaveCoin", "AGVE": "Agave", @@ -305,6 +355,7 @@ "AHOO": "Ahoolee", "AHT": "AhaToken", "AI": "Sleepless", + "AI16Z": "ai16z", "AIA": "AIA Chain", "AIAI": "All In AI", "AIAKITA": "AiAkita", @@ -315,12 +366,15 @@ "AIBCOIN": "AIBLOCK", "AIBK": "AIB Utility Token", "AIBU": "AIBUZZ TOKEN", - "AIC": "AI Crypto", + "AIC": "AI Companions", + "AICELL": "AICell", "AICH": "AIChain", "AICO": "AICON", "AICODE": "AI CODE", "AICORE": "AICORE", + "AICRYPTO": "AI Crypto", "AID": "AidCoin", + "AIDA": "Ai-Da robot", "AIDI": "Aidi Inu", "AIDOC": "AI Doctor", "AIDOG": "AiDoge", @@ -333,6 +387,7 @@ "AIEN": "AIENGLISH", "AIF": "AI FREEDOM TOKEN", "AIFLOKI": "AI Floki", + "AIFUN": "AI Agent Layer", "AIG": "A.I Genesis", "AIGPU": "AIGPU Token", "AII": "Artificial Idiot", @@ -340,17 +395,21 @@ "AIKEK": "AlphaKEK.AI", "AILINK": "AiLink Token", "AIM": "ModiHost", + "AIMAGA": "Presidentexe", "AIMARKET": "Acria.AI AIMARKET", "AIMBOT": "AimBot AI", "AIMEE": "AIMEE", + "AIMET": "AI Metaverse", "AIMR": "MeromAI", "AIMS": "HighCastle Token", "AIMX": "Aimedis", "AIN": "AI Network", + "AINA": "Ainastasia", "AINN": "AINN", "AINU": "Ainu Token", "AION": "Aion", "AIONE": "AiONE", + "AIOS": "INT OS", "AIOT": "AIOT Token", "AIOZ": "AIOZ Network", "AIPAD": "AIPAD", @@ -358,11 +417,14 @@ "AIPEPE": "AI PEPE KING", "AIPG": "AI Power Grid", "AIPIN": "AI PIN", + "AIPO": "Aipocalypto", "AIR": "Altair", "AIRB": "BillionAir", "AIRBTC": "AIRBTC", + "AIRDROP": "AIRDROP2049", "AIRE": "Tokenaire", "AIRI": "aiRight", + "AIRIAN": "AIRian", "AIRT": "Aircraft", "AIRTNT": "Tenti", "AIRTOKEN": "AirToken", @@ -370,6 +432,7 @@ "AIS": "AISwap", "AISCII": "AISCII", "AISHIB": "ARBSHIB", + "AIST": "Artificial intelligence staking token", "AIT": "AIT Protocol", "AITECH": "Artificial Intelligence Utility Token", "AITEK": "AI Technology", @@ -380,24 +443,36 @@ "AITRA": "Aitra", "AITT": "AITrading", "AIUS": "Arbius", + "AIVIA": "AI Virtual Agents", "AIWALLET": "AiWallet Token", "AIX": "Aigang", + "AIXBT": "aixbt by Virtuals", + "AIXERC": "AI-X", "AJNA": "Ajna Protocol", + "AJUN": "Ajuna Network", "AK12": "AK12", "AKA": "Akroma", "AKI": "Aki Network", + "AKIT": "Akita Inu", "AKITA": "Akita Inu", + "AKITAI": "AKITA INU", "AKITAX": "Akitavax", "AKN": "Akoin", "AKNC": "Aave KNC v1", + "AKOBI": "AKOBI", "AKREP": "Antalyaspor Token", "AKRO": "Akropolis", "AKT": "Akash Network", "AKTIO": "AKTIO Coin", - "ALA": "ALA", + "AKUMA": "Akuma Inu", + "AL": "ArchLoot", + "ALA": "Alanyaspor Fan Token", "ALAN": "Alan the Alien", + "ALASKA": "Alaska", + "ALATOKEN": "ALA", "ALB": "Alien Base", "ALBART": "Albärt", + "ALBE": "ALBETROS", "ALBEDO": "ALBEDO", "ALBT": "AllianceBlock", "ALC": "Arab League Coin", @@ -409,6 +484,7 @@ "ALD": "AladdinDAO", "ALDIN": "Alaaddin.ai", "ALE": "Ailey", + "ALEO": "ALEO", "ALEPH": "Aleph.im", "ALEX": "ALEX Lab", "ALEXANDRITE": "Alexandrite", @@ -423,7 +499,9 @@ "ALIAS": "Alias", "ALIC": "AliCoin", "ALICE": "My Neighbor Alice", + "ALICEA": "Alice AI", "ALIEN": "AlienCoin", + "ALIENPEP": "Alien Pepe", "ALIF": " ALIF COIN", "ALINK": "Aave LINK v1", "ALIS": "ALISmedia", @@ -432,22 +510,30 @@ "ALIX": "AlinX", "ALKI": "Alkimi", "ALLBI": "ALL BEST ICO", + "ALLC": "All Crypto Mechanics", "ALLEY": "NFT Alley", "ALLIN": "All in", + "ALLMEE": "All.me", "ALM": "Alium Finance", + "ALMAN": "Alman", "ALMC": "Awkward Look Monkey Club", "ALME": "Alita", "ALN": "Aluna", + "ALNV1": "Aluna v1", "ALOHA": "Aloha", "ALOT": "Dexalot", "ALP": "Alphacon", "ALPA": "Alpaca", "ALPACA": "Alpaca Finance", + "ALPACAS": "Bitcoin Mascot", "ALPH": "Alephium", "ALPHA": "Alpha Finance Lab", "ALPHAAI": "Alpha AI", "ALPHABET": "Alphabet", "ALPHAC": "Alpha Coin", + "ALPHAF": "Alpha Fi", + "ALPHAG": "Alpha Gardeners", + "ALPHAPETTO": "Alpha Petto Shells", "ALPHAS": "Alpha Shards", "ALPHR": "Alphr", "ALPINE": "Alpine F1 Team Fan Token", @@ -465,6 +551,7 @@ "ALUSD": "Alchemix USD", "ALUX": "Alux Bank", "ALV": "Allive", + "ALV1": "ArchLoot v1", "ALVA": "Alvara Protocol", "ALWAYS": "Always Evolving", "ALX": "ALAX", @@ -484,6 +571,9 @@ "AMDC": "Allmedi Coin", "AMDG": "AMDG", "AME": "Amepay", + "AMER": "America", + "AMERI": "AMERICAN EAGLE", + "AMERIC": "American True Hero", "AMERICA": "America", "AMERICANCOIN": "AmericanCoin", "AMF": "AddMeFast", @@ -499,6 +589,7 @@ "AMO": "AMO Coin", "AMOGUS": "Sussy Baka Impostor", "AMON": "AmonD", + "AMORE": "Amocucinare", "AMOS": "Amos", "AMP": "Amp", "AMPL": "Ampleforth", @@ -514,6 +605,7 @@ "ANAL": "AnalCoin", "ANALOS": "analoS", "ANALY": "Analysoor", + "ANAT": "Anatolia Token", "ANB": "Angryb", "ANC": "Anchor Protocol", "ANCHOR": "AnchorSwap", @@ -526,15 +618,22 @@ "ANDWU": "Chinese Andy", "ANDX": "Arrano", "ANDY": "ANDY", + "ANDYB": "AndyBlast", + "ANDYBNB": "Andy", + "ANDYBSC": "ANDY", + "ANDYMAN": "ANDYMAN", + "ANDYSOL": "Andy on SOL", + "ANEX": "AstroNexus", "ANGEL": "Crypto Angel", "ANGL": "Angel Token", "ANGLE": "ANGLE", "ANGO": "Aureus Nummus Gold", "ANGRYSLERF": "ANGRYSLERF", - "ANI": "Animecoin", + "ANI": "Anime Token", "ANIM": "Animalia", "ANIMA": "Realm Anima", "ANIME": "Anime", + "ANIMECOIN": "Animecoin", "ANJ": "Aragon Court", "ANJI": "Anji", "ANK": "AlphaLink", @@ -551,6 +650,7 @@ "ANONCOIN": "Anoncoin", "ANRX": "AnRKey X", "ANS": "ANS Crypto Coin", + "ANSOM": "Ansom", "ANSR": "Answerly", "ANT": "Aragon", "ANTC": "AntiLitecoin", @@ -559,11 +659,14 @@ "ANTI": "Anti Bitcoin", "ANTIS": "Antis Inu", "ANTS": "ANTS Reloaded", + "ANTT": "Antara Token", "ANUS": "URANUS", "ANV": "Aniverse", + "ANVL": "Anvil", "ANW": "Anchor Neural World", "ANY": "Anyswap", "ANYONE": "ANyONe Protocol", + "ANZENUSD": "Anzen Finance", "AOC": "Alickshundra Occasional-Cortex", "AOG": "AgeOfGods", "AOK": "AOK", @@ -576,12 +679,15 @@ "APCG": "ALLPAYCOIN", "APD": "Aptopad", "APE": "ApeCoin", - "APECOIN": "Asia Pacific Electronic Coin", "APED": "Baddest Alpha Ape Bundle", - "APES": "Alpha Petto Shells", + "APEDEV": "The dev is an Ape", + "APEFUN": "Ape", + "APEPE": "Ape and Pepe", + "APES": "APES", "APETARDIO": "Apetardio", "APEWIFHAT": "ApeWifHat", "APEX": "ApeX Protocol", + "APEXA": "Apex AI", "APEXCOIN": "ApexCoin", "APEXT": "ApexToken", "APFC": "APF coin", @@ -594,11 +700,15 @@ "APL": "Apollo Currency", "APM": "apM Coin", "APN": "Apron", + "APO": "Apollo Caps ETF", "APOD": "AirPod", + "APOL": "Apollo FTW", + "APOLL": "Apollon Limassol", "APOLLO": "Apollo Crypto", "APP": "Moon App", "APPA": "Dappad", "APPC": "AppCoins", + "APPEALUSD": "Appeal dollar", "APPLE": "AppleSwap", "APRICOT": "Apricot Finance", "APRIL": "April", @@ -626,6 +736,7 @@ "AQUAC": "Aquachain", "AQUACITY": "Aquacity", "AQUAGOAT": "Aqua Goat", + "AQUAGOATV1": "Aqua Goat v1", "AQUAP": "Planet Finance", "AQUARI": "Aquari", "AR": "Arweave", @@ -635,14 +746,18 @@ "ARB": "Arbitrum", "ARBI": "Arbi", "ARBIT": "Arbit Coin", + "ARBP": "ARB Protocol", "ARBS": "Arbswap", "ARBT": "ARBITRAGE", "ARBUZ": "ARBUZ", - "ARC": "ArcticCoin", - "ARCA": "Arca", + "ARC": "AI Rig Complex", + "ARCA": "Legend of Arcadia", "ARCAD": "Arcadeum", "ARCADE": "ARCADE", + "ARCADECITY": "Arcade City", "ARCADEF": "arcadefi", + "ARCADEN": "ArcadeNetwork", + "ARCAI": "ARCAI", "ARCANE": "Arcane Token", "ARCAS": "Arcas", "ARCH": "Archway", @@ -650,10 +765,11 @@ "ARCHCOIN": "ArchCoin", "ARCHE": "Archean", "ARCHIVE": "Chainback", - "ARCHL": "ArchLoot", + "ARCINTEL": "Arc", "ARCO": "AquariusCoin", "ARCONA": "Arcona", "ARCT": "ArbitrageCT", + "ARCTICCOIN": "ArcticCoin", "ARCX": "ARC Governance", "ARDR": "Ardor", "ARDX": "ArdCoin", @@ -672,6 +788,7 @@ "ARI10": "Ari10", "ARIA": "Legends of Aria", "ARIA20": "Arianee", + "ARIT": "ArithFi", "ARIX": "Arix", "ARK": "ARK", "ARKEN": "Arken Finance", @@ -680,12 +797,15 @@ "ARKM": "Arkham", "ARKN": "Ark Rivals", "ARKY": "Arky", + "ARKYS": "Arky Satoshi's Dog", "ARM": "Armory Coin", "ARMA": "Aarma", "ARMOR": "ARMOR", "ARMR": "ARMR", "ARMS": "2Acoin", + "ARMY": "Army of Fortune Coin", "ARNA": "ARNA Panacea", + "ARNC": "Arnoya classic", "ARNM": "Arenum", "ARNO": "ARNO", "ARNX": "Aeron", @@ -714,10 +834,13 @@ "ARTFI": "ARTFI", "ARTG": "Goya Giant Token", "ARTH": "ARTH", + "ARTHERA": "Arthera", "ARTI": "Arti Project", + "ARTIF": "Artificial Intelligence", "ARTII": "ARTII Token", "ARTL": "ARTL", "ARTM": "ARTM", + "ARTMETIS": "Staked Metis Token", "ARTP": "ArtPro", "ARTR": "Artery Network", "ARTT": "ARTT Network", @@ -738,6 +861,7 @@ "ASG": "Asgard", "ASGC": "ASG", "ASH": "ASH", + "ASHS": "AshSwap", "ASI": "Artificial Superintelligence Alliance", "ASIA": "Asia Coin", "ASIMI": "ASIMI", @@ -745,10 +869,12 @@ "ASK": "Permission Coin", "ASKO": "Asko", "ASM": "Assemble Protocol", + "ASMO": "AS Monaco Fan Token", "ASN": "Ascension Coin", "ASNT": "Assent Protocol", "ASP": "Aspire", "ASPC": "Astropup Coin", + "ASPIRIN": "Aspirin", "ASPO": "ASPO Shards", "ASQT": "ASQ Protocol", "ASR": "AS Roma Fan Token", @@ -767,13 +893,16 @@ "ASTRAFER": "Astrafer", "ASTRAFERV1": "Astrafer v1", "ASTRAL": "Astral", - "ASTRO": "AstroSwap", + "ASTRO": "Astroport", "ASTROC": "Astroport Classic", "ASTROLION": "AstroLion", "ASTRONAUT": "Astronaut", + "ASTROO": "Astroon", "ASTROP": "AstroPepeX", + "ASTROS": "AstroSwap", "ASTX": "Asterix Labs", "ASUNA": "Asuna Hentai", + "ASUSHI": "Sushi (Arbitrum Bridge)", "ASVA": "Asva", "ASW": "AdaSwap", "ASY": "ASYAGRO", @@ -790,19 +919,24 @@ "ATFI": "Atlantic Finance Token", "ATFS": "ATFS Project", "ATH": "Aethir", + "ATHCAT": "ATH CAT", "ATHE": "Atheios", "ATHEN": "Athenas AI", + "ATHENA": "Athena DexFi", + "ATHER": "Ather", "ATHVODKA": "All Time High Vodka", "ATID": "AstridDAO Token", "ATK": "Attack Wagon", "ATKN": "A-Token", "ATL": "ATLANT", + "ATLA": "Atleta Network", "ATLAS": "Star Atlas", "ATLX": "Atlantis Loans Polygon", "ATM": "Atletico de Madrid Fan Token", "ATMA": "ATMA", "ATMC": "Autumncoin", "ATMCHAIN": "ATMChain", + "ATMCOIN": "ATM", "ATMI": "Atonomi", "ATMOS": "Novusphere", "ATN": "ATN", @@ -816,10 +950,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", @@ -835,6 +971,7 @@ "AUDT": "Auditchain", "AUDX": "eToro Australian Dollar", "AUK": "Aukcecoin", + "AUKI": "Auki Labs", "AUN": "Authoreon", "AUNIT": "Aunit", "AUPC": "Authpaper", @@ -850,19 +987,21 @@ "AURUM": "Aurum", "AURY": "Aurory", "AUSCM": "Auric Network", - "AUSD": "Appeal dollar", + "AUSD": "AUSD", "AUSDC": "Aave USDC v1", "AUSDT": "aUSDT", "AUT": "Autoria", "AUTHORSHIP": "Authorship", "AUTISM": "AUTISM", "AUTO": "Auto", - "AUTON": "Autonio", "AUTUMN": "Autumn", + "AUVERSE": "AuroraVerse", "AUX": "Auxilium", "AV": "Avatar Coin", "AVA": "Travala", + "AVACN": "AVACOIN", "AVAI": "Orca AVAI", + "AVAIL": "Avail", "AVAL": "Avaluse", "AVALON": "Avalon", "AVALOX": "AVALOX", @@ -871,10 +1010,14 @@ "AVATAR": "Avatar", "AVATLY": "Avatly", "AVAV": "AVAV", + "AVAV1": "AVA v1", "AVAX": "Avalanche", "AVAXIOU": "Avalanche IOU", + "AVB": "Autonomous Virtual Beings", "AVDO": "AvocadoCoin", "AVE": "Avesta", + "AVEN": "Aventis AI", + "AVENT": "Aventa", "AVG": "Avocado DAO", "AVH": "Animation Vision Cash", "AVI": "Aviator", @@ -921,6 +1064,8 @@ "AXN": "Axion", "AXNT": "Axentro", "AXO": "Axo", + "AXOL": "Axol", + "AXON": "AxonDAO Governance Token", "AXPR": "aXpire", "AXR": "AXRON", "AXS": "Axie Infinity Shards", @@ -962,6 +1107,7 @@ "BABY": "BabySwap", "BABYANDY": "Baby Andy", "BABYB": "Baby Bali", + "BABYBI": "Baby Bitcoin", "BABYBINANCE": "BABYBINANCE", "BABYBITC": "BabyBitcoin", "BABYBNB": "BabyBNB", @@ -972,12 +1118,17 @@ "BABYBOMEOW": "Baby of BOMEOW", "BABYBONK": "Baby Bonk", "BABYBTC": "BABYBTC", + "BABYC": "Baby Cat", "BABYCAT": "Baby Cat Coin", + "BABYCATE": "BabyCate", "BABYCATS": "Baby Cat Coin", "BABYCEO": "Baby Doge CEO", "BABYCRASH": "BabyCrash", "BABYCRAZYT": "BABY CRAZY TIGER", "BABYCUBAN": "Baby Cuban", + "BABYCZHAO": "Baby Czhao", + "BABYD": "Baby Dragon", + "BABYDENG": "Baby Moo Deng", "BABYDOGE": "BabyDoge", "BABYDOGEINU": "BABY DOGE INU", "BABYDOGEZILLA": "BabyDogeZilla", @@ -986,10 +1137,14 @@ "BABYFB": "Baby Floki Billionaire", "BABYFLOKI": "BabyFloki", "BABYFLOKIZILLA": "BabyFlokiZilla", + "BABYG": "BabyGME", "BABYGME": "Baby GameStop", + "BABYGOAT": "Baby Goat", "BABYGOLDEN": "Baby Golden Coin", "BABYGROK": "Baby Grok", "BABYGUMMY": "BABY GUMMY", + "BABYHARRIS": "Baby Harris", + "BABYHIPPO": "BABY HIPPO", "BABYHKTIGER": "BabyHkTiger", "BABYHONK": "Baby Honk", "BABYJERRY": "Baby Jerry", @@ -997,19 +1152,31 @@ "BABYKABOSU": "Baby Kabosu", "BABYKITTY": "BabyKitty", "BABYLONG": "Baby Long", + "BABYM": "BabyMAGA", "BABYMAGA": "Baby Maga", + "BABYME": "Baby Meme Coin", "BABYMEME": "Baby Memecoin", + "BABYMIGGLES": "Baby Miggles", + "BABYMO": "Baby Moon Floki", + "BABYMU": "Baby Musk", "BABYMUSK": "Baby Musk", "BABYMYRO": "Babymyro", + "BABYNEIRO": "Baby Neiro", "BABYOKX": "BABYOKX", + "BABYP": "BabyPepe", + "BABYPEIPEI": "Baby PeiPei", "BABYPEPE": "Babypepe (BSC)", + "BABYPNUT": "Baby Pnut", + "BABYPOPCAT": "Baby PopCat", "BABYPORK": "Baby Pepe Fork", "BABYRATS": "Baby Rats", "BABYRWA": "BabyRWA", + "BABYS": "Baby Slerf", "BABYSAITAMA": "Baby Saitama", "BABYSHARK": "Baby Shark", "BABYSHIB": "Baby Shiba Inu", "BABYSHIBAINU": "Baby Shiba Inu", + "BABYSHIRO": "Baby Shiro Neko", "BABYSHIV": "Baby Shiva", "BABYSLERF": "BabySlerf", "BABYSOL": "Baby Solana", @@ -1019,15 +1186,19 @@ "BABYTK": "Baby Tiger King", "BABYTOMCAT": "Baby Tomcat", "BABYTOSHI": "Baby Toshi", + "BABYTR": "BABYTRUMP", "BABYTROLL": "Baby Troll", "BABYTRUMP": "BABYTRUMP", "BABYWIF": "babydogwifhat", + "BABYWLFI": "Baby WLFI", "BABYX": "Baby X", "BAC": "Basis Cash", "BACK": "DollarBack", "BACOIN": "BACoin", "BACON": "BaconDAO (BACON)", "BAD": "Bad Idea AI", + "BADA": "Bad Alien Division", + "BADC": "BADCAT", "BADCAT": "Andy’s Alter Ego", "BADGER": "Badger DAO", "BAFC": "BabyApeFunClub", @@ -1041,32 +1212,47 @@ "BAKAC": "Baka Casino", "BAKE": "BakeryToken", "BAKED": "Baked", + "BAKEDB": "Baked Beans Token", + "BAKEDTOKEN": "Baked", + "BAKSO": "Disney Sumatran Tiger", "BAKT": "Backed Protocol", "BAL": "Balancer", "BALA": "Shambala", "BALD": "Bald", "BALIN": "Balin Bank", + "BALL": "Game 5 BALL", "BALLZ": "Wolf Wif", + "BALN": "Balanced", "BALPHA": "bAlpha", "BALT": "Brett's cat", "BALTO": "Balto Token", "BAMA": "BabyAMA", "BAMBIT": "BAMBIT", "BAMBOO": "BambooDeFi", - "BAN": "Banano", + "BAMITCOIN": "Bamit", + "BAN": "Comedian", "BANANA": "Banana Gun", + "BANANAF": "Banana For Scale", "BANANAS": "Monkey Peepo", + "BANANO": "Banano", "BANC": "Babes and Nerds", "BANCA": "BANCA", "BAND": "Band Protocol", "BANDEX": "Banana Index", + "BANDIT": "Bandit on Base", "BANG": "BANG", + "BANGY": "BANGY", "BANK": "Float Protocol", + "BANKA": "Bank AI", + "BANKC": "Bankcoin", + "BANKER": "BankerCoinAda", "BANKETH": "BankEth", + "BANKSY": "BANKSY", "BANNER": "BannerCoin", "BANUS": "Banus.Finance", "BANX": "Banx.gg", "BAO": "Bao Finance", + "BAOBAO": "BaoBao", "BAOE": "Business Age of Empires", "BAOM": "Battle of Memes", "BAOS": "BaoBaoSol", @@ -1074,15 +1260,34 @@ "BARA": "Capybara", "BARC": "The Blu Arctic Water Company", "BAREBEARS": "BAREBEARS", + "BARIO": "Bario", "BARK": "Bored Ark", "BARRON": "Time Traveler", + "BARS": "Banksters Token", + "BARSIK": "Hasbulla's Cat", "BART": "BarterTrade", + "BARTKRC": "BART Token", + "BARY": "Bary", "BAS": "Basis Share", - "BASE": "Base Protocol", "BASEAI": "BaseAI", + "BASECAT": "BASE CAT", + "BASECOIN": "BASECOIN", "BASED": "Based Money", "BASEDAI": "BasedAI", + "BASEDCHILL": "Based Chill Guy", + "BASEDCOPE": "COPE", + "BASEDFINANCE": "Based", + "BASEDHOPPY": "Based Hoppy (basedhoppy.vip)", + "BASEDP": "Based Pepe", + "BASEDR": "Based Rabbit", + "BASEDS": "BasedSwap", + "BASEDTURBO": "Based Turbo", + "BASEDV1": "Based Money v1", "BASEHEROES": "Baseheroes", + "BASEPROTOCOL": "Base Protocol", + "BASESWAPX": "BaseX", + "BASEVE": "Base Velocimeter", + "BASEX": "Base Terminal", "BASH": "LuckChain", "BASHC": "BashCoin", "BASHOS": "Bashoswap", @@ -1094,6 +1299,8 @@ "BASTET": "Bastet Goddess", "BAT": "Basic Attention Token", "BATH": "Battle Hero", + "BATMAN": "BATMAN", + "BATO": "Batonex Token", "BATS": "Batcoin", "BAVA": "Baklava", "BAX": "BABB", @@ -1109,6 +1316,7 @@ "BBC": "Bull BTC Club", "BBCC": "BaseballCardCoin", "BBCG": "BBC Gold Coin", + "BBCH": "Binance Wrapped BCH", "BBCT": "TraDove B2BCoin", "BBDC": "Block Beats Network", "BBDT": "BBD Token", @@ -1122,19 +1330,24 @@ "BBL": "beoble", "BBN": "BBNCOIN", "BBO": "Bigbom", + "BBONK": "BitBonk", "BBOS": "Blackbox Foundation", "BBP": "BiblePay", "BBR": "Boolberry", "BBRETT": "Baby Brett", "BBS": "BBSCoin", + "BBSOL": "Bybit Staked SOL", "BBT": "BitBook", "BBTC": "Binance Wrapped BTC", "BBTF": "Block Buster Tech Inc", "BBUSD": "BounceBit USD", + "BBYDEV": "The Dev is a Baby", "BC": "Bitcoin Confidential", "BCA": "Bitcoin Atom", "BCAC": "Business Credit Alliance Chain", + "BCAI": "Bright Crypto Ai", "BCAP": "Blockchain Capital", + "BCAPV1": "Blockchain Capital v1", "BCAT": "BitClave", "BCAU": "BetaCarbon", "BCB": "BCB Blockchain", @@ -1183,13 +1396,14 @@ "BD20": "BRC-20 DEX", "BDAY": "Birthday Cake", "BDB": "Big Data Block", - "BDC": "Based", + "BDC": "BILLION•DOLLAR•CAT", "BDCC": "BDCC COIN", "BDCLBSC": "BorderCollieBSC", "BDG": "BitDegree", "BDID": "BDID", "BDL": "Bitdeal", "BDOG": "Bulldog Token", + "BDOGITO": "BullDogito", "BDOT": "Binance Wrapped DOT", "BDP": "Big Data Protocol", "BDPI": "Interest Bearing Defi Pulse Index", @@ -1205,7 +1419,7 @@ "BEAMMW": "Beam", "BEAN": "Bean", "BEANS": "Moonbeans", - "BEAST": "CryptoBeast", + "BEAST": "MrBeast", "BEAT": "BEAT Token", "BEATLES": "JohnLennonC0IN", "BEATS": "Sol Beats", @@ -1214,8 +1428,11 @@ "BECH": "Beauty Chain", "BECN": "Beacon", "BECO": "BecoSwap Token", + "BECX": "BETHEL", "BED": "Bankless BED Index", "BEE": "Herbee", + "BEEF": "PepeBull", + "BEEG": "Beeg Blue Whale", "BEEP": "BEEP", "BEER": "BEERCOIN", "BEERUSCAT": "BeerusCat", @@ -1229,19 +1446,27 @@ "BEFX": "Belifex", "BEFY": "Befy Protocol", "BEG": "BEG", + "BEIBEI": "Chinese BEIBEI", "BEL": "Bella Protocol", "BELA": "Bela", + "BELL": "Bellscoin", + "BELLE": "Isabelle", + "BELLS": "Bellscoin", "BELR": "Belrium", "BELT": "Belt", "BELUGA": "Beluga", "BEM": "BEMIL Coin", + "BEMC": "BemChain", "BEMD": "Betterment Digital", "BEN": "Ben", "BEND": "BendDao", + "BENDER": "BENDER", "BENDOG": "Ben the Dog", "BENG": "Based Peng", + "BENI": "Beni", "BENJACOIN": "Benjacoin", - "BENJI": "BenjiRolls", + "BENJI": "Basenji", + "BENJIROLLS": "BenjiRolls", "BENK": "BENK", "BENT": "Bent Finance", "BENTO": "Bento", @@ -1252,9 +1477,13 @@ "BEPE": "Blast Pepe", "BEPR": "Blockchain Euro Project", "BEPRO": "BEPRO Network", + "BERF": "BERF", + "BERG": "Bloxberg", "BERN": "BERNcash", "BERNIE": "BERNIE SENDERS", "BERRY": "Berry", + "BERRYS": "BerrySwap", + "BERT": "Bertram The Pomeranian", "BES": "battle esports coin", "BESA": "Besa Gaming", "BESHARE": "Beshare Token", @@ -1264,6 +1493,7 @@ "BETACOIN": "BetaCoin", "BETBOX": "betbox", "BETF": "Betform", + "BETFI": "Betfin", "BETH": "Beacon ETH", "BETHER": "Bethereum", "BETR": "BetterBetting", @@ -1290,19 +1520,23 @@ "BFK WARZONE": "BFK Warzone", "BFLOKI": "BurnFloki", "BFLY": "Butterfly Protocol", + "BFM": "BenefitMine", "BFT": "BF Token", "BFTB": "Brazil Fan Token", "BFTC": "BITS FACTOR", + "BFWOG": "Based Fwog (basedfwog.info)", "BFX": "BitFinex Tokens", "BG": "BunnyPark Game", "BGB": "Bitget token", "BGBP": "Binance GBP Stable Coin", + "BGBV1": "Bitget Token v1", "BGC": "Bee Token", "BGG": "BGG Token", "BGLD": "Based Gold", "BGONE": "BigONE Token", "BGPT": "BlockGPT", "BGS": "Battle of Guardians Share", + "BGSOL": "Bitget SOL Staking", "BGUY": "The Big Guy", "BGVT": "Bit Game Verse Token", "BHAO": "Bithao", @@ -1323,6 +1557,7 @@ "BIBL": "Biblecoin", "BIBO": "Bible of Memes", "BIC": "Bikercoins", + "BICHO": "bicho", "BICITY": "BiCity AI Projects", "BICO": "Biconomy", "BICS": "Biceps", @@ -1335,10 +1570,13 @@ "BIDP": "BID Protocol", "BIDR": "Binance IDR Stable Coin", "BIDZ": "BIDZ Coin", + "BIDZV1": "BIDZ Coin v1", "BIFI": "Beefy.Finance", "BIFIF": "BiFi", "BIG": "Big Eyes", "BIGBANGCORE": "BigBang Core", + "BIGCOIN": "BigCoin", + "BIGFOOT": "BigFoot Town", "BIGHAN": "BighanCoin", "BIGLEZ": "THE BIG LEZ SHOW", "BIGMIKE": "Big Mike", @@ -1350,16 +1588,22 @@ "BIIS": "biis (Ordinals)", "BIKI": "BIKI", "BILL": "TillBilly", + "BILLI": "Billi", "BILLICAT": "BilliCat", + "BILLY": "Billy ", + "BILLYBSC": "BILLY", "BIM": "BitminerCoin", + "BINANCED": "BinanceDog On Sol", + "BINANCEDOG": "Binancedog", "BIND": "Compendia", "BINEM": "Binemon", "BINGO": "Tomorrowland", + "BINK": "Big Dog Fink", "BINO": "Binopoly", "BINS": "Bitsense", "BINTEX": "Bintex Futures", "BINU": "Blast Inu", - "BIO": "BITONE", + "BIO": "Bio Protocol", "BIOB": "BioBar", "BIOC": "BioCrypt", "BIOCOIN": "Biocoin", @@ -1375,6 +1619,7 @@ "BIRD": "Bird.Money", "BIRDCHAIN": "Birdchain", "BIRDDOG": "Bird Dog", + "BIRDO": "Bird Dog", "BIS": "Bismuth", "BISKIT": "Biskit Protocol", "BISO": "BISOSwap", @@ -1395,11 +1640,13 @@ "BITCI": "Bitcicoin", "BITCM": "Bitcomo", "BITCNY": "bitCNY", + "BITCO": "Bitcoin Black Credit Card", "BITCOINC": "Bitcoin Classic", "BITCOINP": "Bitcoin Private", "BITCOINV": "BitcoinV", "BITCONNECT": "BitConnect Coin", "BITCRATIC": "Bitcratic Token", + "BITE": "Bitether", "BITF": "Bit Financial", "BITFLIP": "BitFlip", "BITG": "Bitcoin Green", @@ -1411,21 +1658,27 @@ "BITNEW": "BitNewChain", "BITO": "BitoPro Exchange Token", "BITOK": "BitOKX", + "BITONE": "BITONE", "BITORB": "BitOrbit", "BITRA": "Bitratoken", + "BITRADIO": "Bitradio", "BITREWARDS": "BitRewards", "BITROLIUM": "Bitrolium", "BITRUE": "Bitrue Coin", "BITS": "BitstarCoin", "BITSD": "Bits Digit", + "BITSERIAL": "BitSerial", "BITSILVER": "bitSilver", "BITSPACE": "Bitspace", "BITSZ": "Bitsz", "BITT": "BiTToken", "BITTO": "BITTO", + "BITTON": "Bitton", "BITUNE": "Bitune", "BITUSD": "bitUSD", + "BITV": "Bitvolt", "BITVOLT": "BitVolt", + "BITWORLD": "Bit World Token", "BITX": "BitScreener", "BITZ": "Bitz Coin", "BIUT": "Bit Trust System", @@ -1442,19 +1695,23 @@ "BKING": "King Arthur", "BKK": "BKEX Token", "BKN": "Brickken", + "BKOK": "BKOK FinTech", "BKPT": "Biokript", "BKR": "Balkari Token", "BKRW": "Binance KRW", "BKS": "Barkis Network", "BKT": "Blocktrade token", "BKX": "BANKEX", + "BL00P": "BLOOP", "BLA": "BlaBlaGame", "BLAC": "Blacksmith Token", "BLACK": "BLACKHOLE PROTOCOL", "BLACKD": "Blackder AI", "BLACKDRAGON": "Black Dragon", + "BLACKR": "BLACK ROCK", "BLACKROCK": "BlackRock", "BLACKSALE": "Black Sale", + "BLACKST": "Black Stallion", "BLACKSWAN": "BlackSwan AI", "BLADE": "BladeWarrior", "BLAKEBTC": "BlakeBitcoin", @@ -1462,6 +1719,7 @@ "BLAS": "BlakeStar", "BLAST": "BLAST", "BLASTA": "BlastAI", + "BLASTUP": "BlastUP", "BLAUNCH": "B-LAUNCH", "BLAZE": "Blaze", "BLAZEX": "BlazeX", @@ -1474,11 +1732,13 @@ "BLEPE": "Blepe", "BLERF": "BLERF", "BLES": "Blind Boxes", + "BLET": "Brainlet", "BLF": "Baby Luffy", "BLHC": "BlackholeCoin", "BLI": "BALI TOKEN", "BLID": "Bolide", "BLIN": "Blin Metaverse", + "BLIND": "Blindsight", "BLING": "PLEB DREKE", "BLINK": "BlockMason Link", "BLINU": "Baby Lambo Inu", @@ -1488,11 +1748,14 @@ "BLKC": "BlackHat Coin", "BLKD": "Blinked", "BLKS": "Blockshipping", + "BLM": "Blombard", "BLN": "Bulleon", "BLNM": "Bolenum", "BLOB": "Blob", "BLOC": "Blockcloud", "BLOCK": "Blockasset", + "BLOCKB": "Block Browser", + "BLOCKF": "Block Farm Club", "BLOCKIFY": "Blockify.Games", "BLOCKN": "BlockNet", "BLOCKPAY": "BlockPay", @@ -1502,6 +1765,7 @@ "BLOCKW": "Blockwise", "BLOCM": "BLOC.MONEY", "BLOCX": "BLOCX.", + "BLOGGE": "Bloggercube", "BLOK": "Bloktopia", "BLOO": "bloo foster coin", "BLOODY": "Bloody Token", @@ -1509,6 +1773,7 @@ "BLOOMT": "Bloom Token", "BLOVELY": "Baby Lovely Inu", "BLOX": "BLOX", + "BLOXT": "Blox Token", "BLP": "BullPerks", "BLRY": "BillaryCoin", "BLS": "Blocks Space", @@ -1518,14 +1783,22 @@ "BLTG": "Block-Logic", "BLTV": "BLTV Token", "BLU": "BlueCoin", - "BLUE": "Ethereum Blue", + "BLUB": "BLUB", + "BLUE": "Blue Protocol", + "BLUEBUTT": "BLUE BUTT CHEESE", + "BLUEG": "Blue Guy", "BLUEM": "BlueMove", + "BLUEN": "Blue Norva", "BLUES": "Blueshift", + "BLUESC": "BluesCrypto", "BLUESPARROW": "BlueSparrow Token", "BLUESPARROWOLD": "BlueSparrowToken", + "BLUEW": "Blue Whale", + "BLUFF": "BluffCat", "BLUI": "Blui", "BLUR": "Blur", "BLURT": "Blurt", + "BLUSD": "Boosted LUSD", "BLUT": "Bluetherium", "BLV": "Blockvest", "BLV3": "Crypto Legions V3", @@ -1554,8 +1827,11 @@ "BMON": "Binamon", "BMONEY": "B-money", "BMP": "Brother Music Platform", + "BMS": "BMS COIN", "BMT": "BMChain", + "BMTC": "Metabit", "BMW": "BMW", + "BMWUKONG": "Black Myth WuKong", "BMX": "BitMart Token", "BMXT": "Bitmxittz", "BMXX": "Multiplier", @@ -1566,9 +1842,12 @@ "BNBBUNNY": "BNB BUNNY", "BNBCAT": "BNBcat", "BNBCH": "BNB Cash", + "BNBD": "BNBDOG", "BNBDOG": "BNB DOG INU", "BNBDOGE": "BNBdoge", "BNBDRGN": "BNBDragon", + "BNBE": "BNBEE", + "BNBFLOKI": "BNB FLOKI", "BNBFROG": "BNBFROG", "BNBH": "BnbHeroes Token", "BNBLION": "BNB LION", @@ -1586,6 +1865,7 @@ "BNIX": "BNIX Token", "BNK": "Bankera", "BNN": "Banyan Network", + "BNOM": "BitNomad", "BNP": "BenePit", "BNPL": "BNPL Pay", "BNR": "BiNeuro", @@ -1593,7 +1873,9 @@ "BNS": "BNS token", "BNSAI": "bonsAI Network", "BNSD": "BNSD Finance", + "BNSOL": "Binance Staked SOL", "BNSOLD": "BNS token ", + "BNSV1": "BNS token v1", "BNSX": "Bitcoin Name Service System", "BNT": "Bancor Network Token", "BNTE": "Bountie", @@ -1602,8 +1884,10 @@ "BNU": "ByteNext", "BNUSD": "Balanced Dollars", "BNX": "BinaryX", + "BNY": "TaskBunny", "BOA": "BOSAGORA", "BOAI": "BOLICAI", + "BOAM": "BOOK OF AI MEOW", "BOARD": "SurfBoard Finance", "BOAT": "Doubloon", "BOBA": "Boba Network", @@ -1613,7 +1897,11 @@ "BOBBYM": "Bobby Moore", "BOBC": "Bobcoin", "BOBE": "BOOK OF BILLIONAIRES", + "BOBER": "BOBER", + "BOBFUN": "BOB", + "BOBLS": "Boblles", "BOBO": "BOBO", + "BOBOT": "Bobo The Bear", "BOBS": "Bob's Repair", "BOBT": "BOB Token", "BOBUKI": "Bobuki Neko", @@ -1621,6 +1909,7 @@ "BOCA": "BookOfPussyCats", "BOCAC": "BocaChica token", "BOCAT": "BOCAT", + "BOD": "Book of Donald Trump", "BODA": "Based Yoda", "BODAV2": "BODA Token", "BODE": "Book of Derp", @@ -1630,13 +1919,16 @@ "BODOG": "Book of Doge", "BODYP": "Body Profile", "BOE": "Bodhi", + "BOF": "Balls of Fate", "BOG": "Bogged Finance", "BOGCOIN": "Bogcoin", + "BOGD": "Bogdanoff", "BOGE": "Boge", "BOGEY": "Bogey", "BOGGY": "Boggy Coin", "BOJAK": "Based Wojak", "BOJI": "BOJI Token", + "BOJIV1": "BOJI Token v1", "BOK": "Blockium", "BOKI": "BOOK OF KILLER", "BOKU": "Boryoku Dragonz", @@ -1645,16 +1937,19 @@ "BOLI": "BolivarCoin", "BOLT": "Bolt", "BOLTT": "BolttCoin", + "BOM": "Book Of Matt Furie", "BOMA": "Book of Maga", "BOMB": "BOMB", "BOMBC": "BombCoin", "BOMBM": "Bomb Money", + "BOMBO": "BOMBO", "BOMBS": "Bomb Shelter Inu", "BOME": "BOOK OF MEME", "BOME2": "Book of Meme 2.0", "BOMEDOGE": "BOOK OF DOGE MEMES", "BOMEOW": "Book of Meow", "BOMES": "BOOK OF MEMES", + "BOMET": "BOME TRUMP", "BOMK": "BOMK", "BON": "Bonpay", "BONA": "Bonafi", @@ -1663,19 +1958,27 @@ "BONDLY": "Bondly", "BONDLYV1": "Bondly Finance", "BONE": "Bone ShibaSwap", - "BONES": "BonesCoin", + "BONES": "Moonshots Farm", + "BONESCOIN": "BonesCoin", + "BONESV1": "Squirrel Finance", "BONFIRE": "Bonfire", "BONG": "BonkWifGlass", + "BONGO": "BONGO CAT", "BONIX": "Blockonix", "BONK": "Bonk", + "BONKBNB": "Bonk BNB", "BONKCON": "Bonkcon", + "BONKEA": "Bonk Earn", + "BONKEY": "Bonkey", "BONKFA": "Bonk of America", "BONKFORK": "BonkFork", "BONKGROK": "Bonk Grok", "BONKH": "BonkHoneyHNTMobileSOL", "BONKIN": "Bonkinu", "BONKKONG": "BONK KONG", + "BONKONBASE": "Bonk on Base", "BONKONETH": "Bonk On ETH", + "BONKW": "bonkwifhat", "BONO": "Bonorum Coin", "BONTE": "Bontecoin", "BONUS": "BonusBlock", @@ -1686,15 +1989,23 @@ "BOOFI": "Boo Finance", "BOOK": "Solbook", "BOOKIE": "BookieBot", - "BOOM": "BOOM DAO", + "BOOKO": "Book of Pets", + "BOOKOF": "BOOK OF NOTHING", + "BOOM": "Boomco", "BOOMCOIN": "Boom Token", + "BOOMDAO": "BOOM DAO", "BOOMER": "Boomer", "BOONS": "BOONSCoin", "BOOP": "Boop", - "BOOST": "Boost", + "BOOS": "Boost Trump Campaign", + "BOOST": "PodFast", + "BOOSTCO": "Boost", "BOOSTO": "BOOSTO", "BOOT": "Bostrom", "BOP": "Boring Protocol", + "BOPB": "BIOPOP", + "BOPE": "Book of Pepe", + "BOPPY": "BOPPY", "BOR": "BoringDAO", "BORA": "BORA", "BORED": "Bored Museum", @@ -1702,6 +2013,7 @@ "BORING": "BoringDAO", "BORK": "Bork", "BORKIE": "Borkie", + "BORPA": "Borpa", "BORUTO": "Boruto Inu", "BOS": "BOScoin", "BOSE": "Bitbose", @@ -1716,6 +2028,7 @@ "BOSU": "Bosu Inu", "BOT": "Bot Planet", "BOTC": "BotChain", + "BOTIFY": "BOTIFY", "BOTS": "ArkDAO", "BOTTO": "Botto", "BOTX": "BOTXCOIN", @@ -1724,32 +2037,48 @@ "BOUTS": "BoutsPro", "BOW": "Archer Swap", "BOWE": "Book of Whales", + "BOWSC": "BowsCoin", + "BOWSER": "Bowser", "BOX": "ContentBox", "BOXETH": "Cat-in-a-Box Ether", "BOXT": "BOX Token", "BOXX": "Blockparty", "BOXY": "BoxyCoin", - "BOYS": "CRASHBOYS", + "BOYS": "BOYSCLUB (boysclubonbase.com)", + "BOYSC": "Boy's club", "BOYSCLUB": "Matt Furie's Boys Club", "BOZO": "BOZO", "BOZOH": "bozo Hybrid", "BOZY": "Book of Crazy", "BP": "BunnyPark", "BPAD": "BlokPad", + "BPADA": "Binance-Peg Cardano (Binance Bridge)", + "BPAVAX": "Binance-Peg Avalanche (Binance Bridge)", "BPAY": "BNBPay", + "BPBCH": "Binance-Peg Bitcoin Cash (Binance Bridge)", + "BPBTT": "Binance-Peg BitTorrent", "BPD": "Beautiful Princess Disorder", + "BPDAI": "Binance-Peg Dai (Binance Bridge)", + "BPDOGE": "Binance-Peg DogeZilla (Binance Bridge)", "BPEPEF": "Baby Pepe Floki", "BPET": "BPET", "BPINKY": "BPINKY", "BPL": "BlockPool", "BPLC": "BlackPearl Token", + "BPLINK": "Binance-Peg Chainlink (Binance Bridge)", + "BPLTC": "Binance-Peg Litecoin", + "BPMATIC": "Binance-Peg Polygon (Binance Bridge)", "BPN": "beepnow", + "BPNEAR": "Binance-Peg NEAR Protocol", "BPOKO": "BabyPoko", "BPRIVA": "Privapp Network", "BPRO": "BitCloud Pro", "BPS": "BitcoinPoS", + "BPSHIB": "Binance-Peg Shiba Inu (Binance Bridge)", "BPT": "BlackPool Token", "BPTC": "Business Platform Tomato Coin", + "BPUNI": "Binance-Peg Uniswap Protocol Token (Binance Bridge)", + "BPUSDC": "Binance-Peg USD Coin (Binance Bridge)", "BPX": "Black Phoenix", "BQ": "Bitqy", "BQC": "BQCoin", @@ -1761,11 +2090,12 @@ "BRACE": "Bitci Racing Token", "BRAIN": "BrainCoin", "BRAINERS": "Brainers", + "BRAINLET": "Brainlet", "BRAINZ": "Brainz Finance", "BRAM": "Defibox bRAM", "BRANA": "Branaverse", "BRAND": "BrandProtect", - "BRAT": "BROTHER", + "BRAT": "Peak Brat", "BRATT": "Son of Brett", "BRAWL": "BitBrawl", "BRAZ": "Brazio", @@ -1780,10 +2110,13 @@ "BREE": "CBDAO", "BREED": "BreederDAO", "BREPE": "BREPE", - "BRETT": "Brett", + "BRETARDIO": "Bretardio", + "BRETT": "Brett Base", "BRETTA": "Bretta", - "BRETTBASE": "Brett Base", - "BRETTETH": "Brett ETH", + "BRETTFYI": "Brett", + "BRETTGOLD": "Brett Gold", + "BRETTONETH": "Brett ETH", + "BRETTSUI": "Brett (brettsui.com)", "BREW": "CafeSwap Token", "BREWERY": "Brewery Consortium Coin", "BREWLABS": "Brewlabs", @@ -1792,7 +2125,8 @@ "BRGX": "Bridge$", "BRI": "Baroin", "BRIA": "Briacoin", - "BRIAN": "Brianwifhat", + "BRIAN": "Brian Arm Strong", + "BRIANWIF": "Brianwifhat", "BRIC": "BrightCoin", "BRICK": "Brickchain FInance", "BRICKS": "MyBricks", @@ -1800,6 +2134,7 @@ "BRIGHT": "Bright Token", "BRIGHTU": "Bright Union", "BRIK": "BrikBit", + "BRIL": "Brilliantcrypto", "BRISE": "Bitgert", "BRIT": "BritCoin", "BRITT": "Britt", @@ -1813,17 +2148,23 @@ "BRN": "BRN Metaverse", "BRNK": "Brank", "BRNX": "Bronix", - "BRO": "Bitradio", + "BRO": "Bro the cat", "BROCK": "Bitrock", "BROGG": "Brett's Dog", + "BROKE": "Broke Again", + "BROKIE": "Brokie", "BRONZ": "BitBronze", "BROOT": "BROOT", + "BROTHER": "BROTHER", "BROWN": "BrowniesSwap", + "BROZ": "Brozinkerbell", + "BRP": "BananaRepublic", "BRRR": "Burrow", "BRS": "Broovs Projects", "BRT": "Bikerush", "BRTR": "Barter", "BRTX": "Bertinity", + "BRUH": "Bruh", "BRUNE": "BitRunes", "BRUSH": "PaintSwap", "BRUV": "Bruv", @@ -1839,17 +2180,20 @@ "BSAFU": "BlockSAFU", "BSATOSHI": "BabySatoshi", "BSB": "Based Street Bets", - "BSC": "BowsCoin", + "BSC": "BSC Layer", "BSCAKE": "Bunscake", "BSCBURN": "BSCBURN", + "BSCC": "BSCCAT", "BSCGIRL": "Binance Smart Chain Girl", "BSCH": "BitSchool", "BSCM": "BSC MemePad", "BSCPAD": "BSCPAD", "BSCPAY": "BSC PAYMENTS", "BSCS": "BSC Station", + "BSCST": "Starter", "BSCV": "Bscview", - "BSE": "BitSerial", + "BSDETH": "Based ETH", + "BSE": "base season", "BSEND": "BitSend", "BSFM": "BABY SAFEMOON", "BSG": "Baby Squid Game", @@ -1858,6 +2202,7 @@ "BSHARE": "Bomb Money", "BSHIB": "Based Shiba Inu", "BSI": "Bali Social Integrated", + "BSK": "BTCSKR", "BSKT": "BasketCoin", "BSL": "BankSocial", "BSOL": "BlazeStake Staked SOL", @@ -1894,12 +2239,16 @@ "BTC": "Bitcoin", "BTC2": "Bitcoin 2", "BTC2XFLI": "BTC 2x Flexible Leverage Index", + "BTC70000": "BTC 70000", "BTCA": "BITCOIN ADDITIONAL", "BTCAB": "Bitcoin Avalanche Bridged", + "BTCACT": "BITCOIN Act", "BTCAS": "BitcoinAsia", "BTCAT": "Bitcoin Cat", "BTCB": "Bitcoin BEP2", + "BTCBASE": "Bitcoin on Base", "BTCBR": "Bitcoin BR", + "BTCBRV1": "Bitcoin BR v1", "BTCC": "Bitcoin Core", "BTCD": "BitcoinDark", "BTCDRAGON": "BTC Dragon", @@ -1916,6 +2265,7 @@ "BTCM": "BTCMoon", "BTCMT": "Minto", "BTCN": "BitcoiNote", + "BTCNOW": "Blockchain Technology Co.", "BTCP": "Bitcoin Palladium", "BTCPAY": "Bitcoin Pay", "BTCPX": "BTC Proxy", @@ -1931,7 +2281,9 @@ "BTCZ": "BitcoinZ", "BTD": "Bitcloud", "BTDX": "Bitcloud 2.0", - "BTE": "BTEcoin", + "BTE": "Betero", + "BTECOIN": "BTEcoin", + "BTEV1": "Betero v1", "BTEX": "BTEX", "BTF": "Blockchain Traded Fund", "BTFA": "Banana Task Force Ape", @@ -1944,12 +2296,14 @@ "BTMG": "Bitcademy Football", "BTMI": "BitMiles", "BTMK": "BitMark", + "BTMT": "BITmarkets Token", "BTMXBULL": "3X Long BitMax Token Token", "BTNT": "BitNautic Token", "BTNTV2": "BitNautic Token", "BTNYX": "BitOnyx Token", "BTO": "Bottos", "BTOP": "Botopia.Finance", + "BTORO": "Bitoro Network", "BTP": "Bitpaid", "BTPL": "Bitcoin Planet", "BTQ": "BitQuark", @@ -1985,19 +2339,24 @@ "BUB": "BUBCAT", "BUBBA": "Bubba", "BUBBLE": "Bubble", + "BUBBLES": "BUBBLES", "BUBO": "Budbo", "BUBU": "BUBU", + "BUBV1": "BUBCAT v1", "BUC": "Beau Cat", "BUCK": "Coinbuck", "BUCKS": "SwagBucks", "BUCKY": "Bucky", "BUD": "Buddy", "BUDDHA": "Buddha", + "BUDDY": "BUDDY", "BUDG": "Bulldogswap", + "BUENO": "Bueno", "BUF": "Buftoad", "BUFF": "Buffalo Swap", "BUFFDOGE": "Buff Doge", "BUFFET": "Worried", + "BUFFI": "Bufficorn", "BUGATTI": "BUGATTI", "BUGG": "Bugg Inu", "BUGS": "Bugs Bunny", @@ -2007,15 +2366,20 @@ "BUILDTEAM": "BuildTeam", "BUK": "CryptoBuk", "BUL": "bul", + "BULDAK": "Buldak", "BULEI": "Bulei", "BULL": "Bullieverse", "BULLC": "BuySell", + "BULLF": "BULL FINANCE", + "BULLI": "Bullish On Ethereum", "BULLINU": "Bull inu", "BULLION": "BullionFX", + "BULLISH": "bullish", "BULLMOON": "Bull Moon", "BULLPEPE": "Bullpepe", "BULLS": "Bull Coin", "BULLSH": "Bullshit Inu", + "BULLY": "Dolos The Bully", "BULLYINGCAT": "Bullying Cat", "BULT": "Bullit", "BUM": "WillyBumBum", @@ -2025,9 +2389,12 @@ "BUND": "Bund V2.0", "BUNDL": "Bundl Tools", "BUNI": "Bunicorn", + "BUNN": "Bunni", "BUNNY": "Pancake Bunny", "BUNNYINU": "Bunny Inu", + "BUNNYM": "BUNNY MEV BOT", "BUNNYROCKET": "BunnyRocket", + "BURG": "Burger", "BURGER": "Burger Swap", "BURN": "BurnedFi", "BURNDOGE": "BurnDoge", @@ -2042,10 +2409,12 @@ "BUSDC": "BUSD", "BUSY": "Busy DAO", "BUT": "BitUP Token", + "BUTT": "Buttercat", "BUX": "BUX", "BUXCOIN": "Buxcoin", "BUY": "Burency", "BUYI": "Buying.com", + "BUYT": "Buy the DIP", "BUZZ": "BuzzCoin", "BV3A": "Buccaneer V3 Arbitrum", "BVC": "BeaverCoin", @@ -2053,7 +2422,8 @@ "BVND": "Binance VND", "BVO": "BRAVO Pay", "BVT": "BovineVerse Token", - "BWB": "Bit World Token", + "BWB": "Bitget Wallet Token", + "BWEN": "Baby Wen", "BWF": "Beowulf", "BWJ": "Baby WOJ", "BWK": "Bulwark", @@ -2063,6 +2433,7 @@ "BWS": "BitcoinWSpectrum", "BWT": "Bittwatt", "BWT2": "Bitwin 2.0", + "BWULL": "Bwull", "BWX": "Blue Whale", "BX": "BlockXpress", "BXA": "Blockchain Exchange Alliance", @@ -2081,12 +2452,14 @@ "BYAT": "Byat", "BYC": "ByteCent", "BYG": "Black Eye Galaxy", + "BYT": "ByteAI", "BYTE": "Byte", "BYTES": "Neo Tokyo", "BYTHER": "Bytether ", "BYTS": "Bytus", "BYTZ": "BYTZ", "BZ": "Bit-Z", + "BZE": "BeeZee", "BZENIQ": "Wrapped Zeniq (BNB)", "BZET": "Bzetcoin", "BZKY": "Bizkey", @@ -2097,7 +2470,6 @@ "BZX": "Bitcoin Zero", "BZZ": "Swarmv", "BZZONE": "Bzzone", - "BamitCoin": "BAM", "C2": "Coin.2", "C20": "Crypto20", "C25": "C25 Coin", @@ -2115,6 +2487,7 @@ "CACHE": "Cache", "CACHEGOLD": "CACHE Gold", "CACTUS": "CACTUS", + "CADAI": "CADAI", "CADC": "CAD Coin", "CADINU": "Canadian Inuit Dog", "CADN": "Content and AD Network", @@ -2144,6 +2517,7 @@ "CAMEL": "The Camel", "CAMLY": "Camly Coin", "CAMP": "Camp", + "CAMT": "CAMELL", "CAN": "Channels", "CANCER": "Cancer", "CAND": "Canary Dollar", @@ -2176,6 +2550,7 @@ "CARDSWAP": "CardSwap", "CARE": "Carebit", "CARES": "CareCoin", + "CARL": "Carl", "CARLO": "Carlo", "CARO": "Meta Ricaro", "CAROL": "CAROLToken", @@ -2185,46 +2560,68 @@ "CART": "CryptoArt.Ai", "CARTAXI": "CarTaxi", "CARTERCOIN": "CarterCoin", + "CARV": "CARV", "CAS": "Cashaa", "CASH": "CashCoin", + "CASHLY": "Cashly", "CASHT": "Cash Tech", "CASINU": "Casinu Inu", "CASIO": "CasinoXMetaverse", "CASPER": "Casper DeFi", "CAST": "Castello Coin", "CASTLE": "bitCastle", - "CAT": "Cat Token", + "CAT": "Simon's Cat", "CATA": "CATAMOTO", + "CATABSC": "CATA BSC", "CATAI": "Catgirl AI", + "CATALORIAN": "CATALORIAN", + "CATANA": "Catana", "CATBA": "CATBA INU", + "CATBAL": "Catbal", "CATBOY": "Catboy", "CATC": "Catcoin", "CATCEO": "CATCEO", "CATCH": "SpaceCatch", - "CATCOIN": "CatCoin Cash", + "CATCO": "CatCoin", + "CATCOIN": "CatCoin", "CATCOINETH": "Catcoin", + "CATCOINV2": "CatCoin Cash", + "CATDOG": "Cat-Dog", "CATDOGE": "CAT DOGE", - "CATE": "CateCoin", + "CATEC": "Cate Coin", + "CATECOIN": "CateCoin", "CATELON": "CatElonMars", "CATEX": "CATEX", "CATFISH": "Catfish", + "CATG": "Crypto Agent Trading", "CATGAME": "Cookie Cat Game", "CATGIRL": "Catgirl", + "CATGOKU": "Catgoku", "CATGPT": "CatGPT", "CATHAT": "catwifhat", "CATHEON": "Catheon Gaming", "CATHERO": "Cat Hero", + "CATI": "Catizen", + "CATINU": "CAT INU", "CATKING": "CAT KING", + "CATLIFE": "Cat Life", "CATMAN": "Catman", "CATME": "ELON’S CAT", "CATO": "CATO", "CATPAY": "CATpay", "CATPEPE": "CAT PEPE", "CATS": "CatCoin Token", + "CATSC": "Catscoin", "CATSHIRA": "Shira Cat", + "CATSO": "Cats Of Sol", + "CATSON": "Catson", + "CATSV1": "CatCoin Token v1", + "CATSY": "CAT SYLVESTER", "CATT": "Catex", + "CATTO": "Cat Token", "CATVAX": "Catvax", "CATVILLS": "Catvills Coin", + "CATW": "Cat wif Hands", "CATWARRIOR": "Cat warrior", "CATWIF": "CatWifHat", "CATX": "CAT.trade Protocol", @@ -2241,8 +2638,11 @@ "CBABY": "Cosmo Baby", "CBANK": "Crypto Bank", "CBAT": "Compound Basic Attention Token", + "CBBTC": "Coinbase Wrapped BTC", + "CBBTCBASE": "cbBTC", "CBC": "Casino Betting Coin", "CBD": "CBD Crystals", + "CBDAI": "Dai (Cronos Bridge)", "CBDC": "CannaBCoin", "CBDG": "CBD Global", "CBE": "The Chain of Business Entertainment", @@ -2252,10 +2652,12 @@ "CBG": "Chainbing", "CBIXP": "Cubiex Power", "CBK": "Cobak Token", + "CBL": "Credbull", "CBM": "CryptoBonusMiles", "CBNT": "Create Breaking News Together", "CBOT": "C-BOT", - "CBP": "ComBox", + "CBP": "CashBackPro", + "CBPAY": "COINBAR PAY", "CBRL": "Crypto BRL", "CBRT": "Cybereits Token", "CBS": "Cerberus", @@ -2277,6 +2679,7 @@ "CCC": "CCCoin", "CCCX": "Clipper Coin Capital", "CCD": "Concordium", + "CCDS": "CCDS INTERNATIONAL", "CCE": "CloudCoin", "CCGDS": "CCGDS", "CCH": "Coinchase", @@ -2311,6 +2714,7 @@ "CDX": "CDX Network", "CDY": "Bitcoin Candy", "CDragon": "Clumsy Dragon", + "CEC": "Counterfire Economic Coin", "CEDEX": "CEDEX Coin", "CEEK": "CEEK Smart VR Token", "CEFS": "CryptopiaFeeShares", @@ -2326,12 +2730,17 @@ "CEM": "Crypto Emergency", "CEN": "Coinsuper Ecosystem Network", "CENNZ": "Centrality Token", + "CENS": "Censored Ai", "CENT": "CENTERCOIN", + "CENTA": "Centaurify", "CENTRA": "Centra", + "CENTS": "Centience", "CENX": "Centcex", "CEODOGE": "CEO DOGE", + "CERBER": "CERBEROGE", "CERE": "Cere Network", "CERES": "Ceres", + "CES": "swap.coffee", "CESC": "Crypto Escudo", "CET": "CoinEx Token", "CETH": "Compound Ethereum", @@ -2348,6 +2757,7 @@ "CFL365": "CFL365 Finance", "CFLASH": "Flash", "CFLO": "Chain Flowers", + "CFN": "Cockfight Network", "CFT": "CryptoForecast", "CFTY": "Crafty", "CFX": "Conflux Network", @@ -2355,11 +2765,13 @@ "CFXT": "Chainflix", "CFun": "CFun", "CGA": "Cryptographic Anomaly", + "CGAR": "CryptoGuards", "CGG": "Chain Guardians", "CGL": "Crypto Gladiator Shards", "CGLD": "Celo Gold", "CGO": "Comtech Gold", "CGPT": "ChainGPT", + "CGPU": "CloudGPU", "CGS": "Crypto Gladiator Shards", "CGT": "Coin Gabbar Token", "CGU": "Crypto Gaming United", @@ -2369,6 +2781,7 @@ "CHAD": "Chad Coin", "CHADCAT": "CHAD CAT", "CHADS": "CHADS VC", + "CHAI": "Chroma AI", "CHAIN": "Chain Games", "CHAINCADE": "ChainCade", "CHAL": "Chalice Finance", @@ -2377,8 +2790,10 @@ "CHAMPZ": "Champz", "CHAN": "ChanCoin", "CHANCE": "Ante Casino", + "CHANG": "Chang", "CHANGE": "ChangeX", "CHAO": "23 Skidoo", + "CHAOS": "chaos and disorder", "CHAPZ": "Chappyz", "CHARGED": "GoCharge Tech", "CHARIZARD": "Charizard Inu", @@ -2389,7 +2804,10 @@ "CHARTIQ": "ChartIQ", "CHASH": "CleverHash", "CHAT": "Solchat", + "CHATAI": "ChatAI Token", "CHATGPT": "AI Dragon", + "CHATOSHI": "chAtoshI", + "CHATTY": "ChatGPT's Mascot", "CHB": "COINHUB TOKEN", "CHBR": "CryptoHub", "CHC": "ChainCoin", @@ -2401,11 +2819,16 @@ "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", + "CHEESE": "Cheese", + "CHEESEBALL": "Cheeseball the Wizard", + "CHEESECOIN": "Cheesecoin", "CHEESUS": "Cheesus", + "CHEF": "Chefdotfun", "CHENG": "Chengshi", "CHEQ": "CHEQD Network", "CHER": "Cherry Network", @@ -2413,35 +2836,47 @@ "CHESS": "Tranchess", "CHESSCOIN": "ChessCoin", "CHET": "ChetGPT", + "CHEW": "CHEWY", "CHEWY": "Chewy", "CHEX": "Chintai", + "CHEYENNE": "Cheyenne", "CHFN": "NOKU CHF", "CHFT": "Crypto Holding", "CHFU": "Upper Swiss Franc", "CHFX": "eToro Swiss Franc", "CHH": "Chihuahua Token", "CHI": "Chi Gastoken", + "CHIB": "Chiba Inu", "CHICA": "CHICA", "CHICKS": "SolChicks", "CHIDO": "Chinese Doge Wow", + "CHIE": "Chief Pepe Officer", "CHIEF": "TheChiefCoin", + "CHIEFD": "Chief D.O.G.E", "CHIHUA": "Chihua Token", "CHII": "Chiiper Chain", "CHILD": "ChildCoin", + "CHILDAI": "Singularity's Child gonzoai", "CHILI": "CHILI", "CHILL": "ChillPill", + "CHILLGUY": "Chill Guy", "CHIM": "Chimera", + "CHINAU": "Chinau", "CHINAZILLA": "ChinaZilla", "CHINGON": "Mexico Chingon", "CHINU": "Chubby Inu", "CHIP": "Chip", + "CHIPI": "chipi", "CHIPPY": "Chippy", "CHIPS": "CHIPS", "CHIRP": "Chirp", + "CHIRPY": "Chirpy Boy", + "CHITAN": "Chitan", "CHITCAT": "ChitCAT", "CHIWAWA": "Chiwawa", "CHK": "Chek", "CHKN": "Chickencoin", + "CHLOE": "Pnut's Sister", "CHLT": "Chellitcoin", "CHMB": "Chumbi Valley", "CHMPZ": "Chimpzee", @@ -2473,7 +2908,10 @@ "CHUC": "CHUCK", "CHUCHU": "CHUCHU", "CHUCK": "Chuck Norris", - "CHUMP": "Chump Change", + "CHUD": "Chudjak", + "CHULO": "Papichulo", + "CHUMP": "Donald J Chump", + "CHUMPC": "Chump Change", "CHURRO": "CHURRO-The Jupiter Dog", "CHVF": "Chives Finance", "CHW": "Chrysalis Coin", @@ -2484,6 +2922,7 @@ "CIC": "Crazy Internet Coin", "CICHAIN": "CIChain", "CIF": "Crypto Improvement Fund", + "CIG": "cig", "CIM": "COINCOME", "CIN": "CinderCoin", "CIND": "Cindrum", @@ -2499,6 +2938,7 @@ "CIRCUS": "Cirque Du Sol", "CIRRUS": "Cirrus", "CIRUS": "Cirus", + "CIRX": "Circular Protocol", "CITI": "CITI Fediverse", "CITY": "Manchester City Fan Token", "CIV": "Civilization", @@ -2520,7 +2960,10 @@ "CL": "CoinLancer", "CLA": "ClaimSwap", "CLAM": "CLAMS", + "CLANKER": "tokenbot", + "CLAP": "Clap Cat", "CLAS": "Classic USDC", + "CLASH": "Clashub", "CLASS": "Class Coin", "CLAY": "Clay Nation", "CLB": "Cloudbric", @@ -2544,6 +2987,7 @@ "CLINT": "Clinton", "CLIPS": "Clips", "CLIQ": "DefiCliq", + "CLISBNB": "clisBNB", "CLIST": "Chainlist", "CLM": "CoinClaim", "CLMRS": "Crolon Mars", @@ -2551,11 +2995,14 @@ "CLNX": "Coloniume Network", "CLNY": "Colony", "CLO": "Callisto Network", + "CLOA": "Cloak", "CLOAK": "CloakCoin", + "CLOKI": "CATLOKI", "CLORE": "Clore.ai", - "CLOUD": "Metacloud", + "CLOUD": "Cloud", "CLOUT": "BitClout", "CLOUTIO": "Clout", + "CLOW": "Clown Pepe", "CLPX": "Chynge.net", "CLR": "CopperLark", "CLRTY": "Clarity", @@ -2564,6 +3011,7 @@ "CLU": "CluCoin", "CLUB": "ClubCoin", "CLUD": "CludCoin", + "CLUSTR": "Clustr Labs", "CLV": "Clover Finance", "CLVA": "Clever DeFi", "CLVX": "Calvex", @@ -2576,6 +3024,7 @@ "CMCX": "CORE MultiChain", "CMDX": "Comdex", "CMERGE": "CoinMerge", + "CMETH": "Mantle Restaked Ether", "CMFI": "Compendium", "CMINER": "ChainMiner", "CMIT": "CMITCOIN", @@ -2627,13 +3076,20 @@ "CNYX": "eToro Chinese Yuan", "CO": "Corite", "CO2": "CO2 Token", + "COAI": "CodeMong Ai", "COAL": "BitCoal", "COB": "Cobinhood", "COBE": "Castle of Blackwater", + "COBY": "Coby", "COC": "Coin of the champions", + "COCAINE": "THE GOOD STUFF", "COCK": "Shibacock", - "COCO": "0xCoco", + "COCO": "COCO COIN", + "COCONUT": "Coconut", + "COD": "Chief of Deswamp", + "CODA": "CODA", "CODAI": "CODAI", + "CODE": "Code Token", "CODEG": "CodeGenie", "CODEO": "Codeo Token", "CODEX": "CODEX Finance", @@ -2641,6 +3097,7 @@ "CODY": "Coindy", "COE": "CoEval", "COFEEE": "COFEEE", + "COFFEE": "COFFEE", "COFFEECOIN": "CoffeeCoin", "COFI": "CoinFi", "COFIX": "CoFIX", @@ -2650,15 +3107,19 @@ "COGI": "COGI", "COGS": "Cogmento", "COI": "Coinnec", + "COINB": "Coinbidex", "COINBT": "CoinBot", "COINDEFI": "Coin", "COING": "Coingrid", "COINH": "Coinhound", "COINLION": "CoinLion", + "COINM": "CoinMarketPrime", + "COINONAT": "Coinonat", "COINSCOPE": "Coinscope", "COINSL": "CoinsLoot", "COINVEST": "Coinvest", "COINYE": "Coinye West", + "COJ": "Cojam", "COK": "Cat Own Kimono", "COKE": "Cocaine Cowboy Shards", "COL": "Clash of Lilliput", @@ -2666,8 +3127,10 @@ "COLL": "Collateral Pay", "COLLAR": "PolyPup Finance", "COLLE": "Collective Care", + "COLLEA": "Colle AI", "COLLECT": "CoinCollect", "COLLG": "Collateral Pay Governance", + "COLON": "Colon", "COLR": "colR Coin", "COLT": "Collateral Network", "COLX": "ColossusCoinXT", @@ -2675,12 +3138,14 @@ "COMAI": "Commune AI", "COMB": "Combo", "COMBO": "COMBO", + "COMBOX": "ComBox", + "COMC": "ComCrica Token", "COME": "Community of Meme", "COMEW": "Coin In Meme World", "COMFI": "CompliFi", "COMM": "Community Coin", "COMMUNITYCOIN": "Community Coin", - "COMP": "Compound Governance Token", + "COMP": "Compound", "COMPCOIN": "Compcoin", "COMPD": "Compound Coin", "COMPU": "Compute Network", @@ -2696,15 +3161,21 @@ "CONK": "ShibaPoconk", "CONS": "ConSpiracy Coin", "CONSENTIUM": "Consentium", + "CONTROL": "Control Token", "CONV": "Convergence", + "CONVO": "Prefrontal Cortex Convo Agent by Virtuals", "CONX": "Connex", + "COO": "Cool Cats MILK", "COOCHIE": "Cucci", "COOHA": "CoolHash", "COOK": "Cook", + "COOKIE": "Cookie", "COOL": "CoolCoin", "COOP": "Coop Network", + "COPA": "COCO PARK", "COPE": "Cope", "COPI": "Cornucopias", + "COPIO": "Copiosa Coin", "COPIUM": "Copium", "COPS": "Cops Finance", "COPYCAT": "Copycat Finance", @@ -2712,8 +3183,10 @@ "COR": "Coreto", "CORAL": "CoralPay", "CORE": "Core", + "COREC": "CoreConnect", "COREDAO": "coreDAO", "COREG": "Core Group Asset", + "COREK": "Core Keeper", "COREUM": "Coreum", "CORGI": "Corgi Inu", "CORGIAI": "CorgiAI", @@ -2721,12 +3194,14 @@ "CORION": "Corion", "CORN": "CORN", "CORNELLA": "CORNELLA", + "CORSI": "Cane Corso", "CORX": "CorionX", "COS": "Contentos", "COSHI": "CoShi Inu", "COSM": "CosmoChain", "COSMI": "Cosmic FOMO", "COSMIC": "CosmicSwap", + "COSMICN": "Cosmic Network", "COSP": "Cosplay Token", "COSS": "COS", "COST": "Costco Hot Dog", @@ -2780,6 +3255,7 @@ "CPRX": "Crypto Perx", "CPS": "Cryptostone", "CPT": "Cryptaur", + "CPTN": "Captain Max", "CPU": "CPUcoin", "CPX": "Apex Token", "CPY": "COPYTRACK", @@ -2794,12 +3270,16 @@ "CRADLE": "Cradle of Sins", "CRAFT": "TaleCraft", "CRAFTCOIN": "Craftcoin", + "CRAI": "Cryptify AI", "CRAIG": "CraigsCoin", "CRAMER": "Cramer Coin", "CRANEPAY": "Cranepay", "CRASH": "Solana Crash", + "CRASHBOYS": "CRASHBOYS", "CRAVE": "CraveCoin", "CRAYRABBIT": "CrazyRabbit", + "CRAZ": "CRAZY FLOKI", + "CRAZYB": "Crazy Bunny", "CRAZYBONK": "CRAZY BONK", "CRAZYBUNNY": "Crazy Bunny", "CRAZYCAT": "CRAZY CAT", @@ -2807,6 +3287,7 @@ "CRAZYDRAGON": "CRAZY DRAGON", "CRAZYMUSK": "CRAZY MUSK", "CRAZYPEPE": "CrazyPepe", + "CRAZYT": "CRAZY TRUMP", "CRAZYTIGER": "CRAZY TIGER", "CRB": "Creditbit", "CRBN": "Carbon", @@ -2846,10 +3327,14 @@ "CRGPT": "CryptoGPT", "CRH": "Crypto Hunters Coin", "CRHT": "CryptHub", + "CRI": "Criptodólar", "CRI3X": "CRI3X", "CRICKETS": "Kermit", "CRIME": "Crime Gold", "CRIMINGO": "Criminal Flamingo", + "CRIPPL": "Wheelchair Cat", + "CRIS": "CristianoRonaldoSpeedSmurf7Siu", + "CRISPR": "CRISPR", "CRK": "Croking", "CRL": "Cryptelo Coin", "CRM": "Cream", @@ -2871,6 +3356,7 @@ "CROWD": "CrowdCoin", "CROWDWIZ": "Crowdwiz", "CROWN": "Crown by Third Time Games", + "CROWWITH": "crow with knife", "CROX": "CroxSwap", "CRP": "Crypton", "CRPS": "CryptoPennies", @@ -2878,6 +3364,7 @@ "CRS": "CRYSTALS", "CRSP": "CryptoSpots", "CRT": "Carr.Finance", + "CRTAI": "CRT AI Network", "CRTB": "Coritiba F.C. Fan Token", "CRTM": "Cryptum", "CRTS": "Cratos", @@ -2887,6 +3374,7 @@ "CRUMP": "Crypto Trump", "CRUX": "CryptoMines Reborn", "CRV": "Curve DAO Token", + "CRVE": "Curve DAO Token (Avalanche Bridge)", "CRVUSD": "crvUSD", "CRVY": "Curve Inu", "CRW": "Crown Coin", @@ -2898,12 +3386,26 @@ "CRYO": "CryoDAO", "CRYP": "CrypticCoin", "CRYPT": "CryptCoin", + "CRYPTER": "Crypteriumcoin", + "CRYPTOAI": "CryptoAI", + "CRYPTOB": "Crypto Burger", + "CRYPTOBEAST": "CryptoBeast", + "CRYPTOBL": "CryptoBlades Kingdoms", "CRYPTOBULLION": "CryptoBullion", "CRYPTOE": "Cryptoenter", + "CRYPTOEM": "Crypto Emperor Trump", + "CRYPTOF": "CryptoFarmers", + "CRYPTOH": "CryptoHunterTrading", + "CRYPTOJ": "Crypto Journey", "CRYPTON": "CRYPTON", "CRYPTONITE": "Cryptonite", + "CRYPTOOFFICIAL": "Crypto", + "CRYPTOPAL": "Pal", "CRYPTOPRO": "CryptoProfile", + "CRYPTOR": "CRYPTORG", + "CRYPTOS": "CryptoSoul", "CRYPTOSDG": "Crypto SDG", + "CRYPTOT": "Crypto Trump", "CRYPTOU": "CryptoUnity", "CRYSTAL": "Crystal", "CRYSTALCLEAR": "Crystal Clear Token", @@ -2915,6 +3417,7 @@ "CSC": "CasinoCoin", "CSEN": "Sentient Coin", "CSH": "CashOut", + "CSI": "CSI888", "CSIX": "Carbon Browser", "CSM": "Crust Shadow", "CSMIC": "Cosmic", @@ -2931,12 +3434,14 @@ "CSTL": "Castle", "CSTR": "CoreStarter", "CSUSHI": "cSUSHI", + "CSW": "Crosswalk", "CSWAP": "ChainSwap", "CSX": "Coinstox", "CT": "CryptoTwitter", "CTA": "Cross The Ages", "CTAG": "CTAGtoken", "CTASK": "CryptoTask", + "CTB": "Content Bitcoin", "CTC": "Creditcoin", "CTCN": "Contracoin", "CTE": "Crypto Tron", @@ -2951,12 +3456,13 @@ "CTLS": "Chaintools", "CTLX": "Cash Telex", "CTN": "Continuum Finance", - "CTO": "Crypto", + "CTO": "BaseCTO", "CTOK": "Codyfight", "CTP": "Ctomorrow Platform", "CTPL": "Cultiplan", "CTPT": "Contents Protocol", "CTR": "Creator Platform", + "CTRL": "Ctrl Wallet", "CTRL2XY": "Control2XY", "CTRT": "Cryptrust", "CTS": "Citrus", @@ -2979,7 +3485,9 @@ "CUEX": "Cuex", "CUFF": "Jail Cat", "CULO": "CULO", + "CULOETH": "CULO", "CULT": "Cult DAO", + "CULTUR": "Cultur", "CUM": "Cumbackbears", "CUMINU": "CumInu", "CUMMIES": "CumRocket", @@ -2988,6 +3496,7 @@ "CURE": "Curecoin", "CURI": "Curium", "CURIO": "Curio Governance", + "CURLY": "Curly", "CURR": "Curry", "CURRY": "CurrySwap", "CUSD": "Carbon", @@ -2997,6 +3506,7 @@ "CUST": "Custody Token", "CUT": "CUTcoin", "CUTE": "Blockchain Cuties Universe", + "CUUT": "CUTTLEFISHY", "CUZ": "Cool Cousin", "CV": "CarVertical", "CVA": "Crypto Village Accelerator", @@ -3046,11 +3556,13 @@ "CXO": "CargoX", "CXP": "Caixa Pay", "CXPAD": "CoinxPad", - "CXT": "Coinonat", + "CXT": "Covalent X Token", "CY97": "Cyclops97", "CYB": "CYBERTRUCK", "CYBA": "CYBRIA", + "CYBE": "Cyberlete", "CYBER": "CyberConnect", + "CYBERA": "Cyber Arena", "CYBERC": "CyberCoin", "CYBERD": "Cyber Doge", "CYBERTRUCK": "Cyber Truck", @@ -3065,6 +3577,7 @@ "CYCLUB": "Cyclub", "CYCON": "CONUN", "CYDER": "Cyder Coin", + "CYDX": "CyberDEX", "CYFI": "cYFI", "CYG": "Cygnus", "CYL": "Crystal Token", @@ -3073,13 +3586,16 @@ "CYOP": "CyOp Protocol", "CYP": "CypherPunkCoin", "CYPEPE": "CyPepe", + "CYPHER": "CYPHER•GENESIS (Runes)", "CYRS": "Cyrus Token", "CYRUS": "Cyrus Exchange", "CYS": "BlooCYS", "CYT": "Cryptokenz", + "CZ": "CHANGPENG ZHAO (changpengzhao.club)", "CZC": "Crazy Coin", "CZF": "CZodiac Farming Token", "CZGOAT": "CZ THE GOAT", + "CZKING": "CZKING", "CZOL": "Czolana", "CZR": "CanonChain", "CZRX": "Compound 0x", @@ -3094,6 +3610,7 @@ "D4RK": "DarkPayCoin", "DAAPL": "Apple Tokenized Stock Defichain", "DAB": "DABANKING", + "DABCAT": "Dabcat", "DAC": "Davinci Coin", "DACASH": "DACash", "DACAT": "daCat", @@ -3106,32 +3623,41 @@ "DAD": "DAD", "DADA": "DADA", "DADDY": "Daddy Tate", + "DADDYCHILL": "Daddy Chill", "DADDYDOGE": "Daddy Doge", "DADI": "Edge", + "DAETA": "DÆTA", "DAF": "DaFIN", "DAFI": "Dafi Protocol", "DAFT": "DaftCoin", "DAG": "Constellation", "DAGO": "Dago Mining", + "DAGS": "Dagcoin", "DAGT": "Digital Asset Guarantee Token", "DAI": "Dai", + "DAIE": "Dai (Avalanche Bridge)", "DAILY": "Coindaily", "DAILYS": "DailySwap Token", "DAIMO": "Diamond Token", "DAIN": "Dain Token", "DAIQ": "Daiquilibrium", "DAISY": "Daisy Launch Pad", + "DAK": "dak", "DAL": "DAOLaunch", "DALI": "Dalichain", + "DALMA": "Dalma Inu", "DAM": "Datamine", "DAMEX": "DAMEX", + "DAMN": "Sol Killer", "DAMO": "Coinzen", "DAMOON": "Damoon Coin", "DAN": "Daneel", "DANA": "Ardana", "DANG": "Guangdang", "DANGEL": "dAngel Fund", + "DANJ": "Danjuan Cat", "DANK": "DarkKush", + "DANNY": "Degen Danny", "DAO": "DAO Maker", "DAO1": "DAO1", "DAOACT": "ACT", @@ -3147,6 +3673,7 @@ "DAPS": "DAPS Coin", "DAR": "Mines of Dalarnia", "DARA": "Immutable", + "DARAM": "Daram", "DARB": "Darb Token", "DARC": "Konstellation", "DARCRUS": "Darcrus", @@ -3156,6 +3683,8 @@ "DARIK": "Darik", "DARK": "Dark", "DARKEN": "Dark Energy Crystals", + "DARKMAGACOIN": "DARK MAGA", + "DARKT": "Dark Trump", "DART": "dART Insurance", "DARX": "Bitdaric", "DAS": "DAS", @@ -3163,14 +3692,18 @@ "DASH": "Dash", "DASHD": "Dash Diamond", "DASHG": "Dash Green", + "DASIAv": "DASIA", "DAT": "Datum", "DATA": "Streamr", + "DATAO": "Data Ownership Protocol", "DATAWALLET": "DataWallet", + "DATOM": "Drop Staked ATOM", "DATP": "Decentralized Asset Trading Platform", "DATX": "DATx", "DAUMEN": "Daumenfrosch", "DAV": "DAV", "DAVE": "DAVE", + "DAVID": "David", "DAVINCI": "Davincigraph", "DAVIS": "Davis Cup Fan Token", "DAVP": "Davion", @@ -3196,7 +3729,7 @@ "DBL": "Doubloon", "DBOE": "DBOE", "DBOX": "DefiBox", - "DBR": "Düber", + "DBR": "deBridge", "DBTC": "DebitCoin", "DBTN": "Universa Native token", "DBUND": "DarkBundles", @@ -3213,6 +3746,11 @@ "DCB": "Decubate", "DCC": "Distributed Credit Chain", "DCCT": "DocuChain", + "DCD": "DecideAI", + "DCE": "Decentra Ecosystem", + "DCF": "Decentralized Finance", + "DCHEFSOL": "Degen Chef", + "DCHEWY": "Drop Chewy", "DCHF": "DeFi Franc", "DCI": "Decentralized Cloud Infrastructure", "DCIP": "Decentralized Community Investment Protocol", @@ -3234,15 +3772,18 @@ "DD": "DuckDAO", "DDAM": "DDAM", "DDAO": "DDAO Hunters", + "DDBAM": "Didi Bam Bam", "DDD": "Scry.info", "DDDD": "People's Punk", "DDF": "Digital Developers Fund", "DDIM": "DuckDaoDime", "DDK": "DDKoin", "DDL": "Donocle", + "DDMT": "Dongdaemun Token", "DDN": "Den Domains", "DDOS": "disBalancer", "DDR": "Digi Dinar", + "DDRO": "D-Drops", "DDRST": "DigiDinar StableToken", "DDRT": "DigiDinar Token", "DDS": "DDS.Store", @@ -3259,14 +3800,20 @@ "DECI": "Maximus DECI", "DECL": "Decimal token", "DECODE": "Decode Coin", + "DEDA": "DedaCoin", "DEDE": "Dede", + "DEDI": "Dedium", + "DEDPRZ": "DEDPRZ", + "DEEBO": "Deebo the Bear", "DEED": "Deed (Ordinals)", "DEEM": "iShares MSCI Emerging Markets ETF Defichain", - "DEEP": "DeepCloud AI", + "DEEP": "DeepBook Protocol", + "DEEPCLOUD": "DeepCloud AI", "DEEPG": "Deep Gold", "DEER": "ToxicDeer Finance", "DEEX": "DEEX", "DEEZ": "DEEZ NUTS", + "DEFAI": "DeFAI", "DEFC": "Defi Coin", "DEFEND": "Blockdefend AI", "DEFI": "DeFi", @@ -3287,19 +3834,24 @@ "DEFY": "DEFY", "DEG": "Degis", "DEGA": "Dega", + "DEGATE": "DeGate", "DEGEN": "Degen", + "DEGENAI": "Degen Spartan AI", "DEGENR": "DegenReborn", "DEGO": "Dego Finance", + "DEGOD": "degod", "DEGOV": "Degov", "DEGOV1": "Dego Finance v1", "DEHUB": "DeHub", "DEI": "Deimos", "DEK": "DekBox", "DEL": "Decimal", + "DELAY": "DegenLayer", "DELCHAIN": "DelChain", "DELFI": "DeltaFi", "DELI": "NFTDeli", "DELIGHTPAY": "DelightPay", + "DELON": "Dark Elon", "DELOT": "DELOT.IO", "DELTA": "Delta Financial", "DELTAC": "DeltaChain", @@ -3313,31 +3865,41 @@ "DEOD": "Decentrawood", "DEOR": "Decentralized Oracle", "DEP": "DEAPCOIN", + "DEPA": "Department Of Government Efficiency", + "DEPINU": "Depression Inu", "DEPO": "Depo", "DEPTH": "Depth Token", "DEQ": "Dequant", + "DER": "Deri Trade", "DERC": "DeRace", "DERI": "Deri Protocol", "DERO": "Dero", "DERP": "Derp", "DES": "DeSpace Protocol", + "DESCI": "DeSci Meme", "DESI": "Desico", "DESO": "Decentralized Social", "DESTINY": "Destiny", "DESU": "Dexsport", + "DESY": "Desy Duk", "DETENSOR": "DeTensor", "DETF": "Decentralized ETF", "DETH": "DarkEther", + "DETO": "Delta Exchange", "DEUR": "DigiEuro", "DEUS": "DEUS Finance", + "DEUSD": "Elixir deUSD", "DEV": "Deviant Coin", "DEVCOIN": "DevCoin", + "DEVE": "Develocity Finance", + "DEVI": "DEVITA", "DEVO": "DeVolution", "DEVT": "DeHorizon", "DEVVE": "Devve", "DEVX": "Developeo", "DEX": "DEX", "DEXA": "DEXA COIN", + "DEXC": "DexCoyote Legends", "DEXE": "DeXe", "DEXG": "Dextoken Governance", "DEXIO": "Dexioprotocol", @@ -3395,7 +3957,9 @@ "DGORE": "DogeGoreCoin", "DGP": "DGPayment", "DGPT": "DigiPulse", + "DGTA": "Digitra.com Token", "DGTX": "Digitex Token", + "DGV1": "Decentral Games v1", "DGVC": "DegenVC", "DGX": "Digix Gold token", "DHLT": "DeHealth", @@ -3407,10 +3971,12 @@ "DHV": "DeHive", "DHX": "DataHighway", "DIA": "DIA", + "DIAB": "Diablo IV Solana", "DIABLO": "Diablo IV", "DIAM": "Diamond", "DIAMND": "Projekt Diamond", "DIAMOND": "Diamond Coin", + "DIAMONDINU": "Diamond", "DIBBLE": "Dibbles", "DIBC": "DIBCOIN", "DIC": "Daikicoin", @@ -3420,6 +3986,7 @@ "DICK": "adDICKted", "DICKCOIN": "DickCoin", "DID": "Didcoin", + "DIDDY": "DIDDY", "DIDID": "Didi Duck", "DIE": "Die Protocol", "DIEM": "Facebook Diem", @@ -3434,9 +4001,13 @@ "DIGI": "Digiverse", "DIGIC": "DigiCube", "DIGIF": "DigiFel", + "DIGIMON": "Digimon", + "DIGIT": "Digital Asset Rights Token", "DIGITAL": "Digital Reserve Currency", + "DIGITS": "Digits DAO", "DIGNITY": "Dignity", "DIGS": "Diggits", + "DIK": "DikDok", "DIKO": "Arkadiko", "DILI": "D Community", "DILIGENT": "Diligent Pepe", @@ -3445,15 +4016,18 @@ "DIME": "DimeCoin", "DIMO": "DIMO", "DIN": "Dinero", - "DINERO": "Dinerobet", + "DINERO": "Dinero", + "DINEROBET": "Dinerobet", "DINGER": "Dinger Token", "DINGO": "Dingocoin", "DINO": "DinoSwap", + "DINOS": "Dinosaur Inu", "DINT": "DinarTether", "DINU": "Dogey-Inu", "DINW": "Dinowars", "DIO": "Decimated", "DIONE": "Dione", + "DIONEV1": "Dione v1", "DIP": "Etherisc", "DIPA": "Doge Ipa", "DIRTY": "Dirty Street Cats", @@ -3461,6 +4035,7 @@ "DISCOVERY": "DiscoveryIoT", "DISK": "Dark Lisk", "DISPEPE": "Disabled Pepe", + "DISTR": "Distributed Autonomous Organization", "DIT": "Ditcoin", "DITH": "Dither AI", "DIVA": "DIVA Protocol", @@ -3471,6 +4046,7 @@ "DIW": "DIWtoken", "DIYAR": "Diyarbekirspor Token", "DJED": "Djed", + "DJI": "Doge Jones Industrial Average", "DJT": "Save America", "DK": "Dominant Kong", "DKA": "dKargo", @@ -3479,6 +4055,7 @@ "DKEY": "DKEY Bank", "DKKT": "DKK Token", "DKNIGHT": "Dark Knight", + "DKP": "Dragginz", "DKS": "DarkShield", "DKT": "Duelist King", "DKUMA": "KumaDex Token", @@ -3486,6 +4063,7 @@ "DLANCE": "DeeLance", "DLB": "DiemLibre", "DLC": "Diamond Launch", + "DLCBTC": "DLC.Link", "DLISK": "Dlisk", "DLLR": "Sovryn Dollar", "DLO": "Delio", @@ -3500,11 +4078,13 @@ "DLY": "Daily Finance", "DLYCOP": "Daily COP", "DMA": "Dragoma", + "DMAGA": "Dark MAGA", "DMAIL": "DMAIL Network", "DMAR": "DMarket", "DMC": "Dream21", "DMCC": "DiscoverFeed", "DMCH": "DARMA Cash", + "DMCK": "Diamond Castle", "DMD": "DMD", "DMG": "DMM: Governance", "DMGBULL": "3X Long DMM Governance Token", @@ -3538,11 +4118,15 @@ "DNXC": "DinoX", "DNY": "Dynasty Coin", "DNZ": "Denizlispor Fan Token", + "DOAI": "DOJO Protocol", "DOBBY": "Dobby", "DOBEN": "dark boden", "DOBO": "DogeBonk", + "DOBUY": "Just do buy", "DOC": "Dochain", + "DOCAINEURON": "Doc.ai Neuron", "DOCC": "Doc Coin", + "DOCCOM": "DOC.COM", "DOCK": "Dock.io", "DOCSWAP": "Dex on Crypto", "DOCT": "DocTailor", @@ -3550,6 +4134,7 @@ "DOD100": "Day of Defeat Mini 100x", "DODI": "DoubleDice", "DODO": "DODO", + "DODOT": "Dodo the Black Swan", "DOE": "Dogs Of Elon", "DOFI": "Doge Floki Coin", "DOG": " DOG•GO•TO•THE•MOON", @@ -3558,15 +4143,19 @@ "DOGAI": "Dogai", "DOGALD": "dogald trump", "DOGB": "DogeBoy", + "DOGBA": "DOGBA INU", "DOGBOSS": "Dog Boss", "DOGC": "Dogeclub", + "DOGCOIN": "Dogcoin", "DOGDEFI": "DogDeFiCoin", "DOGE": "Dogecoin", "DOGE1SAT": "DOGE-1SATELLITE", + "DOGE2": "Dogecoin 2.0", "DOGE20": "Doge 2.0", "DOGEB": "DogeBonk", "DOGEBNB": "DogeBNB", "DOGEC": "DogeCash", + "DOGECAST": "Dogecast", "DOGECEO": "Doge CEO", "DOGECO": "Dogecolony", "DOGECOIN": "Buff Doge Coin", @@ -3575,17 +4164,24 @@ "DOGED": "DogeCoinDark", "DOGEDAO": "DogeDao", "DOGEDASH": "Doge Dash", + "DOGEFA": "DOGEFATHER", + "DOGEFATHER": "Dogefather", "DOGEFORK": "DogeFork", "DOGEGF": "DogeGF", "DOGEGROK": "Doge Grok", "DOGEGROKAI": "Doge Of Grok AI", + "DOGEI": "Dogei", + "DOGEIN": "Doge In Glasses", "DOGEKING": "DogeKing", "DOGELEGION": "DOGE LEGION", + "DOGEM": "Doge Matrix", "DOGEMETA": "Dogemetaverse", "DOGEMOB": "DOGEMOB", "DOGENFT": "The Doge NFT", "DOGEP": "Doge Protocol", "DOGEPAY": "Doge Payment", + "DOGEPEPE": "Doge Pepe", + "DOGEPR": "DOGE PRESIDENT", "DOGER": "Robotic Doge", "DOGERA": "Dogera", "DOGES": "Dogeswap", @@ -3595,46 +4191,62 @@ "DOGEWHALE": "Dogewhale", "DOGEX": "DogeHouse Capital", "DOGEY": "Dogey", + "DOGEYIELD": "DogeYield", "DOGEZILLA": "DogeZilla", + "DOGEZILLAV1": "DogeZilla v1", + "DOGG": "Doggo", "DOGGS": "Doggensnout", "DOGGY": "Doggy", + "DOGGYCOIN": "DOGGY", "DOGH": "a dog in a hoodie", "DOGI": "dogi", "DOGIN": "Doginhood", "DOGINC": "dog in cats world", "DOGINME": "doginme", "DOGIRA": "Dogira", + "DOGK": "Dagknight Dog", + "DOGLAI": "Doglaikacoin", "DOGMI": "DOGMI", "DOGO": "DogemonGo", "DOGPAD": "DogPad Finance", "DOGRMY": "DogeArmy", - "DOGS": "Dogcoin", + "DOGS": "Dogs", "DOGSROCK": "Dogs Rock", + "DOGSS": "DOGS SOL", + "DOGSSO": "DOGS Solana", "DOGSWAG": "DogSwaghat", + "DOGW": "DOGWIFHOOD", "DOGWIFHAT": "dogwifhat", "DOGWIFSEAL": "dogwifseal", - "DOGY": "DogeYield", + "DOGY": "Dogy", "DOGZ": "Dogz", "DOJO": "ProjectDojo", "DOKI": "Doki Doki Finance", "DOKY": "Donkey King", "DOLA": "Dola USD Stablecoin", + "DOLAN": "Dolan Duck", + "DOLLAR": "Dollar", "DOLLARCOIN": "DollarCoin", "DOLLUR": "Dollur Go Brrr", + "DOLPHY": "Dolphy", "DOLZ": "DOLZ", "DOM": "Ancient Kingdom", "DOME": "Everdome", "DOMI": "Domi", + "DOMO": "Dony Montana", "DON": "Donnie Finance", "DONA": "DONASWAP", + "DONAL": "Donald Pump", "DONALD": "DONALD TRUMP", "DONALDT": "Donald The Trump", "DONATION": "DonationCoin", "DONG": "DongCoin", "DONGO": "Dongo AI", + "DONJR": "Don Jr.", "DONK": "Don-key", "DONKE": "DONKE", "DONS": "The Dons", + "DONT": "Donald Trump (dont.cash)", "DONU": "Donu", "DONUT": "Donut", "DONUTS": "The Simpsons", @@ -3643,7 +4255,9 @@ "DOOH": "Bidooh", "DOOMER": "Doomer", "DOOR": "DOOR", + "DOPA": "DopaMeme", "DOPE": "Dopamine App", + "DOPEC": "DOPE Coin", "DOPECOIN": "DopeCoin", "DOPU": "DOPU The Dog with A Purpose", "DOR": "Dorado", @@ -3651,17 +4265,20 @@ "DORAV1": "Dora Factory v1", "DORK": "DORK", "DORKL": "DORK LORD", + "DORKVADER": "DorkVader", "DORKY": "Dork Lord", "DOS": "DOS Network", "DOSE": "DOSE", "DOSHIB": "DogeShiba", "DOT": "Polkadot", "DOTC": "Dotcoin", + "DOTF": "Dot Finance", "DOTR": "Cydotori", "DOUG": "Doug The Duck", "DOUGH": "PieDAO v2 (DOUGH)", "DOV": "DOVU", "DOVI": "Dovi(Ordinals)", + "DOVIS": "Dovish Finance", "DOVU": "DOVU", "DOWS": "Shadows", "DP": "DigitalPrice", @@ -3676,6 +4293,7 @@ "DPLN": "DePlan", "DPLTR": "Palantir Tokenized Stock Defichain", "DPN": "DIPNET", + "DPOOL": "Deadpool Inu", "DPP": "Digital Assets Power Play", "DPR": "Deeper Network", "DPS": "DEEPSPACE", @@ -3694,8 +4312,10 @@ "DRAGONGROK": "DragonGROK", "DRAGONKING": "DragonKing", "DRAGONMA": "Dragon Mainland Shards", + "DRAGONX": "DragonX", "DRAGU": "DRAGU", "DRAGY": "Dragy", + "DRAKO": "Drako", "DRAM": "DRAM", "DRAW": "Drawshop Kingdom Reverse", "DRB": "Digimon Rabbit", @@ -3720,16 +4340,20 @@ "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", + "DRV": "Derive", "DRXNE": "Droxne", "DRZ": "Droidz", "DS": "DeStorage", + "DSAI": "DeSend Ai", "DSB": "DarkShibe", "DSC": "Dash Cash", "DSCP": "Dreamscape", @@ -3747,6 +4371,8 @@ "DSR": "Desire", "DSRUN": "Derby Stars", "DST": "Double Swap Token", + "DSTAG": "deadstag", + "DSTNY": "Destinys Chicken", "DSTR": "Dynamic Supply Tracker", "DSUN": "DsunDAO", "DSYNC": "Destra Network", @@ -3756,6 +4382,7 @@ "DTB": "Databits", "DTC": "Data Transaction", "DTCT": "DetectorToken", + "DTEC": "Dtec", "DTEM": "Dystem", "DTEP": "DECOIN", "DTG": "Defi Tiger", @@ -3768,6 +4395,7 @@ "DTORO": "DexToro", "DTR": "Dotori", "DTRC": "Datarius", + "DTRUMP": "Degen Trump", "DTSLA": "Tesla Tokenized Stock Defichain", "DTX": "DataBroker DAO", "DUA": "Brillion", @@ -3775,15 +4403,19 @@ "DUB": "DubCoin", "DUBAICAT": "Dubai Cat", "DUBBZ": "Dubbz", + "DUBER": "Düber", "DUBI": "Decentralized Universal Basic Income", "DUBX": "DUBXCOIN", "DUC": "DucatusCoin", "DUCATO": "Ducato Protocol Token", "DUCK": "Unit Protocol New", + "DUCKAI": "Duck AI", + "DUCKC": "DuckCoin", "DUCKD": "DuckDuckCoin", "DUCKER": "Ducker", "DUCKIES": "Yellow Duckies", "DUCKO": "Duck Off Coin", + "DUCKY": "Ducky Duck", "DUCX": "DucatusX", "DUDE": "DuDe", "DUEL": "GameGPT", @@ -3802,6 +4434,7 @@ "DUO": "ParallelCoin", "DUOT": "DUO Network", "DUREV": "Povel Durev", + "DUROV": "FREE DUROV", "DURTH": "iShares MSCI World ETF Tokenized Stock Defichain", "DUSD": "Decentralized USD", "DUSK": "Dusk Network", @@ -3816,6 +4449,7 @@ "DVI": "Dvision Network", "DVINCI": "Davinci Jeremie", "DVK": "Devikins", + "DVL": "Develad", "DVNQ": "Vanguard Real Estate Tokenized Stock Defichain ()", "DVOO": "Vanguard S&P 500 ETF Tokenized Stock Defichain", "DVP": "Decentralized Vulnerability Platform", @@ -3825,9 +4459,12 @@ "DVT": "DeVault", "DVTC": "DivotyCoin", "DVX": "Derivex", + "DWARFY": "Dwarfy", "DWARS": "Dynasty Wars", "DWC": "Digital Wallet", "DWEB": "DecentraWeb", + "DWOG": "DWOG THE DOG", + "DWOLF": "Dark Wolf", "DWT": "DiveWallet Token", "DWZ": "DeFi Wizard", "DX": "DxChain Token", @@ -3846,16 +4483,21 @@ "DXR": "DEXTER", "DXS": "Dx Spot", "DXT": "Dexit Finance", + "DXY": "US Degen Index 6900", + "DYAD": "Dyad Stable", "DYC": "Dycoin", "DYDX": "dYdX", + "DYDXV1": "dYdX v1", "DYM": "Dymension", "DYN": "Dynamic", "DYNA": "Dynamix", + "DYNAM": "Dynamic Crypto Index", "DYNAMICTRADING": "Dynamic Trading Rights", "DYNCOIN": "Dyncoin", "DYNEX": "Dynex GPU", "DYNMT": "Dynamite", "DYNO": "DYNO", + "DYNOC": "DynoChain", "DYOR": "DYOR Token", "DYP": "Dypius", "DYPV1": "Dypius v1", @@ -3869,37 +4511,46 @@ "DZI": "DeFinition", "DZOO": "Degen Zoo", "Dow": "DowCoin", + "E1INCH": "1inch (Energi Bridge)", "E21": "E21 Coin", "E2C": "Electronic Energy Coin", "E8": "Energy8", "EA": "EagleCoin", "EAC": "Education Assessment Cult", + "EADX": "EADX Token", "EAG": "Emerging Assets Group", "EAGLE": "Eagle Token", "EAGS": "EagsCoin", - "EAI": "Edain", + "EAI": "Eagle AI", + "EARLY": "Early Risers", + "EARLYF": "EarlyFans", "EARN": "EarnGuild", "EARTH": "Earth Token", "EARTHCOIN": "EarthCoin", "EASYF": "EasyFeedback", "EAT": "EDGE Activity Token", + "EATH": "Eartherium", "EAURIC": "Eauric", "EAVE": "EaveAI", "EB3": "EB3coin", "EBA": "Elpis Battle", "EBASE": "EURBASE", "EBC": "EBCoin", + "EBCH": "Bitcoin Cash (Energiswap)", "EBEN": "Green Ben", "EBET": "EthBet", "EBIT": "eBit", + "EBITCOIN": "eBitcoin", "EBK": "Ebakus", "EBOX": "Ethbox Token", "EBS": "EbolaShare", "EBSC": "EarlyBSC", + "EBSHIB": "Wrapped Energy Shiba Inu (Energi Bridge)", "EBSO": "eBlockStock", "EBST": "eBoost", "EBT": "ELON BUYS TWITTER", - "EBTC": "eBitcoin", + "EBTC": "Ether.fi Staked BTC", + "EBULL": "ETHEREUM IS GOOD", "EBYT": "EarthByt", "EBZ": "Ebitz", "EC": "Echoin", @@ -3911,7 +4562,7 @@ "ECET": "Evercraft Ecotechnologies", "ECG": "EcoSmart", "ECH": "EthereCash", - "ECHO": "ECHO BOT", + "ECHOBOT": "ECHO BOT", "ECHOD": "EchoDEX", "ECHT": "e-Chat", "ECI": "Euro Cup Inu", @@ -3934,6 +4585,8 @@ "ECT": "SuperEdge", "ECTE": "EurocoinToken", "ECU": "ECOSC", + "ECXX": "ECXX", + "EDAIN": "Edain", "EDAT": "EnviDa", "EDC": "EDC Blockchain", "EDDA": "EDDASwap", @@ -3952,6 +4605,7 @@ "EDLC": "Edelcoin", "EDN": "EdenChain", "EDNS": "EDNS Token", + "EDOG": "EDOG", "EDOGE": "ElonDoge", "EDR": "Endor Protocol Token", "EDRC": "EDRCoin", @@ -3973,6 +4627,7 @@ "EFIL": "Ethereum Wrapped Filecoin", "EFK": "ReFork", "EFL": "E-Gulden", + "EFR": "End Federal Reserve", "EFT": "ETH Fan Token Ecosystem", "EFX": "The Effect.ai", "EG": "EG Token", @@ -3990,8 +4645,10 @@ "EGGP": "Eggplant Finance", "EGGY": "EGGY", "EGI": "eGame", + "EGL": "The Eagle Of Truth", "EGLD": "eGold", - "EGO": "EGOcoin", + "EGO": "Paysenger EGO", + "EGOCOIN": "EGOcoin", "EGOD": "EgodCoin", "EGOLD": "EGOLD", "EGON": "EgonCoin", @@ -4000,19 +4657,27 @@ "EGS": "EdgeSwap", "EGT": "Egretia", "EGX": "Enegra", + "EGY": "Egypt Cat", "EHASH": "EHash", "EHIVE": "eHive", "EHRT": "Eight Hours Token", "EIFI": "EIFI FINANCE", + "EIGEN": "EigenLayer", "EIM": "Expert Infra", + "EIQT": "IQ Prediction", "EJAC": "EJA Coin", "EJS": "Enjinstarter", "EKG": "Ekon Gold", "EKN": "Elektron", "EKO": "EchoLink", + "EKOC": "Coke", "EKS": "Elumia Krystal Shards", + "EKSM": "Synthetic Kusama (Energiswap)", "EKT": "EDUCare", "EKTA": "Ekta", + "EKTAV1": "Ekta v1", + "EKTAV2": "Ekta v2", + "EKUBO": "Ekubo Protocol", "EL": "ELYSIA", "ELA": "Elastos", "ELAC": "ELA Coin", @@ -4042,11 +4707,14 @@ "ELITE": "EthereumLite", "ELIX": "Elixir", "ELIXIR": "Starchi", + "ELIZ": "Eliza (ai16zeliza)", + "ELIZA": "Eliza (elizawakesup.ai)", "ELK": "Elk Finance", "ELLA": "Ellaism", "ELLI": "ElliotCoin", "ELM": "Elements Play", "ELMO": "ELMOERC", + "ELMOCOIN": "Elmo", "ELMON": "Elemon", "ELMT": "Element", "ELO": "ElonPark", @@ -4054,15 +4722,22 @@ "ELON2024": "ELON 2024(BSC)", "ELON404": "Elon404", "ELONCAT": "ELON CAT COIN", + "ELOND": "ELON DOGE", "ELONDOGE": "ELON DOGE", "ELONDRAGON": "ELON DRAGON", + "ELONGATE": "ElonGate", "ELONGD": "Elongate Deluxe", "ELONGT": "Elon GOAT", + "ELONIA": "Elonia Trump", "ELONIUM": "Elonium", "ELONM": "ELON MEME", + "ELONMA": "ELON MARS", "ELONMARS": "ELON MARS", + "ELONMU": "Elon Musk", "ELONONE": "AstroElon", "ELONPEPE": "Elon Pepe Robot", + "ELONRWA": "ElonRWA", + "ELONTRUMP": "ELON TRUMP", "ELP": "Ellerium", "ELS": "Ethlas", "ELT": "Element Black", @@ -4073,13 +4748,14 @@ "ELUSKMON": "Elusk Mon", "ELV": "Elvantis", "ELVN": "11Minutes", - "ELX": "Energy Ledger", "ELY": "Elysian", + "ELYS": "Elys Network", "ELYSIUM": "Elysium", "EM": "Eminer", "EMAID": "MaidSafeCoin", "EMANATE": "EMANATE", "EMAR": "EmaratCoin", + "EMATIC": "Wrapped Polygon (Energi Bridge)", "EMAX": "EthereumMax", "EMB": "Overline Emblem", "EMBER": "EmberCoin", @@ -4120,15 +4796,19 @@ "ENDCEX": "Endpoint CeX Fan Token", "ENDLESS": "Endless Board Game", "ENE": "EneCoin", + "ENEAR": "Near (Energiswap)", "ENEDEX": "Enedex", + "ENERGYLEDGER": "Energy Ledger", "ENERGYX": "Safe Energy", "ENG": "Enigma", "ENGT": "Engagement Token", "ENIGMA": "ENIGMA", "ENJ": "Enjin Coin", + "ENJV1": "Enjin Coin v1", "ENK": "Enkidu", "ENNO": "ENNO Cash", "ENO": "Enotoken", + "ENOKIFIN": "Enoki Finance", "ENQ": "Enecuum", "ENQAI": "enqAI", "ENRG": "EnergyCoin", @@ -4161,6 +4841,7 @@ "EOX": "EXTRA ORDINARY", "EPAN": "Paypolitan Token", "EPANUS": "Epanus", + "EPENDLE": "Equilibria Pendle", "EPEP": "Epep", "EPETS": "Etherpets", "EPIC": "Epic Cash", @@ -4182,7 +4863,8 @@ "EQT": "EquiTrader", "EQU": "Equation", "EQUAD": "Quadrant Protocol", - "EQUAL": "EqualCoin", + "EQUAL": "Equalizer DEX", + "EQUALCOIN": "EqualCoin", "EQUI": "EQUI", "EQUIL": "Equilibrium", "EQUITOKEN": "EQUI Token", @@ -4230,11 +4912,13 @@ "ESN": "Ethersocial", "ESNC": "Galaxy Arena Metaverse", "ESP": "Espers", + "ESPL": "ESPL ARENA", "ESPR": "Espresso Bot", "ESRC": "ESR Coin", "ESS": "Essentia", "EST": "ESports Chain", "ESTATE": "AgentMile", + "ESTEE": "Kaga No Fuuka Go Sapporo Kagasou", "ESW": "eSwitch®", "ESZ": "EtherSportz", "ET": "ENDO", @@ -4257,11 +4941,17 @@ "ETH2X-FLI": "ETH 2x Flexible Leverage Index", "ETHA": "ETHA Lend", "ETHAX": "ETHAX", - "ETHB": "EtherBTC", + "ETHB": "ETHEREUM ON BASE", "ETHBN": "EtherBone", "ETHD": "Ethereum Dark", + "ETHDOG": "Ethereumdog", "ETHER": "Etherparty", + "ETHERBTC": "EtherBTC", "ETHERDELTA": "EtherDelta", + "ETHERE": "Ethereal", + "ETHEREM": "Etherempires", + "ETHEREUMMEME": "Solana Ethereum Meme", + "ETHEREUMP": "ETHEREUMPLUS", "ETHERINC": "EtherInc", "ETHERKING": "Ether Kingdoms Token", "ETHERNITY": "Ethernity Chain", @@ -4295,6 +4985,7 @@ "ETM": "En-Tan-Mo", "ETN": "Electroneum", "ETNA": "ETNA Network", + "ETNY": "Ethernity", "ETP": "Metaverse", "ETPOS": "EtherPOS", "ETR": "Electric Token", @@ -4310,23 +5001,35 @@ "EUC": "Eurocoin", "EUCOIN": "EU Coin", "EUCX": "EUCX", + "EUD": "Eurodom", "EUL": "Euler", "EULER": "Euler Tools", "EUM": "Elitium", "EUNO": "EUNO", "EURC": "Euro Coin", + "EURCV": "EUR CoinVertible", + "EURCVV1": "EUR CoinVertible v1", "EURE": "Monerium EUR emoney", + "EURI": "Eurite", "EURN": "NOKU EUR", + "EUROCUP": "EURO CUP INU", "EUROE": "EUROe Stablecoin", + "EUROP": "Europa Coin", + "EURQ": "Quantoz EURQ", + "EURR": "StablR Euro", "EURS": "STASIS EURS", "EURT": "Euro Tether", + "EURTV1": "Euro Tether v1", "EURU": "Upper Euro", "EURX": "eToro Euro", "EUSD": "Egoras Dollar", + "EUTBL": "Spiko EU T-Bills Money Market Fund", "EV": "EVAI", "EVA": "Evadore", + "EVAI": "EVA Intelligence", "EVAN": "Evanesco Network", "EVAULT": "EthereumVault", + "EVAV1": "Evadore v1", "EVC": "Eventchain", "EVCC": "Eco Value Coin", "EVCOIN": "EverestCoin", @@ -4342,9 +5045,11 @@ "EVERGREEN": "EverGreenCoin", "EVERLIFE": "EverLife.AI", "EVERMOON": "EverMoon", + "EVERV": "EverValue Coin", "EVERY": "Everyworld", "EVIL": "EvilCoin", "EVILPEPE": "Evil Pepe", + "EVIN": "Evin Token", "EVMOS": "Evmos", "EVN": "Evn Token", "EVO": "EvoVerses", @@ -4388,6 +5093,7 @@ "EXO": "Exosis", "EXOS": "Exobots", "EXP": "Expanse", + "EXPAND": "Gems", "EXPO": "Exponential Capital", "EXRD": "Radix", "EXRN": "EXRNchain", @@ -4402,12 +5108,16 @@ "EYETOKEN": "EYE Token", "EZ": "EasyFi V2", "EZC": "EZCoin", + "EZEIGEN": "Restaked EIGEN", "EZETH": "Renzo Restaked ETH", "EZI": "Ezillion", "EZM": "EZMarket", + "EZPZ": "Eazy Peazy", + "EZSOL": "Renzo Restaked SOL", "EZT": "EZToken", "EZY": "EzyStayz", "ElvishMagic": "EMAGIC", + "F": "SynFutures", "F16": "F16Coin", "F1C": "Future1coin", "F2C": "Ftribe Fighters", @@ -4423,21 +5133,26 @@ "FACETER": "Faceter", "FACT": "Orcfax", "FACTOM": "Factom", + "FACTORY": "ChainFactory", "FACTR": "Defactor", "FADO": "FADO Go", "FAG": "PoorFag", - "FAI": "Fairum", + "FAH": "Falcons", + "FAI": "Freysa AI", "FAIR": "FairCoin", "FAIRC": "Faireum Token", "FAIRG": "FairGame", + "FAIRUM": "Fairum", "FAKE": "FAKE COIN", "FAKEAI": "DeepFakeAI", "FAKT": "Medifakt", "FALCONS": "Falcon Swaps", "FALX": "FalconX", + "FAM": "Family", "FAME": "Fame MMA", "FAMEC": "FameCoin", "FAMILY": "The Bitcoin Family", + "FAML": "FAML", "FAMOUSF": "Famous Fox Federation", "FAN": "Fanadise", "FAN360": "Fan360", @@ -4447,19 +5162,26 @@ "FANV": "FanVerse", "FANX": "FrontFanz", "FANZ": "FanChain", + "FAPTAX": "Faptax", "FAR": "Farmland Protocol", "FARA": "FaraLand", "FARCA": "Farcana", "FARM": "Harvest Finance", "FARMA": "FarmaTrust", "FARMC": "FARM Coin", + "FARME": "Farmers Only", "FARMING": "Farming Bad", "FARMS": "Farmsent", + "FARTCOIN": "Fartcoin", + "FAS": "fast construction coin", "FAST": "Fastswap", + "FASTAI": "Fast And Ai", "FASTMOON": "FastMoon", + "FASTUSD": "Sei fastUSD", "FASTV1": "Fastswap v1", "FAT": "Fatcoin", "FATCAKE": "FatCake", + "FATH": "Father Of Meme: Origin", "FATHER": "DogeFather", "FATHOM": "Fathom", "FATMICHI": "FATMICHI", @@ -4474,6 +5196,8 @@ "FBG": "Fort Block Games", "FBN": "Five balance", "FBNB": "ForeverBNB", + "FBOMB": "fBomb", + "FBOMBV1": "fBomb v1", "FBURN": "Forever Burn", "FBX": "Finance Blocks", "FC": "Facecoin", @@ -4493,6 +5217,7 @@ "FCS": "CryptoFocus", "FCT": "FirmaChain", "FCTC": "FaucetCoin", + "FCTR": "FactorDAO", "FDC": "Fidance", "FDLS": "FIDELIS", "FDM": "Fandom", @@ -4503,7 +5228,9 @@ "FDX": "fidentiaX", "FDZ": "Friendz", "FEAR": "Fear", + "FEARNOT": "FEAR NOT", "FECES": "FECES", + "FEE": "FEED EVERY GORILLA", "FEED": "Feeder Finance", "FEENIXV2": "ProjectFeenixv2", "FEES": "UNIFEES", @@ -4522,8 +5249,9 @@ "FERT": "Chikn Fert", "FERZAN": "Ferzan", "FESS": "Fesschain", - "FET": "Fetch.AI", + "FET": "Artificial Superintelligence Alliance", "FETCH": "Fetch", + "FETS": "FE TECH", "FEVR": "RealFevr", "FEX": "FEX Token", "FEY": "Feyorra", @@ -4534,6 +5262,7 @@ "FFCT": "FortFC", "FFM": "Files.fm Library", "FFN": "Fairy Forest", + "FFTP": "FIGHT FOR THE PEOPLE", "FFUEL": "getFIFO", "FFYI": "Fiscus FYI", "FGC": "FantasyGold", @@ -4558,7 +5287,11 @@ "FIF": "flokiwifhat", "FIFTY": "FIFTYONEFIFTY", "FIG": "FlowCom", + "FIGH": "FIGHT FIGHT FIGHT", "FIGHT": "Crypto Fight Club", + "FIGHTMAGA": "FIGHT MAGA", + "FIGHTPEPE": "FIGHT PEPE", + "FIGHTRUMP": "FIGHT TRUMP", "FIH": "Fidelity House", "FIII": "Fiii", "FIL": "FileCoin", @@ -4570,9 +5303,11 @@ "FIN": "DeFiner", "FINA": "Defina Finance", "FINALE": "Ben's Finale", + "FINAN": "FINANCIAL TRANSACTION SYSTEM", "FINB": "Finblox", "FINC": "Finceptor", "FIND": "FindCoin", + "FINDER": "Finder AI", "FINE": "Refinable", "FINGER": "Finger Blast", "FINK": "FINK", @@ -4582,15 +5317,20 @@ "FINT": "FintraDao", "FINU": "Formula Inu", "FIO": "FIO Protocol", + "FIONA": "Fiona", + "FIONABSC": "Fiona", "FIRA": "Defira", "FIRE": "Matr1x Fire", "FIRECOIN": "FireCoin", + "FIREW": "Fire Wolf", "FIRO": "Firo", "FIRSTHARE": "FirstHare", "FIRU": "Firulais Finance", "FIS": "Stafi", "FISH": "Polycat Finance", - "FIST": "FistBump", + "FISHK": "Fishkoin", + "FIST": "Fistbump", + "FISTBUMP": "FistBump", "FIT": "Financial Investment Token", "FITC": "Fitcoin", "FITFI": "Step App", @@ -4610,17 +5350,23 @@ "FKSK": "Fatih Karagümrük SK", "FKX": "FortKnoxster", "FL": "Freeliquid", + "FLA": "Flappy", "FLAG": "Flag Network", + "FLAKY": "FLAKY", "FLAME": "FireStarter", "FLAP": "Flappy Coin", "FLAPPY": "Flappy", + "FLAREF": "FlareFoxInu", "FLAS": "Flas Exchange Token", "FLASH": "Flashstake", "FLASHC": "FLASH coin", + "FLAVIA": "Flavia Is Online", + "FLAY": "Flayer", "FLC": "FlowChainCoin", "FLD": "FluidAI", "FLDC": "Folding Coin", "FLDT": "FairyLand", + "FLEA": "FLEABONE", "FLEPE": "Floki VS Pepe", "FLETA": "FLETA", "FLEX": "FLEX Coin", @@ -4654,10 +5400,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", @@ -4665,6 +5415,7 @@ "FLOVI": "Flovi inu", "FLOVM": "FLOV MARKET", "FLOW": "Flow", + "FLOWER": "FlowerAI", "FLOWP": "Flow Protocol", "FLOYX": "Floyx", "FLP": "Gameflip", @@ -4673,7 +5424,10 @@ "FLRS": "Flourish Coin", "FLS": "Flits", "FLT": "Fluence", + "FLUFFI": "Fluffington", + "FLUFFY": "FLUFFY", "FLUFFYS": "Fluffys", + "FLUI": "Fluidity", "FLUID": "Fluid", "FLURRY": "Flurry Finance", "FLUT": "Flute", @@ -4709,9 +5463,11 @@ "FNLX": "Fignal X", "FNO": "Fonero", "FNP": "FlipNpik", + "FNS": "FAUNUS", "FNSA": "FINSCHIA", "FNTB": "FinTab", "FNX": "FinNexus", + "FNXAI": "Finanx AI", "FNZ": "Fanzee", "FO": "FIBOS", "FOA": "Fragments of arker", @@ -4720,14 +5476,18 @@ "FOCV": "FOCV", "FODL": "Fodl Finance", "FOF": "Future Of Fintech", - "FOFAR": "Fofar", + "FOFAR": "FoFar", + "FOFARBASE": "FOFAR", + "FOFARIO": "Fofar", "FOFO": "FOFO Token", "FOGE": "Fat Doge", "FOIN": "Foin", "FOL": "Folder Protocol", "FOLD": "Manifold Finance", "FOLO": "Alpha Impact", - "FOMO": "Aavegotchi FOMO", + "FOMO": "FOMO BULL CLUB", + "FOMON": "FOMO Network", + "FOMOSOL": "FOMOSolana", "FON": "INOFI", "FONE": "Fone", "FONS": "FONSmartChain", @@ -4743,6 +5503,7 @@ "FORCE": "TriForce Tokens", "FORCEC": "Force Coin", "FORE": "FORE Protocol", + "FOREST": "FOREST", "FORESTPLUS": "The Forbidden Forest", "FOREVER": "Forever Coin", "FOREVERFOMO": "ForeverFOMO", @@ -4771,9 +5532,11 @@ "FOXE": "Foxe", "FOXF": "Fox Finance", "FOXGIRL": "FoxGirl", + "FOXI": "Foxify", "FOXSY": "Foxsy AI", "FOXT": "Fox Trading", "FOXV2": "FoxFinanceV2", + "FOXXY": "FOXXY", "FOXY": "Foxy", "FP": "Fren Pet", "FPAD": "FantomPAD", @@ -4786,6 +5549,7 @@ "FR": "Freedom Reserve", "FRA": "Findora", "FRAC": "FractalCoin", + "FRATT": "Frogg and Ratt", "FRAX": "Frax", "FRAZ": "FrazCoin", "FRBK": " FreeBnk", @@ -4793,15 +5557,20 @@ "FRD": "Farad", "FRDX": "Frodo Tech", "FRE": "FreeCoin", + "FREAK": "Freakoff", "FREC": "Freyrchain", "FRECNX": "FreldoCoinX", - "FRED": "FREDEnergy", + "FRED": "First Convicted Raccon Fred", "FREDDY": "FREDDY", + "FREDE": "FREDEnergy", "FREE": "FREE coin", "FREED": "FreedomCoin", "FREEDO": "Freedom", + "FREEDOM": "Freedom Protocol Token", "FREELA": "DecentralFree", + "FREEPAVEL": "Free Pavel", "FREEROSS": "FreeRossDAO", + "FREET": "FreeTrump", "FREL": "Freela", "FREN": "FREN", "FRENCH": "French On Base", @@ -4828,8 +5597,12 @@ "FROGGY": "Froggy", "FROGLIC": "Pink Hood Froglicker", "FROGO": "Frogo", + "FROK": "Frok.ai", "FRONK": "Fronk", "FRONT": "Frontier", + "FROP": "Popo The Frog", + "FROSTY": "Frosty the Polar Bear", + "FROX": "Frox", "FROYO": "Froyo Games", "FROZE": "FrozenAi", "FRP": "Fame Reward Plus", @@ -4852,6 +5625,7 @@ "FSHN": "Fashion Coin", "FSM": "Floki SafeMoon", "FSN": "Fusion", + "FSNV1": "Fusion v1", "FSO": "FSociety", "FST": "Futureswap", "FSTC": "FastCoin", @@ -4859,6 +5633,7 @@ "FT": "Fracton Protocol", "FTB": "Fit&Beat", "FTC": "FeatherCoin", + "FTD": "42DAO", "FTG": "fantomGO", "FTH": "Fintyhub Token", "FTHM": "Fathom Protocol", @@ -4868,6 +5643,7 @@ "FTMO": "Fantom Oasis", "FTN": "Fasttoken", "FTO": "FuturoCoin", + "FTON": "Fanton", "FTP": "FuturePoints", "FTR": "FactR", "FTRB": "Faith Tribe", @@ -4875,18 +5651,23 @@ "FTS": "Fortress Lending", "FTT": "FTX Token", "FTTOKEN": "Finance Token", + "FTTT": "FTT Token", "FTUM": "Fatum", "FTVT": "FashionTV Token", "FTW": "FutureWorks", "FTX": "FintruX", "FTXT": "FUTURAX", + "FU": "FU Money", "FUBAO": "FUBAO", "FUCK": "Fuck Token", "FUD": "FUD.finance", - "FUEL": "Jetfuel Finance", + "FUEGO": "FUEGO", + "FUEL": "Fuel Network", + "FUELX": "Fuel", "FUFU": "Fufu Token", + "FUG": "FUG", "FUJIN": "Fujinto", - "FUKU": "Furukuru", + "FUKU": "FUKU-KUN", "FUL": "Fulcrom Finance", "FUMO": "Alien Milady Fumo", "FUN": "FUN Token", @@ -4906,6 +5687,7 @@ "FUR": "Furio", "FURIE": "Matt Furie", "FURU": "Furucombo", + "FURUKURU": "Furukuru", "FURY": "Engines of Fury", "FURYX": "Metafury", "FUS": "Fus", @@ -4914,7 +5696,9 @@ "FUSE": "Fuse Network Token", "FUSION": "FusionBot", "FUSO": "Fusotao", + "FUT": "FuturesAI", "FUTC": "FutCoin", + "FUTUR": "Future Token", "FUTURE": "FutureCoin", "FUTUREAI": "Future AI", "FUZE": "FUZE Token", @@ -4925,6 +5709,7 @@ "FWB": "Friends With Benefits Pro", "FWC": "Qatar 2022", "FWH": "FigureWifHat", + "FWOG": "Fwog", "FWT": "Freeway Token", "FWW": "Farmers World Wood", "FX": "Function X", @@ -4934,17 +5719,20 @@ "FXDX": "FXDX", "FXF": "Finxflo", "FXI": "FX1 Sports", + "FXN": "FXN", "FXP": "FXPay", "FXS": "Frax Share", "FXST": "FX Stock Token", "FXT": "FuzeX", + "FXUSD": "f(x) Protocol fxUSD", "FXY": "Floxypay", "FYD": "FYDcoin", + "FYDO": "Fly Doge", "FYN": "Affyn", "FYP": "FlypMe", "FYZ": "Fyooz", "FYZNFT": "Fyooz NFT", - "G": "GRN Grid", + "G": "Gravity", "G1X": "GoldFinX", "G3": "GAM3S.GG", "G50": "G50", @@ -4975,22 +5763,32 @@ "GALO": "Clube Atlético Mineiro Fan Token", "GALT": "Galtcoin", "GAM": "Gambit coin", + "GAMA": "GAMA Coin", "GAMB": "GAMB", + "GAMBI": "Gambi Fi", "GAMBIT": "Gambit", "GAMBL": "Metagamble", "GAME": "GameBuild", "GAMEBUD": "GAMEBUD", "GAMEC": "Game", + "GAMECO": "Game.com", "GAMECRED": "GameCredits", + "GAMEF": "Game Fantasy Token", "GAMEFI": "GameFi Token", "GAMEFORK": "GameFork", "GAMEIN": "Game Infinity", "GAMER": "GameStation", "GAMERFI": "GamerFI", "GAMES": "Gamestarter", + "GAMEST": "GameStop Coin", "GAMESTARS": "Game Stars", + "GAMESTO": "GameStop", + "GAMESTOP": "GameStop", + "GAMESTUMP": "GAMESTUMP", + "GAMET": "GAME Token", "GAMEX": "GameX", "GAMI": "GAMI World", + "GAMIN": "Gaming Stars", "GAMINGDOGE": "GAMINGDOGE", "GAMINGSHIBA": "GamingShiba", "GAMMA": "Gamma Strategies", @@ -5020,6 +5818,7 @@ "GATSBY": "Gatsby Inu", "GAU": "Gamer Arena", "GAUSS": "Gauss0x", + "GAY": "GAY", "GAYPEPE": "Gay Pepe", "GAYSLER": "Gaysler", "GAZE": "GazeTV", @@ -5052,6 +5851,7 @@ "GCAT": "Giga Cat on Base", "GCB": "Global Commercial Business", "GCC": "GuccioneCoin", + "GCCO": "GCCOIN", "GCME": "GoCryptoMe", "GCN": "gCn Coin", "GCOIN": "Galaxy Fight Club", @@ -5066,6 +5866,7 @@ "GDE": "Golden Eagle", "GDL": "GodlyCoin", "GDO": "GroupDao", + "GDOG": "GDOG", "GDOGE": "Golden Doge", "GDR": "Guider.Travel", "GDRT": "Good Driver Reward Token", @@ -5078,7 +5879,10 @@ "GEAR": "Gearbox Protocol", "GEC": "Geco.one", "GECKO": "Gecko Coin", + "GECKY": "Gecky", + "GEEK": "De:Lithe Last Memories", "GEEQ": "Geeq", + "GEF": "GemFlow", "GEGE": "Gege", "GEIST": "Geist Finance", "GEKKO": "Gekko HQ", @@ -5086,15 +5890,17 @@ "GELO": "Grok Elo", "GEM": "Gemie", "GEMA": "Gemera", - "GEME": "GAMESTUMP", + "GEME": "GEME", "GEMG": "GemGuardian", + "GEMI": "Gemini Inu", "GEMINI": "Gemini Ai", "GEMINIT": "Gemini", - "GEMS": "Gems", + "GEMS": "Gems VIP", "GEMSTON": "GEMSTON", "GEMZ": "Gemz Social", "GEN": "DAOstack", "GENE": "Genopets", + "GENECTO": "Gene", "GENESIS": "Genesis Worlds", "GENI": "Genius", "GENIE": "The Genie", @@ -5105,6 +5911,7 @@ "GENS": "Genshiro", "GENSLR": "Good Gensler", "GENSTAKE": "Genstake", + "GENT": "Gentleman", "GENX": "Genx Token", "GENXNET": "Genesis Network", "GENZ": "GENZ Token", @@ -5124,6 +5931,7 @@ "GET": "Guaranteed Entrance Token", "GETA": "Getaverse", "GETH": "Guarded Ether", + "GETLIT": "LIT", "GETX": "Guaranteed Ethurance Token Extra", "GEX": "Gexan", "GEZY": "EZZY GAME GEZY", @@ -5142,6 +5950,7 @@ "GFY": "go fu*k yourself", "GG": "Reboot", "GGAVAX": "GoGoPool AVAX", + "GGB": "GGEBI", "GGC": "Global Game Coin", "GGCM": "Gold Guaranteed Coin", "GGG": "Good Games Guild", @@ -5149,7 +5958,6 @@ "GGM": "Monster Galaxy", "GGMT": "GG MetaGame", "GGOLD": "GramGold Coin", - "GGP": "GGPro", "GGPT": "Generative GPT", "GGR": "GGRocket", "GGS": "Gilgam", @@ -5158,10 +5966,15 @@ "GGTKN": "GG Token", "GHA": "Ghast", "GHC": "Galaxy Heroes Coin", - "GHCOLD": "Galaxy Heroes Coin", + "GHCV1": "Galaxy Heroes Coin v1", + "GHCV2": "Galaxy Heroes Coin v2", + "GHCV3": "Galaxy Heroes Coin v3", "GHD": "Giftedhands", + "GHDV1": "Giftedhands v1", + "GHE": "GHETTO PEPE", "GHNY": "Grizzly Honey", "GHO": "GHO", + "GHOAD": "GhoadCoin", "GHOST": "GhostbyMcAfee", "GHOSTCOIN": "GhostCoin", "GHOSTM": "GhostMarket", @@ -5179,30 +5992,44 @@ "GIF": "Gift Token", "GIFT": "GiftNet", "GIG": "GigaCoin", - "GIGA": "GigaSwap", + "GIGA": "Gigachad", + "GIGACAT": "GIGACAT", "GIGACHAD": "GigaChad", + "GIGASWAP": "GigaSwap", + "GIGGLE": "Giggle Academy", + "GIGS": "Climate101", "GIGX": "GigXCoin", "GIKO": "Giko Cat", + "GILOEX": "Gilo", "GIM": "Gimli", "GIMMER": "Gimmer", + "GIMMERV1": "Gimmer v1", "GIN": "GINcoin", "GINGER": "GINGER", + "GINNAN": "Ginnan The Cat", "GINOA": "Ginoa", + "GINU": "Green Shiba Inu", "GINUX": "Green Shiba Inu", "GINZA": "GINZA NETWORK", "GIO": "Graviocoin", "GIOT": "Giotto Coin", "GIOVE": "GIOVE", "GIR": "Girlfriend", + "GIRLS": "Girls Club", + "GITH": "GitHub's Mascot Octocat", "GIV": "Giveth", "GIVE": "GiveCoin", "GIZ": "GIZMOcoin", + "GIZMO": "GIZMO•IMAGINARY• KITTEN (Runes)", "GJC": "Global Jobcoin", + "GKAPPA": "Golden Kappa", "GKF": "Galatic Kitty Fighters", "GKI": "GKi", "GL": "Lemmings", "GLA": "Gladius", + "GLASS": "Glass Chain", "GLAX": "BLOCK GALAXY NETWORK", + "GLAZE": "Glaze", "GLB": "Golden Ball", "GLC": "GoldCoin", "GLCH": "Glitch", @@ -5218,19 +6045,23 @@ "GLFT": "Global Fan Token", "GLI": "GLI TOKEN", "GLIDE": "Glide Finance", + "GLIESE": "GlieseCoin", "GLINK": "Gemlink", "GLINT": "BeamSwap", "GLM": "Golem Network Token", "GLMR": "Moonbeam", + "GLMV1": "Golem Network Token v1", "GLN": "Galion Token", + "GLO": "Global Innovation Platform", "GLOBAL": "GlobalCoin", "GLOBE": "Global", + "GLORP": "Glorp", "GLORY": "SEKAI GLORY", "GLOS": "GLOS", "GLOWSHA": "GlowShares", "GLQ": "GraphLinq Protocol", "GLR": "Glory Finance", - "GLS": "Glass Chain", + "GLS": "Glacier", "GLT": "GlobalToken", "GLX": "GalaxyCoin", "GLYPH": "GlyphCoin", @@ -5247,6 +6078,7 @@ "GME": "GameStop", "GMEE": "GAMEE", "GMEPEPE": "GAMESTOP PEPE", + "GMETHERFRENS": "GM", "GMETRUMP": "GME TRUMP", "GMEX": "Game Coin", "GMFAM": "GMFAM", @@ -5254,11 +6086,13 @@ "GMI": "GamiFi", "GML": "GameLeagueCoin", "GMM": "Gamium", - "GMMT": "Green Mining Movement Token", + "GMMT": "Giant Mammoth", "GMNG": "Global Gaming", "GMNT": "Gmining", "GMPD": "GamesPad", "GMR": "GAMER", + "GMRV1": "GAMER v1", + "GMRV2": "GAMER v2", "GMRX": "Gaimin", "GMS": "Gemstra", "GMT": "STEPN", @@ -5276,6 +6110,8 @@ "GNNX": "Gennix", "GNO": "Gnosis", "GNOME": "GNOME", + "GNOMY": "Gnomy", + "GNON": "Numogram", "GNR": "Gainer", "GNS": "Gains Network", "GNT": "GreenTrust", @@ -5288,11 +6124,17 @@ "GOAL": "GOAL token", "GOALBON": "Goal Bonanza", "GOALS": "UnitedFans", - "GOAT": "Goat", + "GOAT": "Goatseus Maximus", + "GOATAI": "GOAT AI", + "GOATCOIN": "Goat", + "GOATSE": "GOATSE", "GOB": "Goons of Balatroon", "GOC": "GoCrypto", + "GOCHU": "Gochujangcoin", "GOD": "Bitcoin God", + "GODCAT": "GodcatExplodingKittens", "GODE": "Gode Chain", + "GODEX": "GUARD OF DECENT", "GODL": "GODL", "GODS": "Gods Unchained", "GODZ": "Cryptogodz", @@ -5301,6 +6143,7 @@ "GOFF": "Gift Off Token", "GOFX": "GooseFX", "GOG": "Guild of Guardians", + "GOGLZ": "GOGGLES", "GOGO": "GOGO Finance", "GOGU": "GOGU Coin", "GOIN": "GOinfluencer", @@ -5310,43 +6153,63 @@ "GOLC": "GOLCOIN", "GOLD": "CyberDragon Gold", "GOLDCAT": "GOLD CAT", + "GOLDCOINETH": "Gold", + "GOLDE": "GOLDEN AGE", "GOLDEN": "Golden Inu", "GOLDENG": "Golden Goose", "GOLDF": "Gold Fever", "GOLDMIN": "GoldMiner", + "GOLDN": "GoLondon", "GOLDPIECES": "GoldPieces", + "GOLDS": "Gold Standard", "GOLDX": "eToro Gold", "GOLDY": "DeFi Land Gold", "GOLF": "GolfCoin", + "GOLFI": "Golf is Boring", "GOLOS": "Golos", "GOLOSBLOCKCHAIN": "Golos Blockchain", "GOM": "Gomics", "GOM2": "GoMoney2", "GOMA": "GOMA Finance", + "GOMAV1": "GOMA Finance v1", + "GOMAV2": "GOMA Finance v2", "GOMD": "GOMDori", "GOME": "Game of Memes", "GOMT": "GoMeat", + "GOMV1": "GoMoney", + "GONDOLA": "Gondola", "GONE": "GONE", + "GONG": "GONG", "GOO": "Gooeys", "GOOCH": "Gooch", "GOOD": "Goodomy", + "GOODM": "Good Morning!", + "GOODMO": "Good Morning", + "GOOG": "Googly Cat", "GOOGLE": "Deepmind Ai", "GOOGLY": "Googly Cat", + "GOOMPY": "Goompy by Matt Furie", "GOON": "Goonies", + "GOP": "The Republican Party", "GOPX": "GOPX Token", "GORA": "Gora", "GOREC": "GoRecruit", "GORGONZOLA": "Heroes 3 Foundation", + "GORGONZOLAV1": "Heroes 3 Foundation v1", "GORILLA": "Gorilla", "GORILLAD": "Gorilla Diamond", "GORILLAINU": "Gorilla Inu", + "GORPLE": "GorplesCoin", "GOS": "Gosama", "GOSS": "GOSSIP-Coin", "GOST": "SoulCoin", "GOT": "ParkinGo", "GOTEM": "gotEM", "GOTG": "Got Guaranteed", + "GOTTI": "Gotti Token", "GOTX": "GothicCoin", + "GOU": "Gou", + "GOUT": "GOUT", "GOV": "SubDAO", "GOVI": "Govi", "GOVT": "The Government Network", @@ -5379,8 +6242,11 @@ "GRAI": "Gravita Protocol", "GRAIL": "Camelot Token", "GRAIN": "Granary", + "GRAM": "Gram", "GRANDCOIN": "GrandCoin", + "GRANDMA": "Grandma", "GRAPE": "GrapeCoin", + "GRASS": "Grass", "GRAV": "Graviton", "GRAVITAS": "Gravitas", "GRAVITYF": "Gravity Finance", @@ -5390,10 +6256,15 @@ "GRC": "GreenCoin.AI", "GRE": "GreenCoin", "GREARN": "GrEarn", + "GREE": "Green God Candle", "GREEN": "GreenX", + "GREENH": "Greenheart CBD", + "GREENMMT": "Green Mining Movement Token", + "GREENPOWER": "GreenPower", "GREENT": "Greentoken", "GREG": "greg", "GRELF": "GRELF", + "GREMLY": "Gremly", "GREXIT": "GrexitCoin", "GREY": "Grey Token", "GRFT": "Graft Blockchain", @@ -5401,6 +6272,8 @@ "GRID": "Grid+", "GRIDCOIN": "GridCoin", "GRIDZ": "GridZone.io", + "GRIFFAIN": "GRIFFAIN", + "GRIFT": "ORBIT", "GRIM": "GRIMREAPER", "GRIMACE": "Grimace", "GRIMEVO": "Grim EVO", @@ -5410,9 +6283,11 @@ "GRLC": "Garlicoin", "GRM": "GridMaster", "GRMD": "GreenMed", - "GRN": "GreenPower", + "GRN": "GRN Grid", "GRND": "SuperWalk", + "GRNV1": "GRN Grid v1", "GRO": "Gro DAO Token", + "GROGGO": "Groggo By Matt Furie", "GROK": "Grok", "GROK2": "GROK 2.0", "GROKBANK": "Grok Bank", @@ -5480,6 +6355,7 @@ "GTAVI": "GTAVI", "GTBOT": "Gaming-T-Bot", "GTC": "Gitcoin", + "GTCC": "GTC COIN", "GTCOIN": "Game Tree", "GTE": "GreenTek", "GTF": "GLOBALTRUSTFUND TOKEN", @@ -5494,7 +6370,9 @@ "GTSE": "Global Tourism Sharing Ecology", "GTTM": "Going To The Moon", "GTX": "GALLACTIC", + "GUA": "GUA", "GUAC": "Guacamole", + "GUAN": "Guanciale by Virtuals", "GUAP": "Guapcoin", "GUAR": "Guarium", "GUARD": "Guardian", @@ -5503,6 +6381,7 @@ "GUCCI": "GUCCI", "GUE": "GuerillaCoin", "GUESS": "Peerguess", + "GUGU": "gugu", "GUI": "Gui Inu", "GUILD": "BlockchainSpace", "GUISE": "GUISE", @@ -5515,14 +6394,18 @@ "GUNS": "GeoFunders", "GUP": "Guppy", "GURL": "Gently Used Girl", + "GURU": "Guru Network", + "GUS": "Gus", "GUSD": "Gemini Dollar", "GUSDT": "Global Utility Smart Digital Token", "GUT": "Genesis Universe", "GUUFY": "Guufy", + "GUZUTA": "CLYDE", "GVC": "Global Virtual Coin", "GVE": "Globalvillage Ecosystem", "GVL": "Greever", "GVR": "Grove [OLD]", + "GVRV1": "Grove v1", "GVT": "Genesis Vision", "GW": "Gyrowin", "GWD": "GreenWorld", @@ -5556,8 +6439,13 @@ "HABIBI": "The Habibiz", "HAC": "Hackspace Capital", "HACD": "Hacash Diamond", + "HACH": "Hachiko", "HACHI": "Hachi", + "HACHIK": "Hachiko", "HACHIKO": "Hachiko Inu Token", + "HACHIONB": "Hachi On Base", + "HACK": "HACK", + "HAGGIS": "New Born Haggis Pygmy Hippo", "HAHA": "Hasaki", "HAI": "Hacken Token", "HAIR": " HairDAO", @@ -5575,9 +6463,12 @@ "HAMI": "Hamachi Finance", "HAMMY": "SAD HAMSTER", "HAMS": "HamsterCoin", + "HAMSTER": "Space Hamster", + "HAMSTERB": "HamsterBase", "HAMSTR": "Hamster Coin", "HAN": "HanChain", "HANA": "Hanacoin", + "HANAETHCTO": "HANA", "HAND": "ShowHand", "HANDY": "Handy", "HANK": "Hank", @@ -5585,13 +6476,20 @@ "HAO": "HistoryDAO", "HAP": "Happy Train", "HAPI": "HAPI", + "HAPPY": "Happy Cat", + "HAR": "Harambe Coin", "HARAM": "HARAM", "HARAMBE": "Harambe on Solana", "HARD": "Kava Lend", "HARE": "Hare Token", "HAREPLUS": "Hare Plus", "HAROLD": "Harold", + "HARPER": "Harper", + "HARR": "HARRIS DOGS", + "HARRIS": "KAMALA HARRIS", + "HARRISV": "Harris V Trump", "HARRYP": "HarryPotterObamaSonic10Inu (ERC20)", + "HARRYPO": "HarryPotterObamaPacMan8Inu", "HART": "HARA", "HASBIK": "Hasbulla", "HASH": "Provenance Blockchain", @@ -5605,17 +6503,22 @@ "HAUS": "DAOhaus", "HAVOC": "Havoc", "HAVY": "Havy", + "HAW": "Hawk Tuah", "HAWK": "Hawksight", + "HAWKCITY": "Hawk", + "HAWKPTAH": "Hawk Ptah", "HAWKTUAH": "Hawk Tuah", - "HAY": "Destablecoin HAY", + "HAXS": "Axie Infinity Shards (Harmony One Bridge)", "HAYYA": "GO HAYYA", "HAZ": "Hazza", "HAZE": "HazeCoin", "HB": "HeartBout", "HBAR": "Hedera Hashgraph", + "HBARBARIAN": "HBARbarian", "HBARX": "HBARX", "HBB": "Hubble", "HBC": "HBTC Captain Token", + "HBCH": "Huobi BCH", "HBD": "Hive Dollar", "HBDC": "Happy Birthday Coin", "HBE": "healthbank", @@ -5624,9 +6527,11 @@ "HBO": "Hash Bridge Oracle", "HBOT": "Hummingbot", "HBRS": "HubrisOne", + "HBSV": "Huobi BSV", "HBT": "Habitat", "HBTC": "Huobi BTC", "HBX": "Hyperbridge", + "HBZ": "HBZ Coin", "HC": "HyperCash", "HCC": "HappyCreatorCoin", "HCT": "HurricaneSwap Token", @@ -5641,7 +6546,9 @@ "HDV": "Hydraverse", "HDX": "HydraDX", "HE": "Heroes & Empires", + "HEA": "Healium", "HEAL": "Etheal", + "HEALT": "Healthmedi", "HEART": "Humans", "HEARTBOUT": "HeartBout Pay", "HEARTR": "Heart Rate", @@ -5657,25 +6564,40 @@ "HEGE": "Hege", "HEGG": "Hummingbird Egg", "HEGIC": "Hegic", + "HEHE": "hehe", + "HEL": "Hello Puppy", + "HELA": "Science Cult Mascot", + "HELI": "Helion", + "HELINK": "Chainlink (Huobi Exchange)", "HELIOS": "Mission Helios", "HELL": "HELL COIN", "HELLO": "HELLO", "HELMET": "Helmet Insure", "HELPS": "HelpSeed", + "HEM": "Hemera", "HEMAN": "HE-MAN", "HEMULE": "Hemule", + "HENG": "HengCoin", + "HENLO": "Henlo", + "HENLOV1": "Henlo v1", "HEP": "Health Potion", "HER": "Hero Node", "HERA": "Hero Arena", "HERB": "HerbCoin", "HERBE": "Herbee", + "HERME": "Hermes DAO", "HERMES": "Hermes Protocol", + "HERMIONE": "Hermione", + "HERMY": "Hermy The Stallion", "HERO": "Metahero", + "HEROC": "HEROcoin", "HEROES": "Dehero Community Token", "HEROESC": "HeroesChained", + "HEROI": "Heroic Saga Shiba", "HET": "HavEther", "HETA": "HetaChain", "HETH": "Huobi Ethereum", + "HEWE": "Health & Wealth", "HEX": "HEX", "HEXC": "HexCoin", "HEZ": "Hermez Network Token", @@ -5683,6 +6605,7 @@ "HFI": "Holder Finance", "HFIL": "Huobi Fil", "HFT": "Hashflow", + "HFUN": "Hold.fun", "HGEN": "HGEN DAO", "HGET": "Hedget", "HGHG": "HUGHUG Coin", @@ -5718,6 +6641,7 @@ "HIH": "HiHealth", "HIKARI": "Hikari Protocol", "HILL": "President Clinton", + "HILO": "HILO", "HIM": "Human Intelligence Machine", "HIMAYC": "hiMAYC", "HIME": "Phantom of the Kill", @@ -5733,12 +6657,14 @@ "HIP": "HIPPOP", "HIPENGUINS": "hiPENGUINS", "HIPP": "El Hippo", + "HIPPO": "sudeng", "HIPUNKS": "hiPUNKS", "HIRE": "HireMatch", "HIRENGA": "hiRENGA", "HISAND33": "hiSAND33", "HISEALS": "hiSEALS", "HISQUIGGLE": "hiSQUIGGLE", + "HISS": "Snake of Solana", "HIT": "HitChain", "HITBTC": "HitBTC Token", "HITOP": "Hitop", @@ -5757,13 +6683,17 @@ "HLD": "HyperLending", "HLDY": "HOLIDAY", "HLG": "Holograph", + "HLINK": "Chainlink (Harmony One Bridge)", "HLM": "Helium", "HLN": "Holonus", + "HLO": "Halo", + "HLOV1": "Halo v1", "HLP": "Purpose Coin", "HLPR": "HELPER COIN", "HLPT": "HLP Token", "HLS": "Halis", "HLT": "HyperLoot", + "HLTC": "Huobi LTC", "HLX": "Helex", "HMC": "Hi Mutual Society", "HMD": "Homelend", @@ -5777,12 +6707,15 @@ "HMR": "Homeros", "HMRN": "Homerun", "HMST": "Hamster Marketplace Token", + "HMSTR": "Hamster Kombat", "HMT": "HUMAN Token", "HMTT": "Hype Meme Token", + "HMU": "hit meeee upp", "HMX": "HMX", "HNB": "HashNet BitEco", "HNC": "Hellenic Coin", "HNCN": "Huncoin", + "HND": "Hundred Finance", "HNS": "Handshake", "HNST": "Honest", "HNT": "Helium", @@ -5812,21 +6745,29 @@ "HOM": "Homeety", "HOME": "OtterHome", "HOMER": "Homer Simpson", + "HOMERB": "Homer BSC", + "HOMERO": "Homer Of Meme", "HOMI": "HOMIHELP", "HOMIECOIN": "Homie Wars", "HOMMIES": "HOMMIES", + "HOMS": "Heroes of memes", "HON": "SoulSociety", "HONEY": "Hivemapper", "HONEYCOIN": "Honey", "HONG": "HongKongDAO", "HONK": "Honk", + "HONKLER": "Honkler", "HONOR": "HonorLand", "HOOF": "Metaderby Hoof", "HOOK": "Hooked Protocol", "HOOP": "Chibi Dinos", + "HOOPS": "Hoops", + "HOOT": "HOOT", "HOP": "Hop Protocol", "HOPPY": "Hoppy", + "HOPPYTOKEN": "Hoppy", "HOPR": "HOPR", + "HOR": "HorizonDEX", "HORD": "Hord", "HORSE": "Ethorse", "HORUS": "HorusPay", @@ -5865,18 +6806,21 @@ "HRDG": "HRDGCOIN", "HRM": "Honorarium", "HRO": "HEROIC.com", + "HRSE": "The Winners Circle", "HRT": "HIRO", "HRTS": "YellowHeart Protocol", "HRX": "HorusLayer", "HSAI": "HealthSci.AI", "HSC": "HashCoin", "HSF": "Hillstone Finance", + "HSK": "HashKey Platform Token", "HSN": "Hyper Speed Network", "HSP": "Horse Power", "HSS": "Hashshare", "HST": "Decision Token", "HSUI": "Suicune", "HSUITE": "HbarSuite", + "HSUSDC": "Holdstation USDC", "HT": "Huobi Token", "HTA": "Historia", "HTB": "Hotbit", @@ -5885,6 +6829,8 @@ "HTDF": "Orient Walt", "HTE": "Hepton", "HTER": "Biogen", + "HTERM": "Hiero Terminal", + "HTK": "Hard To Kill", "HTM": "Hatom", "HTML": "HTML Coin", "HTMOON": "HTMOON", @@ -5897,21 +6843,25 @@ "HUAHUA": "Chihuahua Chain", "HUB": "Hub Token", "HUBII": "Hubii Network", + "HUBSOL": "SolanaHub staked SOL", "HUC": "HunterCoin", "HUDI": "Hudi", - "HUGE": "BigCoin", + "HUE": "Huebel Bolt", + "HUGE": "HugeWin", "HUGO": "Hugo Inu", "HUH": "HUH Token", "HUHCAT": "huhcat", "HUM": "Humanscape", "HUMAI": "Humanoid AI", "HUMP": "Hump", + "HUMV1": "Humanscape v1", "HUND": "HUND MEME COIN", "HUNDRED": "HUNDRED", "HUNNY": "Pancake Hunny", "HUNT": "HUNT", "HUR": "Hurify", "HUS": "HUSSY", + "HUSBY": "HUSBY", "HUSD": "HUSD", "HUSH": "Hush", "HUSKY": "Husky", @@ -5940,6 +6890,7 @@ "HYBRID": "Hybrid Bank Cash", "HYC": "HYCON", "HYCO": "HYPERCOMIC", + "HYD": "HYDRA", "HYDRA": "Hydra", "HYDRO": "Hydro", "HYDROMINER": "Hydrominer", @@ -5948,13 +6899,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", @@ -5965,6 +6918,7 @@ "HZN": "Horizon Protocol", "HZT": "HazMatCoin", "I0C": "I0coin", + "I3D": "i3D Protocol", "I7": "ImpulseVen", "I9C": "i9 Coin", "IAG": "IAGON", @@ -5989,8 +6943,11 @@ "ICAP": "ICAP Token", "ICASH": "ICASH", "ICB": "IceBergCoin", + "ICBX": "ICB Network", "ICC": "Insta Cash Coin", "ICE": "Ice Open Network", + "ICEC": "IceCream", + "ICECR": "Ice Cream Sandwich", "ICELAND": "ICE LAND", "ICETH": "Interest Compounding ETH Index", "ICG": "Invest Club Global", @@ -5998,6 +6955,7 @@ "ICHI": "ICHI", "ICHN": "i-chain", "ICHX": "IceChain", + "ICL": "ICLighthouse DAO", "ICLICK": "Iclick inu", "ICN": "Iconomi", "ICNX": "Icon.X World", @@ -6033,6 +6991,7 @@ "IDO": "Idexo", "IDOL": "IDOLINU", "IDORU": "Vip2Fan", + "IDRISS": "IDRISS", "IDRT": "Rupiah Token", "IDRX": "IDRX", "IDT": "InvestDigital", @@ -6046,9 +7005,11 @@ "IEC": "IvugeoEvolutionCoin", "IETH": "iEthereum", "IF": "Impossible Finance", + "IFBTC": "Ignition FBTC", "IFC": "Infinite Coin", "IFIT": "CALO INDOOR", "IFLT": "InflationCoin", + "IFOR": "iFortune", "IFT": "InvestFeed", "IFUM": "Infleum", "IFUND": "Unifund", @@ -6058,6 +7019,7 @@ "IGG": "IG Gold", "IGI": "Igi", "IGNIS": "Ignis", + "IGT": "Infinitar", "IGTT": "IGT", "IGU": "IguVerse", "IGUP": "IguVerse", @@ -6067,7 +7029,9 @@ "IIC": "Intelligent Investment Chain", "IJC": "IjasCoin", "IJZ": "iinjaz", + "IJZV1": "iinjaz v1", "IKI": "ikipay", + "IKIGAI": "Ikigai", "ILA": "Infinite Launch", "ILC": "ILCOIN", "ILCT": "ILCoin Token", @@ -6085,6 +7049,7 @@ "IMI": "Influencer", "IML": "IMMLA", "IMMO": "ImmortalDAO Finance", + "IMMORTAL": "IMMORTAL.COM", "IMO": "IMO", "IMP": "CoinIMP", "IMPACT": "Impact", @@ -6103,11 +7068,14 @@ "IMVR": "ImmVRse", "IMX": "Immutable X", "IN": "InCoin", + "INA": "pepeinatux", "INARI": "Inari", "INB": "Insight Chain", "INC": "Incrementum", "INCAKE": "InfinityCAKE", + "INCEPT": "Incept", "INCNT": "Incent", + "INCO": "InfinitiCoin", "INCORGNITO": "Incorgnito", "INCP": "InceptionCoin", "IND": "Indorse", @@ -6116,6 +7084,7 @@ "INDEX": "Index Cooperative", "INDI": "IndiGG", "INDIA": "Indiacoin", + "INDIAN": "Indian Call Center", "INDICOIN": "IndiCoin", "INDU": "INDU4.0", "INDY": "Indigo Protocol", @@ -6124,10 +7093,11 @@ "INERY": "Inery", "INES": "Inescoin", "INET": "Insure Network", + "INETH": "Inception Restaked ETH", "INEX": "Inex Project", "INF": "Infinium", "INFC": "Influence Chain", - "INFI": "Insured Finance", + "INFI": "Infinite", "INFINI": "Infinity Economics", "INFLR": "Inflr", "INFO": "Infomatix", @@ -6145,18 +7115,24 @@ "INOVAI": "INOVAI", "INP": "Ionic Pocket Token", "INRT": "INRToken", + "INRX": "INRx", + "INRXV1": "INRx v1", "INS": "Insolar (Old Chain)", "INSANE": "InsaneCoin", "INSANITY": "Insanity Coin", "INSC": "INSC (Ordinals)", + "INSE": "INSECT", "INSN": "Insane Coin", "INSP": "Inspect", + "INSPI": "InspireAI", "INSR": "Insurabler", "INST": "Instadapp", "INSTAMINE": "Instamine Nuggets", "INSTAR": "Insights Network", "INSUR": "InsurAce", + "INSURANCE": "insurance", "INSURC": "InsurChain Coin", + "INSUREDFIN": "Insured Finance", "INT": "Internet Node token", "INTD": "INTDESTCOIN", "INTE": "InteractWith", @@ -6179,6 +7155,7 @@ "INVESTEL": "Investelly token", "INVI": "INVI Token", "INVIC": "Invictus", + "INVITE": "INVITE Token", "INVOX": "Invox Finance", "INVX": "Investx", "INX": "Insight Protocol", @@ -6215,6 +7192,7 @@ "IPOR": "IPOR", "IPSX": "IP Exchange", "IPT": "Crypt-ON", + "IPU": "iPulse", "IPUX": "IPUX", "IPV": "IPVERSE", "IPVOLD": "IPVERSE (Klaytn)", @@ -6232,12 +7210,14 @@ "IRIS": "IRIS Network", "IRISTOKEN": "Iris Ecosystem", "IRL": "IrishCoin", + "IRO": "Iro-Chan", "IRON": "Iron Fish", "IRONBSC": "Iron BSC", "IRT": "Infinity Rocket", "IRYDE": "iRYDE COIN", "ISA": "Islander", "ISDT": "ISTARDUST", + "ISEC": "IntelliSecure Systems", "ISG": "ISG", "ISH": "Interstellar Holdings", "ISHI": "Ishi", @@ -6268,6 +7248,7 @@ "ITL": "Italian Lira", "ITLR": "MiTellor", "ITM": "intimate.io", + "ITO": "Ito-chan", "ITOC": "ITOChain", "ITR": "INTRO", "ITSB": "ITSBLOC", @@ -6282,6 +7263,7 @@ "IVAR": "Ivar Coin", "IVC": "Investy Coin", "IVEX": "IVEX Financial", + "IVFUN": "Invest Zone", "IVI": "IVIRSE", "IVIP": "iVipCoin", "IVN": "IVN Security", @@ -6293,6 +7275,7 @@ "IWT": "IwToken", "IX": "X-Block", "IXC": "IXcoin", + "IXIR": "IXIR", "IXP": "IMPACTXPRIME", "IXS": "IX Swap", "IXT": "iXledger", @@ -6313,17 +7296,24 @@ "JACY": "JACY", "JADE": "Jade Protocol", "JADEC": "Jade Currency", + "JAGO": "Jagotrack", "JAIHO": "Jaiho Crypto", "JAKE": "Jake The Dog", "JAM": "Tune.Fm", "JAN": "Storm Warfare", "JANE": "JaneCoin", + "JANET": "Janet", + "JANI": "JANI", + "JANRO": "Janro The Rat", "JAR": "Jarvis+", "JARED": "Jared From Subway", "JARY": "JeromeAndGary", "JASMY": "JasmyCoin", + "JASON": "Jason Derulo", + "JAV": "Javsphere", "JAWS": "AutoShark", "JAY": "Jaypeggers", + "JBO": "JBOX", "JBOT": "JACKBOT", "JBS": "JumBucks Coin", "JBX": "Juicebox", @@ -6334,13 +7324,16 @@ "JCO": "JennyCo", "JCR": "JustCarbon Removal", "JCT": "Japan Content Token", + "JDAI": "Dai (TON Bridge)", "JDC": "JustDatingSite", + "JDO": "JINDO", "JED": "JEDSTAR", "JEDALS": "Yoda Coin Swap", "JEET": "Jeet", "JEETOLAX": "Jeetolax", "JEFE": "JEFE TOKEN", "JEFF": "Jeff in Space", + "JEFFRY": "jeffry", "JEJUDOGE": "Jejudoge", "JELLI": "JELLI", "JELLY": "Jelly eSports", @@ -6351,25 +7344,32 @@ "JERRY": "Jerry Inu", "JERRYINU": "JERRYINU", "JES": "Jesus", + "JEST": "Jester", "JESUS": "Jesus Coin", "JET": "Jet Protocol", + "JETCAT": "Jetcat", "JETCOIN": "Jetcoin", + "JETFUEL": "Jetfuel Finance", "JETTON": "JetTon Game", "JEUR": "Jarvis Synthetic Euro", "JEW": "Shekel", "JEWEL": "DeFi Kingdoms", + "JEWELRY": "Jewelry Token", "JEX": "JEX Token", "JF": "Jswap.Finance", "JFI": "JackPool.finance", "JFIN": "JFIN Coin", "JFIVE": "Jonny Five", + "JFP": "JUSTICE FOR PEANUT", "JGLP": "Jones GLP", "JGN": "Juggernaut", + "JHH": "Jen-Hsun Huang", "JIAOZI": "Jiaozi", "JIB": "Jibbit", "JIF": "JiffyCoin", "JIG": "Jigen", "JIM": "Jim", + "JIN": "JinPeng", "JIND": "JINDO INU", "JINDOGE": "Jindoge", "JIO": "JIO Token", @@ -6382,12 +7382,14 @@ "JKC": "JunkCoin", "JKL": "Jackal Protocol", "JLP": "Jupiter Perps LP", + "JLY": "Jellyverse", "JM": "JustMoney", "JMC": "Junson Ming Chan Coin", "JMPT": "JumpToken", "JMT": "JMTIME", "JMZ": "Jimizz", "JNB": "Jinbi Token", + "JNFTC": "Jumbo Blockchain", "JNGL": "Jungle Labz", "JNS": "Janus", "JNT": "Jibrel Network Token", @@ -6397,7 +7399,9 @@ "JOBS": "JobsCoin", "JOC": "Speed Star JOC", "JOE": "JOE", + "JOEB": "Joe Biden", "JOEBIDEN2024 ": "JOEBIDEN2024", + "JOECOIN": "Joe Coin", "JOEY": "Joey Inu", "JOGECO": "Jogecodog", "JOHM": "Johm lemmon", @@ -6407,13 +7411,20 @@ "JOK": "JokInTheBox", "JOKER": "JOKER", "JOKERCOIN": "JokerCoin", + "JOKERERC": "Joker", "JOL": "Jolofcoin", "JOLT": "Joltify", + "JOMA": "Joma", "JONES": "Jones DAO", + "JONESUSDC": "Jones USDC", "JOOPS": "JOOPS", + "JOPER": "Joker Pepe", + "JOSE": "Jose", "JOTCHUA": "Perro Dinero", + "JOULE": "Joule", "JOWNES": "Alux Jownes", "JOY": "Joystream", + "JOYCAT": "JoyCat Coin", "JOYS": "JOYS", "JOYT": "JoyToken", "JOYTOKEN": "Joycoin", @@ -6427,6 +7438,7 @@ "JRIT": "JERITEX", "JRT": "Jarvis Reward Token", "JSE": "JSEcoin", + "JSET": "Jsetcoin", "JSM": "Joseon Mun", "JSOL": "JPool Staked SOL", "JST": "JUST", @@ -6439,44 +7451,61 @@ "JUDGE": "JudgeCoin", "JUGNI": "JUGNI", "JUI": "Juiice", + "JUIC": "Juice", "JUICE": "Juice Finance", + "JUICEB": "Juice", "JUL": "Joule", "JULB": "JustLiquidity Binance", "JULD": "JulSwap", + "JUM": "Jumoney", "JUMBO": "Jumbo Exchange", "JUMP": "Jumpcoin", "JUN": "Jun \"M\" Coin", "JUNGLE": "JUNGLEDOGE", + "JUNGLEKING": "JungleKing TigerCoin", + "JUNIOR": "Junior", "JUNKIE": "Junkie Cats", "JUNO": "JUNO", "JUP": "Jupiter", "JUPI": "Jupiter", "JUPSOL": "Jupiter Staked SOL", "JUR": "Jur", + "JUS": "Just The Tip", "JUSD": "JUSD Stable Token", - "JUSDC": "Jones USDC", + "JUSDC": "USD Coin (TON Bridge)", "JUSDT": "TON Bridged USDT", + "JUST": "just a cat", + "JUSTI": "Justin MEME", "JUSTICE": "AssangeDAO", "JUV": "Juventus Fan Token", "JVL": "Javelin", + "JVT": "JVault", "JVY": "Javvy", "JW": "Jasan Wellness", + "JWBTC": "Wrapped Bitcoin (TON Bridge)", "JWIF": "Jerrywifhat", "JWL": "Jewels", "JYC": "Joe-Yo Coin", "K21": "K21", "K2G": "Kasko2go", + "KAAI": "KanzzAI", "KAAS": "KAASY.AI", + "KAB": "KABOSU", "KABOSU": "Kabosu Family", "KABY": "Kaby Arena", "KAC": "KACO Finance", "KACY": "Kassandra", + "KADYROV": "Ramzan", "KAF": "KAIF Platform", "KAG": "Silver", + "KAGE": "Kage Network", "KAI": "KardiaChain", + "KAIA": "Kaia", "KAID": "KAIDEX", "KAIJU": "KAIJUNO8", + "KAIK": "KAI KEN", "KAIKEN": "Kaiken Shiba", + "KAILY": "Kailith", "KAINET": "KAINET", "KAKA": "KAKA NFT World", "KAKAXA": "KAKAXA", @@ -6491,13 +7520,23 @@ "KALM": "KALM", "KALYCOIN": "KalyCoin", "KAM": "BitKAM", + "KAMA": "Kamala Horris", + "KAMAL": "Kamala Harris", + "KAMALA": "Kamala Harris", + "KAMALAHARRIS": "KAMALA HARRIS", + "KAMLA": "KAMALAMA (kamalama.org)", "KAMPAY": "KamPay", "KAN": "Bitkan", + "KANG": "Kangamoon", "KANG3N": "Kang3n", "KANGAL": "Kangal", + "KANGO": "KANGO", "KAP": "KAP Games", + "KAPPY": "Kappy", "KAPU": "Kapu", "KAR": "Karura", + "KARA": "KarateCat", + "KARAT": "KARAT Galaxy", "KARATE": "Karate Combat", "KAREN": "KarenCoin", "KARMA": "Karma", @@ -6505,6 +7544,10 @@ "KARRAT": "KARRAT", "KART": "Dragon Kart", "KAS": "Kaspa", + "KASBOT": "KASBOT THE GUARDIAN OF 𐤊ASPA", + "KASHIN": "KASHIN", + "KASPER": "Kasper the ghost of Kaspa", + "KASPY": "KASPY", "KASSIAHOME": "Kassia Home", "KASTA": "Kasta", "KAT": "Kambria", @@ -6533,6 +7576,7 @@ "KCAL": "Phantasma Energy", "KCASH": "Kcash", "KCAT": "KING OF CATS", + "KCATS": "KASPA CATS", "KCCM": "KCC MemePad", "KCCPAD": "KCCPad", "KCH": "Keep Calm and Hodl", @@ -6556,27 +7600,37 @@ "KEK": "KekCoin", "KEKE": "KEK", "KEKEC": "THE BALKAN DWARF", + "KEKIUS": "Kekius Maximus", "KEL": "KelVPN", "KELP": "KELP", "KELPE": "Kelp Earned Points", "KELPIE": "Kelpie Inu", + "KEM": "Kem Jeng Un", "KEMA": "Kemacoin", - "KEN": "Kencoin", + "KEN": "Ken", + "KENCOIN": "Kencoin", "KENDU": "Kendu Inu", "KENKA": "KENKA METAVERSE", "KENNEL": "Kennel Locker", + "KENOBI": "Obi PNut Kenobi", "KENSHI": "Kenshi", "KEP": "Kepler", "KEPT": "KeptChain", "KERMIT": "KermitTheCoin", + "KERN": "Kernel", + "KET": "KET", "KETAMINE": "Ketamine", "KETAN": "Ketan", + "KEVIN": "Kevin (kevinonbase.xyz)", + "KEVINTOKENME": "KEVIN (kevintoken.me)", + "KEVINTOKENNET": "Kevin", "KEX": "Kira Network", "KEXCOIN": "KexCoin", "KEY": "SelfKey", "KEYC": "KeyCoin", "KEYCAT": "Keyboard Cat", "KEYFI": "KeyFi", + "KEYS": "KEYS", "KEYT": "REBIT", "KFC": "Chicken", "KFI": "Klever Finance", @@ -6588,14 +7642,18 @@ "KGO": "Kiwigo", "KGT": "Kaby Gaming Token", "KHAI": "khai", + "KHEOWZOO": "khaokheowzoo", "KHM": "Kohima", "KI": "Genopets KI", "KIAN": "Porta", "KIBA": "Kiba Inu", + "KIBAV1": "Kiba Inu v1", "KIBSHI": "KiboShib", "KICK": "Kick", "KICKS": "GetKicks", + "KIDEN": "RoboKiden", "KIF": "KittenFinance", + "KIKI": "Kiki Flaminki", "KIKO": "KIKO", "KILLA": "The Bitcoin Killa", "KILLER": "Fat Cat Killer", @@ -6607,15 +7665,20 @@ "KIN": "Kin", "KIND": "Kind Ads", "KINE": "Kine Protocol", + "KINET": "KinetixFi", "KING": "KING", "KING93": "King93", "KINGB": "King Bean", "KINGBONK": "King Bonk", "KINGCAT": "King Cat", + "KINGD": "Kingdom of Ants", "KINGDOG": "King Dog Inu", "KINGDOMQUEST": "Kingdom Quest", "KINGF": "King Finance", "KINGGROK": "King Grok", + "KINGNEIRO": "King Neiro", + "KINGO": "King of memes", + "KINGOF": "King Of Memes", "KINGPEPE": "KING PEPE", "KINGSHIB": "King Shiba", "KINGSLERF": "King Slerf", @@ -6626,6 +7689,7 @@ "KINGWIF": "King WIF", "KINGY": "KINGYTON", "KINIC": "Kinic", + "KINK": "Kinka", "KINT": "Kintsugi", "KINU": "Kragger Inu", "KIRA": "Kira the Injective Cat", @@ -6639,17 +7703,24 @@ "KISHU": "Kishu Inu", "KIT": "Kitsune", "KITA": "KITA INU", + "KITE": "Kite", + "KITEAI": "KITEAI", "KITSU": "Kitsune Inu", + "KITTE": "Kittekoin", "KITTENS": "Kitten Coin", "KITTENWIF": "KittenWifHat", "KITTI": "KITTI TOKEN", - "KITTY": "Kitty Inu", + "KITTY": "Roaring Kitt", + "KITTYINU": "Kitty Inu", + "KITTYINUV1": "Kitty Inu v1", + "KITTYS": "KITTY Sol", + "KITTYSOL": "Kitty Solana", "KIWI": "kiwi", "KIZUNA": "KIZUNA", "KKO": "Kineko", "KKT": "Kingdom Karnage", "KLAP": "Klap Finance", - "KLAY": "Klaytn", + "KLAUS": "Klaus", "KLC": "KiloCoin", "KLD": "Koduck", "KLEE": "KleeKai", @@ -6664,6 +7735,7 @@ "KLT": "Kamaleont", "KLUB": "KlubCoin", "KLV": "Klever", + "KLY": "Klayr", "KMA": "Calamari Network", "KMC": "Kitsumon", "KMD": "Komodo", @@ -6680,6 +7752,7 @@ "KNFT": "KStarNFT", "KNG": "BetKings", "KNGN": "KingN Coin", + "KNI": "Knights of Cathena", "KNIGHT": "Forest Knight", "KNINE": "K9 Finance", "KNJ": "Kunji Finance", @@ -6690,7 +7763,9 @@ "KNS": "Kenshi", "KNT": "Knekted", "KNTO": "Kento", + "KNU": "Keanu", "KNW": "Knowledge", + "KOAI": "KOI", "KOBE": "Shabu Shabu", "KOBO": "KoboCoin", "KODA": "Koda Cryptocurrency", @@ -6698,6 +7773,7 @@ "KOGE": "BNB48 Club Token", "KOGECOIN": "KogeCoin.io", "KOI": "Koi", + "KOII": "Koii", "KOIN": "Koinos", "KOINB": "KoinBülteni Token", "KOINETWORK": "Koi Network", @@ -6706,19 +7782,26 @@ "KOK": "KOK Coin", "KOKO": "KokoSwap", "KOL": "Kollect", + "KOLANA": "KOLANA", "KOLION": "Kolion", + "KOLT": "Kolt", "KOM": "Kommunitas", + "KOMA": "Koma Inu", "KOMO": "Komoverse", "KOMP": "Kompass", "KOMPETE": "KOMPETE", "KON": "KonPay", + "KONAN": "Konan of Kaspa", + "KONET": "KONET", "KONG": "KONG", "KONO": "Konomi Network", "KORA": "Kortana", + "KORC": "King of Referral Coin", "KORE": "KORE Vault", "KOREC": "Kore", "KORRA": "KORRA", "KOSS": "Koss", + "KOTARO": "KOTARO", "KOTO": "Koto", "KOY": "Koyo", "KOZ": "Kozjin", @@ -6726,13 +7809,19 @@ "KP4R": "Keep4r", "KPAD": "KickPad", "KPAPA": "KPAPA", + "KPAW": "KasPaw", "KPC": "KEEPs Coin", "KPHI": "Kephi Gallery", + "KPK": "ParkCoin", "KPL": "Kepple", "KPN": "KonnektVPN", "KPOP": "KPOP Coin", + "KPOPFUN": "KPOP (kpop.fun)", "KRAK": "Kraken", "KRATOS": "KRATOS", + "KRAV": "Krav", + "KRAZY": "krazy n.d.", + "KRAZYKAMALA": "KRAZY KAMALA", "KRB": "Karbo", "KRC": "KRCoin", "KRD": "Krypton DAO", @@ -6755,6 +7844,8 @@ "KRUGERCOIN": "KrugerCoin", "KRX": "RAVN Korrax", "KRY": "Krypdraw", + "KRYP": "Krypto Trump", + "KS": "kittyspin", "KS2": "Kingdomswap", "KSC": "KStarCoin", "KSH": "Kahsh", @@ -6774,6 +7865,7 @@ "KTN": "Kattana", "KTO": "Kounotori", "KTON": "Darwinia Commitment Token", + "KTR": "Kitty Run", "KTS": "Klimatas", "KTT": "K-Tune", "KTX": "KwikTrust", @@ -6781,6 +7873,7 @@ "KUBE": "KubeCoin", "KUBO": "KUBO", "KUBOS": "KubosCoin", + "KUDAI": "Kudai", "KUE": "Kuende", "KUJI": "Kujira", "KUKU": "KuKu", @@ -6788,6 +7881,7 @@ "KUMU": "Kumu Finance", "KUNAI": "KunaiKash", "KUNCI": "Kunci Coin", + "KUNDALINI": "Kundalini is a real girl", "KUR": "Kuro", "KURO": "Kurobi", "KURT": "Kurrent", @@ -6804,6 +7898,7 @@ "KWAI": "KWAI", "KWATT": "4New", "KWD": "KIWI DEFI", + "KWEEN": "KWEEN", "KWENTA": "Kwenta", "KWH": "KWHCoin", "KWIK": "KwikSwap", @@ -6815,21 +7910,27 @@ "KYCC": "KYCCOIN", "KYL": "Kylin Network", "KYOKO": "Kyoko", + "KYRA": "KYRA", + "KYSOL": "Kyros Restaked SOL", "KYTE": "Kambria Yield Tuning Engine", "KYUB": "Kyuubi", "KYVE": "KYVE Network", "KZC": "KZCash", "KZEN": "Kaizen", "L": "L inu", + "L1": "Lamina1", "L2": "Leverj Gluon", "L2DAO": "Layer2DAO", + "L3": "Layer3", "L3P": "Lepricon", "L3USD": "L3USD", "L7": "L7", "LA": "LATOKEN", "LAB": "Labrys", + "LABORCRYPTO": "LaborCrypto", "LABRA": "LabraCoin", "LABS": "LABS Group", + "LABUBU": "Labubu", "LABX": "Stakinglab", "LABZ": "Insane Labz", "LACCOIN": "LocalAgro", @@ -6840,6 +7941,7 @@ "LADYS": "Milady Meme Coin", "LAEEB": "LaEeb", "LAELAPS": "Laelaps", + "LAFFIN": "Laffin Kamala", "LAI": "LayerAI", "LAIKA": "Laika Protocol", "LAINESOL": "Laine Staked SOL", @@ -6852,35 +7954,45 @@ "LANC": "Lanceria", "LAND": "Landshare", "LANDB": "LandBox", + "LANDLORD": "LANDLORD RONALD", "LANDS": "Two Lands", "LANDV1": "Landshare v1", + "LANDW": "LandWolf", "LANDWOLF": "LANDWOLF", + "LANDWOLFETH": "Landwolf", "LANDWU": "LandWu", "LANE": "LaneAxis", "LAO": "LC Token", + "LAOS": "LAOS Network", "LAPI": "Lapis Inu", "LAPTOP": "Hunter Biden's Laptop", + "LAPUPU": "Lapupu", "LAR": "LinkArt", "LARIX": "Larix", "LARO": "Anito Legends", "LARR": "larrywifhat", "LARRY": "LarryCoin", "LAS": "LNAsolution Coin", + "LASOL": "LamaSol", "LAT": "PlatON Network", "LATOM": "Liquid ATOM", "LATTE": "LatteSwap", "LATX": "Latium", "LAUGHCOIN": "Laughcoin", "LAUNCH": "Launchblock.com", - "LAVA": "Lavaswap", + "LAVA": "Lava Network", + "LAVASWAP": "Lavaswap", "LAVAX": "LavaX Labs", "LAVE": "Lavandos", "LAVITA": "Lavita AI", "LAW": "Law Token", + "LAWO": "Law Of Attraction", "LAX": "LAPO", + "LAY3R": "AutoLayer", "LAYER": "UniLayer", "LAZ": "Lazarus", "LAZIO": "Lazio Fan Token", + "LAZYCAT": "LAZYCAT", "LB": "LoveBit", "LBA": "Cred", "LBC": "LBRY Credits", @@ -6888,21 +8000,24 @@ "LBL": "LABEL Foundation", "LBLOCK": "Lucky Block", "LBM": "Libertum", - "LBR": "LaborCrypto", + "LBR": "Lybra Finance", + "LBRV1": "Lybra Finance v1", "LBT": "Law Blocks", - "LBTC": "LiteBitcoin", + "LBTC": "Lombard Staked BTC", "LBXC": "LUX BIO EXCHANGE COIN", "LC": "Lotus Capital", "LC4": "LEOcoin", "LCASH": "LitecoinCash", + "LCAT": "Lion Cat", "LCC": "LitecoinCash", "LCD": "Lucidao", "LCG": "LCG", + "LCI": "LOVECHAIN", "LCK": "Luckbox", "LCMG": "ElysiumG", "LCMS": "LCMS", "LCP": "Litecoin Plus", - "LCR": "Lucre", + "LCR": "Lucro", "LCRO": "Liquid CRO", "LCS": "LocalCoinSwap", "LCSN": "Lacostoken", @@ -6930,6 +8045,8 @@ "LEE": "Love Earn Enjoy", "LEET": "LeetSwap", "LEG": "Legia Warsaw Fan Token", + "LEGEND": "Legend", + "LEGION": "LEGION", "LEGO": "Lego Coin", "LEIA": "Leia", "LELE": "Lelecoin", @@ -6938,6 +8055,7 @@ "LEMN": "LEMON", "LEMO": "LemoChain", "LEMON": "LemonCoin", + "LEMX": "LEMON", "LEN": "Liqnet", "LENARD": "Lenard", "LEND": "Aave", @@ -6945,17 +8063,23 @@ "LENDS": "Lends", "LENFI": "Lenfi", "LENIN": "LeninCoin", + "LENS": "Len Sassaman (len-sassaman.vip)", "LEO": "LEO Token", + "LEOCOIN": "LEO", "LEOPARD": "Leopard", "LEOS": "Leonicorn Swap", "LEOX": "Galileo", "LEPA": "Lepasa", "LEPEN": "LePenCoin", + "LEPER": "Leper", "LESBIAN": "Lesbian Inu", + "LESLIE": "Leslie", "LESS": "Less Network", "LESSF": "LessFnGas", + "LESTER": "Litecoin Mascot", "LET": "LinkEye", "LETIT": "Letit", + "LETS": "Let's WIN This", "LETSGO": "Lets Go Brandon", "LEU": "CryptoLEU", "LEV": "Levante U.D. Fan Token", @@ -6971,9 +8095,11 @@ "LEZGI": "LEZGI Token", "LF": "Linkflow", "LFC": "BigLifeCoin", + "LFDOG": "lifedog", "LFG": "Gamerse", "LFGO": "Lets Fuckin Go", "LFI": "LunaFi", + "LFIT": "LFIT", "LFNTY": "Lifinity", "LFT": "Lend Flare Dao", "LFW": "Linked Finance World", @@ -6982,6 +8108,7 @@ "LGC": "LiveGreen Coin", "LGCY": "LGCY Network", "LGD": "Legends Cryptocurrency", + "LGNDX": "LegendX", "LGO": "Legolas Exchange", "LGOLD": "LYFE GOLD", "LGOT": "LGO Token", @@ -7002,27 +8129,36 @@ "LIBRE": "Libre", "LIC": "Ligercoin", "LICK": "PetLFG", + "LICKER": "LICKER", "LICO": "Liquid Collectibles", "LID": "Liquidity Dividends Protocol", "LIDER": "Lider Token", + "LIE": "it’s all a lie", "LIEN": "Lien", "LIF": "Winding Tree", "LIF3": "LIF3", "LIFE": "Life Crypto", "LIFEBIRD": "LIFEBIRD", + "LIFET": "LifeTime", "LIFETOKEN": "LIFE", "LIFT": "Uplift", "LIGER": "Ligercoin", "LIGHT": "LightChain", + "LIGHTSPEED": "LightSpeedCoin", "LIGMA": "Ligma Node", "LIGO": "Ligo", + "LIHUA": "LIHUA", "LIKE": "Only1", "LIKEC": "LikeCoin", "LILA": "LiquidLayer", + "LILB": "Lil Brett", "LILFLOKI": "Lil Floki", "LILPUMP": "lilpump", + "LILY": "LILY-The Gold Digger", + "LIMBO": "Limbo", "LIME": "iMe Lab", "LIMEX": "Limestone Network", + "LIMITEDCOIN": "Limited Coin", "LIMO": "Limoverse", "LIMX": "LimeCoinX", "LINA": "Linear", @@ -7031,6 +8167,7 @@ "LINDACEO": "LindaYacc Ceo", "LINEA": "Linea", "LING": "Lingose", + "LINGO": "Lingo", "LINK": "Chainlink", "LINKA": "LINKA", "LINKC": "LINKCHAIN", @@ -7039,6 +8176,7 @@ "LINSPIRIT": "linSpirit", "LINU": "Luna Inu", "LINX": "Linx", + "LIO": "Lio", "LION": "Lion Token", "LIPC": "LIpcoin", "LIPS": "LipChain", @@ -7046,13 +8184,16 @@ "LIQD": "Liquid Finance", "LIQR": "Topshelf Finance", "LIQUI": "Liquidus", + "LIQUIDIUM": "LIQUIDIUM•TOKEN", "LIR": "Let it Ride", "LIS": "Realis Network", "LISA": "Lisa Simpson", "LIST": "KList Protocol", "LISTA": "Lista DAO", + "LISUSD": "lisUSD", "LIT": "Litentry", "LITE": "Lite USD", + "LITEBTC": "LiteBitcoin", "LITENETT": "Litenett", "LITH": "Lithium Finance", "LITHIUM": "Lithium", @@ -7061,6 +8202,7 @@ "LITT": "LitLab Games", "LIV": "LiviaCoin", "LIVE": "TRONbetLive", + "LIVESEY": "Dr. Livesey", "LIVESTARS": "Live Stars", "LIXX": "Libra Incentix", "LIZ": "Lizus Payment", @@ -7081,6 +8223,7 @@ "LLAND": "Lyfe Land", "LLG": "Loligo", "LLION": "Lydian Lion", + "LLM": "Large Language Model Based", "LLT": "LILLIUS", "LM": "LeisureMeta", "LMAO": "LMAO Finance", @@ -7088,6 +8231,8 @@ "LMCH": "Latamcash", "LMCSWAP": "LimoCoin SWAP", "LMEOW": "lmeow", + "LMF": "Lamas Finance", + "LMQ": "Lightning McQueen", "LMR": "Lumerin", "LMT": "Lympo Market Token", "LMTOKEN": "LM Token", @@ -7109,6 +8254,7 @@ "LNX": "Lunox Token", "LOA": "League of Ancients", "LOAF": "LOAF CAT", + "LOAFCAT": "LOAFCAT", "LOAN": "Lendoit", "LOBO": "LOBO•THE•WOLF•PUP", "LOBS": "Lobstex", @@ -7118,6 +8264,7 @@ "LOCG": "LOCGame", "LOCI": "LociCoin", "LOCK": "Contracto", + "LOCKIN": "LOCK IN", "LOCO": "Loco", "LOCOM": "Locomotir", "LOCUS": "Locus Chain", @@ -7127,15 +8274,20 @@ "LOFI": "LOFI", "LOG": "Wood Coin", "LOGO": "LOGOS", + "LOGX": "LogX Network", "LOIS": "Lois Token", "LOKA": "League of Kingdoms", "LOKR": "Polkalokr", "LOL": "EMOGI Network", "LOLA": "Lola", + "LOLATHECAT": "Lola", "LOLC": "LOL Coin", + "LOLLY": "Lollipop", + "LOLO": "Lolo", "LON": "Tokenlon", "LONG": "Longdrink Finance", "LONGFU": "LONGFU", + "LONGM": "Long Mao", "LONGSHINE": "LongShine", "LOOK": "LookCoin", "LOOKS": "LooksRare", @@ -7144,6 +8296,7 @@ "LOON": "Loon Network", "LOONG": "PlumpyDragons", "LOOP": "LOOP", + "LOOPIN": "LooPIN Network", "LOOPY": "Loopy", "LOOT": "LootBot", "LOOTEX": "Lootex", @@ -7163,6 +8316,7 @@ "LOTTY": "Lotty", "LOTUS": "The White Lotus", "LOUD": "Loud Market", + "LOULOU": "LOULOU", "LOV": "LoveChain", "LOVE": "Deesse", "LOVELY": "Lovely finance", @@ -7177,6 +8331,7 @@ "LPI": "LPI DAO", "LPK": "Kripton", "LPL": "LinkPool", + "LPM": "Love Power Market", "LPNT": "Luxurious Pro Network Token", "LPOOL": "Launchpool", "LPT": "Livepeer", @@ -7190,12 +8345,16 @@ "LQDR": "LiquidDriver", "LQDX": "Liquid Crypto", "LQR": "Laqira Protocol", + "LQT": "Lifty", "LQTY": "Liquity", "LRC": "Loopring", + "LRDS": "BLOCKLORDS", "LRG": "Largo Coin", "LRN": "Loopring [NEO]", + "LRT": "LandRocker", + "LRT2": "LRT Squared", "LSC": "LS Coin", - "LSD": "LightSpeedCoin", + "LSD": "Pontem Liquidswap", "LSDOGE": "LSDoge", "LSETH": "Liquid Staked ETH", "LSHARE": "LSHARE", @@ -7212,6 +8371,7 @@ "LSWAP": "LoopSwap", "LT": "Loctite Assets Token", "LTA": "Litra", + "LTAI": "LibertAI", "LTB": "Litebar", "LTBC": "LTBCoin", "LTBTC": "Lightning Bitcoin", @@ -7224,7 +8384,7 @@ "LTCR": "LiteCreed", "LTCU": "LiteCoin Ultra", "LTCX": "LitecoinX", - "LTD": "Limited Coin", + "LTD": "Living the Dream", "LTE": "Local Token Exchange", "LTEX": "Ltradex", "LTG": "LiteCoin Gold", @@ -7238,6 +8398,7 @@ "LTPC": "Lightpaycoin", "LTR": "LogiTron", "LTRBT": "Little Rabbit", + "LTRBTV1": "Little Rabbit v1", "LTS": "Litestar Coin", "LTT": "LocalTrade", "LTX": "Lattice Token", @@ -7247,27 +8408,36 @@ "LUBE": "Joe Lube Coin", "LUC": "Play 2 Live", "LUCA": "LUCA", + "LUCE": "Luce", "LUCHOW": "LunaChow", + "LUCI": "LUCI", "LUCK": "Lucky Cat", "LUCKY": "Lucky Lion", "LUCKYB": "LuckyBlocks", "LUCKYS": "LuckyStar", "LUCKYSLP": "LuckysLeprecoin", + "LUCRE": "Lucre", "LUCY": "Lucy", "LUDO": "Ludo", "LUFC": "Leeds United Fan Token", "LUFFY": "Luffy", "LUFFYG": "Luffy G5", "LUFFYOLD": "Luffy", + "LUFFYV1": "Luffy v1", "LUIGI": "Luigi Inu", "LUIS": "Tongue Cat", "LULU": "LULU", "LUM": "Illuminates", "LUMA": "LUMA Token", "LUMI": "LUMI Credits", + "LUMIA": "Lumia", + "LUMIO": "Solana Mascot", + "LUMOS": "Lumos", "LUN": "Lunyr", "LUNA": "Terra", + "LUNAB": "Luna by Virtuals", "LUNAR": "Lunar", + "LUNARLENS": "Lunarlens", "LUNAT": "Lunatics", "LUNC": "Terra Classic", "LUNCARMY": "LUNCARMY", @@ -7282,7 +8452,8 @@ "LUSH": "Lush AI", "LUT": "Cinemadrom", "LUTETIUM": "Lutetium Coin", - "LUX": "LUXCoin", + "LUX": "Lux Token", + "LUXCOIN": "LUXCoin", "LUXO": "Luxo", "LUXU": "Luxury Travel Token", "LUXY": "Luxy", @@ -7299,8 +8470,10 @@ "LXF": "LuxFi", "LXT": "LITEX", "LXTO": "LuxTTO", + "LYA": "Huralya", "LYB": "LyraBar", "LYC": "LycanCoin", + "LYDI": "Lydia Finance", "LYF": "Lillian Token", "LYFE": "Lyfe", "LYK": "Loyakk Vega", @@ -7321,31 +8494,43 @@ "LYZI": "Lyzi", "LZ": "LaunchZone", "LZM": "LoungeM", + "LZUSDC": "LayerZero Bridged USDC (Fantom)", "M": "MetaVerse-M", "M1": "SupplyShock", "M2O": "M2O Token", + "M3M3": "M3M3", "M87": "MESSIER", "MAAL": "Maal Chain", "MABA": "Make America Based Again", "MAC": "MachineCoin", "MACHO": "macho", "MADA": "MilkADA", + "MADAGASCARTOKEN": "Madagascar Token", "MADANA": "MADANA", "MADC": "MadCoin", + "MADCOIN": "MAD", + "MADH": "Madhouse", "MADOG": "MarvelDoge", + "MADP": "Mad Penguin", "MADPEPE": "Mad Pepe", "MAEP": "Maester Protocol", "MAF": "MetaMAFIA", - "MAG": "Magnet", - "MAGA": "MAGA Hat", + "MAG": "Magnify Cash", + "MAGA": "MAGA", "MAGA2024": "MAGA2024", "MAGAA": "MAGA AGAIN", + "MAGAC": "MAGA CAT", + "MAGACA": "MAGA CAT", "MAGACAT": "MAGACAT", "MAGADOGE": "MAGA DOGE", + "MAGAHAT": "MAGA Hat", "MAGAIBA": "Magaiba", + "MAGAN": "Maganomics On Solana", "MAGANOMICS": "Maganomics", + "MAGAP": "MAGA PEPE", "MAGAPEPE": "MAGA PEPE", "MAGASHIB": "MAGA SHIB", + "MAGASOL": "MAGA", "MAGATRUMP": "MAGA Trump", "MAGE": "MetaBrands", "MAGIC": "Magic", @@ -7353,7 +8538,13 @@ "MAGICK": "Cosmic Universe Magick", "MAGICV": "Magicverse", "MAGIK": "Magik Finance", + "MAGN": "Magnate Finance", "MAGNET": "Yield Magnet", + "MAGNET6900": "MAGNET6900", + "MAGNETWORK": "Magnet", + "MAGOA": "Make America Great Once Again", + "MAGPAC": "MAGA Meme PAC", + "MAH": "Mahabibi Bin Solman", "MAHA": "MahaDAO", "MAI": "Mindsync", "MAIA": "Maia", @@ -7361,7 +8552,11 @@ "MAIL": "CHAINMAIL", "MAINSTON": "Ston", "MAJO": "Majo", + "MAJOR": "Major Frog", + "MAK": "MetaCene", "MAKE": "MAKE", + "MAKEA": "Make America Healthy Again", + "MAKEE": "Make Ethereum Great Again", "MAKI": "MakiSwap", "MALGO": "milkALGO", "MALL": "Metamall", @@ -7371,12 +8566,14 @@ "MAN": "Matrix AI Network", "MANA": "Decentraland", "MANC": "Mancium", + "MAND": "Mandala Exchange Token", "MANDALA": "Mandala Exchange Token", "MANDOX": "MandoX", "MANE": "MANE", "MANEKI": "MANEKI", "MANGA": "Manga Token", "MANIA": "ScapesMania", + "MANIFEST": "Manifest", "MANNA": "Manna", "MANORUKA": "ManoRuka", "MANT": "Mantle USD", @@ -7384,6 +8581,7 @@ "MANTLE": "Mantle", "MANYU": "Little Manyu", "MAO": "Mao", + "MAOW": "MAOW", "MAP": "MAP Protocol", "MAPC": "MapCoin", "MAPE": "Mecha Morphing", @@ -7391,6 +8589,7 @@ "MAPS": "MAPS", "MAR3": "Mar3 AI", "MARCO": "MELEGA", + "MARCUS": "Marcus Cesar Inu", "MARE": "Mare Finance", "MARGA": "Margaritis", "MARGINLESS": "Marginless", @@ -7399,6 +8598,7 @@ "MARIO": "MARIO CEO", "MARK": "Benchmark Protocol", "MARKE": "Market Ledger", + "MARKETMOVE": "MarketMove", "MARLEY": "Marley Token", "MARMAJ": "marmaj", "MARO": "Maro", @@ -7406,6 +8606,7 @@ "MARS4": "MARS4", "MARSC": "MarsCoin", "MARSH": "Unmarshal", + "MARSO": "Marso.Tech", "MARSRISE": "MarsRise", "MARSUPILAMI": "MARSUPILAMI INU", "MARSW": "Marswap", @@ -7430,36 +8631,49 @@ "MASTER": "Mastercoin", "MASTERCOIN": "MasterCoin", "MASTERMINT": "MasterMint", + "MASTERTRADER": "MasterTraderCoin", "MASYA": "MASYA", "MAT": "MiniApps", "MATA": "Ninneko", "MATAR": "MATAR AI", "MATCH": "Matching Game", "MATE": "Mate", + "MATES": "MATES", "MATH": "MATH", "MATIC": "Polygon", "MATICX": "Stader MaticX", "MATPAD": "MaticPad", "MATRIX": "Matrix Labs", + "MATT": "Matt Furie", + "MATTER": "AntiMatter", "MAU": "MAU", "MAUW": "MAUW", "MAV": "Maverick Protocol", + "MAVAX": "Avalanche (Multichain)", "MAVIA": "Heroes of Mavia", "MAW": "Mountain Sea World", - "MAX": "MaxCoin", + "MAWA": "Kumala Herris", + "MAWC": "Magawincat", + "MAX": "Matr1x", + "MAXCOIN": "MaxCoin", + "MAXETH": "Max on ETH", "MAXI": "Maximus", "MAXL": "Maxi protocol", "MAXR": "Max Revive", "MAXX": "MAXX Finance", "MAY": "Theresa May Coin", "MAYACOIN": "MayaCoin", + "MAYO": "Mr Mayonnaise the Cat", "MAYP": "Maya Preferred", "MAZC": "MyMazzu", "MAZI": "MaziMatic", "MAZZE": "Mazze", "MB": "MineBee", + "MB28": "MBridge28", "MB4": "Matthew Box 404", "MB8": "MB8 Coin", + "MBAG": "MoonBag", + "MBANK": "MetaBank", "MBAPEPE": "MBAPEPE", "MBASE": "Minebase", "MBC": "MicroBitcoin", @@ -7470,12 +8684,16 @@ "MBET": "MoonBet", "MBF": "MoonBear.Finance", "MBI": "Monster Byte Inc", + "MBID": "myBID", + "MBILLY": "MAMA BILLY", "MBIT": "Mbitbooks", "MBL": "MovieBloc", "MBLC": "Mont Blanc", "MBLK": "Magical Blocks", + "MBLV1": "MovieBloc v1", "MBM": "MobileBridge Momentum", "MBN": "Mobilian Coin", + "MBNB": "Binance Coin (Multichain)", "MBONK": "megaBonk", "MBOT": "MoonBot", "MBOX": "MOBOX", @@ -7487,7 +8705,9 @@ "MBTX": "MinedBlock", "MBX": "Marblex", "MC": "Merit Circle", + "MCA": "Mcashchain", "MCADE": "Metacade", + "MCAKE": "EasyCake", "MCAP": "MCAP", "MCAR": "MasterCar", "MCASH": "Monsoon Finance", @@ -7496,7 +8716,10 @@ "MCB": "MCDEX", "MCC": "Magic Cube Coin", "MCD": "CDbio", + "MCDAI": "Dai (Multichain)", + "MCDULL": "McDull", "MCELO": "Moola Celo", + "MCEN": "Main Character Energy", "MCEUR": "Moola Celo EUR", "MCF": "MCFinance", "MCG": "MicroChains Gov Token", @@ -7509,6 +8732,7 @@ "MCN": "mCoin", "MCO": "Crypto.com", "MCO2": "Moss Carbon Credit", + "MCOI": "MCOIN", "MCOIN": "MCOIN", "MCONTENT": "MContent", "MCP": "My Crypto Play", @@ -7518,10 +8742,12 @@ "MCRT": "MagicCraft", "MCS": "MCS Token", "MCT": "MyConstant", + "MCTO": "McToken", "MCTP": "Metacraft", "MCU": "MediChain", "MCUSD": "Moola Celo USD", "MCV": "MCV Token", + "MD": "MetaDeck", "MDA": "Moeda", "MDAI": "MindAI", "MDAO": "MarsDAO", @@ -7535,6 +8761,7 @@ "MDICE": "Multidice", "MDM": "Medium", "MDN": "Modicoin", + "MDOGE": "First Dog In Mars", "MDR": "Mudra MDR", "MDS": "MediShares", "MDT": "Measurable Data Token", @@ -7543,7 +8770,7 @@ "MDUS": "MEDIEUS", "MDX": "Mdex (BSC)", "MDXH": "Mdex (HECO)", - "ME": "All.me", + "ME": "Magic Eden", "MEAN": "Meanfi", "MEB": "Meblox Protocol", "MEC": "MegaCoin", @@ -7557,6 +8784,7 @@ "MEDIC": "MedicCoin", "MEDICO": "Mediconnect", "MEDIT": "MediterraneanCoin", + "MEDUSA": "MEDUSA", "MEE": "Medieval Empires", "MEED": "Meeds DAO", "MEER": "Qitmeer Network", @@ -7566,17 +8794,23 @@ "MEFA": "Metaverse Face", "MEGA": "MegaFlash", "MEGABOT": "Megabot", + "MEGAD": "Mega Dice Casino", "MEGAHERO": "MEGAHERO", "MEGALAND": "Metagalaxy Land", "MEGALANDV1": "Metagalaxy Land v1", + "MEGAX": "Megahex", "MEGE": "MEGE", "MEH": "meh", + "MEI": "Mei Solutions", + "MEIZHU": "GUANGZHOU ZOO NEW BABY PANDA", "MEL": "MELX", - "MELANIA": "Melania Trump", + "MELANIA": "Melania Meme", + "MELANIATRUMP": "Melania Trump", "MELB": "Minelab", "MELD": "MELD", "MELI": "Meli Games", "MELLO": "Mello Token", + "MELLOW": "Mellow Man", "MELLSTROY": "MELLSTROY", "MELO": "Melo Token", "MELODITY": "Melodity", @@ -7592,18 +8826,24 @@ "MEMEETF": "Meme ETF", "MEMEFI": "MemeFi", "MEMEINU": "Meme Inu", + "MEMEM": "Meme Man", "MEMEME": "MEMEME", "MEMEMINT": "MEME MINT", "MEMEMUSK": "MEME MUSK", "MEMERUNE": "MEME•ECONOMICS", "MEMES": "MemeCoinDAO", + "MEMESAI": "Memes AI", + "MEMESQUAD": "Meme Squad", "MEMET": "MEMETOON", "MEMETIC": "Memetic", "MEMORYCOIN": "MemoryCoin", + "MEN": "METAHUB FINANCE", "MENDI": "Mendi Finance", "MENGO": "Flamengo Fan Token", "MENLO": "Menlo One", + "MEO": "Meow Of Meme", "MEOW": "Zero Tech", + "MEOWETH": "Meow", "MEOWG": "MeowGangs", "MEOWIF": "Meowifhat", "MEOWM": "Meow Meow Coin", @@ -7619,6 +8859,7 @@ "MERIDIAN": "Meridian Network LOCK", "MERKLE": "Merkle Network", "MERL": "Merlin Chain", + "MERLIN": "Oldest Raccoon", "MERY": "Mistery On Cro", "MESA": "MetaVisa", "MESG": "MESG", @@ -7626,16 +8867,23 @@ "MESSI": "MESSI COIN", "MESSU": "Loinel Messu", "MET": "Metronome", - "META": "Metadium", + "META": "MetaDAO", + "METAA": "META ARENA", "METABOT": "Robot Warriors", "METAC": "Metacoin", + "METACA": "MetaCash", "METACAT": "MetaCat", + "METACLOUD": "Metacloud", "METACR": "Metacraft", + "METAD": "MetaDoge", + "METADIUM": "Metadium", "METADOGE": "MetaDoge", + "METADOGEV1": "MetaDoge V1", "METADOGEV2": "MetaDoge V2", "METAF": "MetaFastest", "METAG": "MetagamZ", "METAGEAR": "MetaGear", + "METAIVERSE": "MetAIverse", "METAL": "Metal Blockchain", "METALCOIN": "MetalCoin", "METAMEME": "met a meta metameme", @@ -7646,13 +8894,15 @@ "METAQ": "MetaQ", "METAS": "Metaseer", "METAT": "MetaTrace", + "METATI": "Metatime Coin", + "METATR": "MetaTrace Utility Token", "METAUFO": "MetaUFO", "METAV": "MetaVPad", + "METAVE": "Metaverse Convergence", "METAVIE": "Metavie", "METAW": "MetaWorth", "METAX": "MetaverseX", "METEOR": "Meteorite Network", - "METER": "Meter Stable", "METFI": "MetFi", "METH": "Mantle Staked Ether", "METI": "Metis", @@ -7663,6 +8913,7 @@ "METRO": "Metropoly", "MEU": "MetaUnit", "MEV": "MEVerse", + "MEVETH": "mevETH", "MEVR": "Metaverse VR", "MEW": "cat in a dogs world", "MEWC": "Meowcoin", @@ -7686,10 +8937,12 @@ "MFPS": "Meta FPS", "MFS": "Moonbase File System", "MFT": "Hifi Finance (Old)", + "MFTM": "Fantom (Multichain)", "MFTU": "Mainstream For The Underground", "MFUND": "Memefund", "MFX": "MFChain", "MG": "MinerGate Token", + "MG8": "Megalink", "MGAMES": "Meme Games", "MGAR": "Metagame Arena", "MGC": "Meta Games Coin", @@ -7721,24 +8974,33 @@ "MIC": "Mithril Cash", "MICE": "Mice", "MICHI": "michi", + "MICK": "Mickey Meme", "MICKEY": "Steamboat Willie", "MICRO": "Micromines", + "MICRODOGE": "MicroDoge", "MIDAI": "Midway AI", "MIDAS": "Midas", "MIDASDOLLAR": "Midas Dollar Share", "MIDN": "Midnight", + "MIDNIGHT": "Midnight", "MIE": "MIE Network", "MIF": "monkeywifhat", "MIG": "Migranet", + "MIGGLEI": "Migglei", + "MIGGLES": "Mr Miggles", "MIGMIG": "MigMig Swap", + "MIHARU": "Smiling Dolphin", "MIIDAS": "Miidas NFT", "MIININGNFT": "MiningNFT", + "MIKE": "Mike", "MIKS": "MIKS COIN", "MIL": "Milllionaire Coin", + "MILA": "MILADY MEME TOKEN", "MILE": "milestoneBased", "MILEI": "MILEI", "MILK": "Milkshake Swap", "MILK2": "Spaceswap MILK2", + "MILKBAG": "MILKBAG", "MILKYWAY": "MilkyWayZone", "MILLI": "Million", "MILLY": "milly", @@ -7746,6 +9008,7 @@ "MILOCEO": "Milo CEO", "MILOCOIN": "MiloCoin", "MILODOG": "MILO DOG", + "MILOP": "MILO Project", "MIM": "Magic Internet Money", "MIMATIC": "MAI", "MIMI": "MIMI Money", @@ -7755,28 +9018,38 @@ "MINA": "Mina Protocol", "MINC": "MinCoin", "MIND": "Morpheus Labs", + "MINDC": "MindCoin", "MINDCOIN": "MindCoin", "MINDEX": "Mindexcoin", "MINDGENE": "Mind Gene", "MINDS": "Minds", "MINE": "SpaceMine", + "MINEA": "Mine AI", "MINER": "MINER", "MINERALS": "Minerals Coin", "MINES": "MINESHIELD", "MINETTE": "Vibe Cat", "MINEX": "Minex", - "MINI": "Mini", + "MINGO": "Mingo", + "MINI": "mini", "MINIBNBTIGER": "MiniBNBTiger", + "MINID": "Mini Donald", "MINIDOGE": "MiniDOGE", "MINIFOOTBALL": "Minifootball", "MINIMYRO": "Mini Myro", + "MININEIRO": "Mini Neiro", + "MININGWATCHDOG": "Miningwatchdog Smartchain", "MINION": "Minions INU", + "MINIP": "MiniPepe Coin", "MINIPEPE": "MiniPepe", + "MINIS": "Mini", "MINISHIB": "miniSHIB ETH", "MINO": "MINO INU", + "MINOCOINCTO": "MINO", "MINS": "Minswap", "MINT": "Mint Club", "MINTCOIN": "MintCoin", + "MINTE": "Minter HUB", "MINTME": "MintMe.com Coin", "MINTYS": "MintySwap", "MINU": "Minu", @@ -7788,13 +9061,17 @@ "MIR": "Mirror Protocol", "MIRA": "Chains of War", "MIRACLE": "MIRACLE", + "MIRAI": "MIRAI", "MIRC": "MIR COIN", + "MIRT": "MIR Token", "MIS": "Mithril Share", "MISA": "Sangkara", "MISCOIN": "MIScoin", + "MISHA": "Vitalik's Dog", "MISHKA": "Mishka Token", "MISS": "MISS", "MIST": "Mist", + "MISTE": "Mister Miggles", "MISTRAL": "Mistral AI", "MIT": "Galaxy Blitz", "MITC": "MusicLife", @@ -7802,6 +9079,7 @@ "MITHRIL": "CLIMBERS", "MITTENS": "Mittens", "MITX": "Morpheus Infrastructure Token", + "MIU": "Miu", "MIV": "MakeItViral", "MIVA": "Minerva Wallet", "MIVRS": "Minionverse", @@ -7810,26 +9088,32 @@ "MIXCOIN": "Mixaverse", "MIXER": "TON Mixer", "MIY": "Icel Idman Yurdu Token", + "MIZ": "Mizar", "MJT": "MojitoSwap", "MK": "Meme Kombat", "MKC": "Meta Kongz", "MKEY": "MEDIKEY", + "MKL": "Merkle Trade", "MKONG": "MEME KONG", "MKR": "Maker", "MKT": "MikeToken", "MKUSD": "Prisma mkUSD", "ML": "Mintlayer", "MLA": "Moola", + "MLC": "My Lovely Planet", "MLD": "MonoLend", + "MLEO": "LEO Token (Multichain)", "MLGC": "Marshal Lion Group Coin", + "MLINK": "Chainlink (Multichain)", "MLITE": "MeLite", "MLK": "MiL.k", "MLN": "Enzyme", "MLNK": "Malinka", "MLOKY": "MLOKY", + "MLP": "Matrix Layer Protocol", "MLS": "CPROP", "MLT": "MIcro Licensing Coin", - "MLTC": "MultiWallet Coin", + "MLTC": "Litecoin (Multichain)", "MLTPX": "MoonLift Capital", "MLXC": "Marvellex Classic", "MM": "Millimeter", @@ -7837,6 +9121,7 @@ "MMAI": "MetamonkeyAi", "MMAON": "MMAON", "MMAPS": "MapMetrics", + "MMATIC": "Wrapped Polygon (Multichain)", "MMC": "Monopoly Millionaire Control", "MMETA": "Duckie Land Multi Metaverse", "MMF": "MMFinance", @@ -7852,6 +9137,7 @@ "MMT": "Master MIX Token", "MMTM": "Momentum", "MMUI": "MetaMUI", + "MMULTI": "Multichain (via Multichain Cross-Chain Router)", "MMVG": "MEMEVENGERS", "MMX": "MMX", "MMXIV": "MaieutiCoin", @@ -7859,11 +9145,13 @@ "MMY": "Mummy Finance", "MN": "Cryptsy Mining Contract", "MNB": "MoneyBag", + "MNBR": "MN Bridge", "MNC": "MainCoin", "MND": "Mound Token", "MNDCC": "Mondo Community Coin", "MNDE": "Marinade", "MNE": "Minereum", + "MNEE": "MNEE USD Stablecoin ", "MNET": "MINE Network", "MNFT": "Mongol NFT", "MNFTS": "Marvelous NFTs", @@ -7891,6 +9179,7 @@ "MNZ": "Menzy", "MO": "Morality", "MOAC": "MOAC", + "MOAI": "MOAI", "MOAR": "Moar Finance", "MOAT": "Mother Of All Tokens", "MOB": "MobileCoin", @@ -7898,12 +9187,17 @@ "MOBIC": "Mobility Coin", "MOBIE": "MobieCoin", "MOBILE": "Helium Mobile", + "MOBIU": "Mobius Money", "MOBU": "MOBU", "MOBX": "MOBIX", "MOBY": "Moby", + "MOBYONBASE": "Moby", + "MOBYONBASEV1": "Moby v1", "MOC": "Mossland", + "MOCA": "Moca Coin", "MOCHI": "Mochiswap", "MOCHICAT": "MochiCat", + "MOCK": "Mock Capital", "MOCO": "MoCo", "MOD": "Modefi", "MODA": "MODA DAO", @@ -7922,18 +9216,25 @@ "MOFI": "MobiFi", "MOFOLD": "Molecular Future (ERC20)", "MOG": "Mog Coin", + "MOGC": "MOG CAT", + "MOGCO": "Mog Coin (mogcoinspl.com)", "MOGE": "Moge", "MOGGO": "MOGGO", + "MOGP": "MOG PEPE", + "MOGT": "MOG TRUMP", "MOGU": "Mogu", "MOGUL": "Mogul Productions", + "MOGUT": "Mogutou", "MOGX": "Mogu", "MOH": "Medal of Honour", "MOI": "MyOwnItem", "MOIN": "MoinCoin", + "MOJI": "Moji", "MOJO": "Mojocoin", "MOK": "MocktailSwap", "MOL": "Molecule", "MOLA": "MoonLana", + "MOLI": "Mobile Liquidity", "MOLK": "Mobilink Token", "MOLLARS": "MollarsToken", "MOLLY": "Molly", @@ -7947,6 +9248,8 @@ "MONARCH": "TRUEMONARCH", "MONAV": "Monavale", "MONB": "MonbaseCoin", + "MONDO": "mondo", + "MONET": "Claude Monet Memeory Coin", "MONETA": "Moneta", "MONEY": "MoneyCoin", "MONEYBEE": "MONEYBEE", @@ -7957,6 +9260,7 @@ "MONG20": "Mongoose 2.0", "MONGBNB": "MongBNB", "MONGOOSE": "Mongoose", + "MONGY": "Mongy", "MONI": "Monsta Infinite", "MONIE": "Infiblue World", "MONK": "Monkey Project", @@ -7965,26 +9269,42 @@ "MONKEY": "Monkey", "MONKEYS": "Monkeys Token", "MONKU": "Monku", + "MONKY": "Wise Monkey", "MONO": "MonoX", + "MONOLITH": "Monolith", "MONONOKEINU": "Mononoke Inu", + "MONOPOLY": "Meta Monopoly", "MONS": "Monsters Clan", "MONST": "Monstock", "MONSTA": "Cake Monster", + "MONSTE": "Monster", "MONT": "Monarch Token", "MONTE": "Monte", "MOO": "MooMonster", + "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", "MOOLYA": "moolyacoin", "MOON": "r/CryptoCurrency Moons", "MOONARCH": "Moonarch", + "MOONB": "Moon Base", + "MOONBI": "Moonbix", + "MOONBIX": "MOONBIX MEME", "MOONC": "MoonCoin", "MOOND": "Dark Moon", "MOONDAY": "Moonday Finance", + "MOONDO": "MOON DOGE", "MOONED": "MoonEdge", "MOONER": "CoinMooner", "MOONEY": "Moon DAO", + "MOONI": "MOON INU", "MOONION": "Moonions", "MOONKIZE": "MoonKize", "MOONLIGHT": "Moonlight Token", @@ -7992,6 +9312,7 @@ "MOONS": "Sailor Moons", "MOONSHOT": "Moonshot", "MOONSTAR": "MoonStar", + "MOONW": "moonwolf.io", "MOOO": "Hashtagger", "MOOV": "dotmoovs", "MOOX": "Moox Protocol", @@ -7999,9 +9320,12 @@ "MOR": "Morpheus", "MORA": "Meliora", "MORE": "More Coin", + "MOREGEN": "MoreGen FreeMoon", "MORFEY": "Morfey", + "MORI": "MEMENTO•MORI (Runes)", "MOROS": "MOROS NET", "MORPH": "Morpheus Token", + "MORPHO": "Morpho", "MORRA": "Morra", "MORSE": "Morse", "MOS": "MOS Coin", @@ -8009,23 +9333,28 @@ "MOT": "Olympus Labs", "MOTA": "MotaCoin", "MOTG": "MetaOctagon", + "MOTH": "MOTH", "MOTHER": "Mother Iggy", "MOTI": "Motion", "MOTO": "Motocoin", "MOUTAI": "Moutai", "MOV": "MovieCoin", "MOVD": "MOVE Network", - "MOVE": "MarketMove", + "MOVE": "Movement", "MOVER": "Mover", + "MOVEUSD": "MoveMoney USD", "MOVEY": "Movey", "MOVEZ": "MoveZ", "MOVON": "MovingOn Finance", "MOVR": "Moonriver", "MOW": "mouse in a cats world", "MOWA": "Moniwar", + "MOXIE": "Moxie", + "MOYA": "MOYA", "MOZ": "Mozik", "MP": "Membership Placeholders", "MP3": "MP3", + "MPAA": "MPAA", "MPAD": "MultiPad", "MPAY": "Menapay", "MPC": "Metaplace", @@ -8056,12 +9385,14 @@ "MRHB": "MarhabaDeFi", "MRI": "Marshall Inu", "MRK": "MARK.SPACE", + "MRM": "Mr Mint", "MRN": "Mercoin", "MRNA": "Moderna", "MRP": "MorpheusCoin", "MRPEPE": "Pepe Potato", "MRS": "Metars Genesis", "MRSA": "MrsaCoin", + "MRSMIGGLES": "Mrs Miggles", "MRT": "MinersReward", "MRUN": "Metarun", "MRV": "Macroverse", @@ -8071,10 +9402,11 @@ "MRY": "MurrayCoin", "MSA": "My Shiba Academia", "MSB": "Misbloc", - "MSC": "Miningwatchdog Smartchain", + "MSC": "Matrix SmartChain", "MSCP": "Moonscape", "MSCT": "MUSE ENT NFT", "MSD": "MSD", + "MSFT": "Microsoft 6900", "MSG": "MsgSender", "MSGO": "MetaSetGO", "MSHD": "MASHIDA", @@ -8085,6 +9417,7 @@ "MSOL": "Marinade Staked SOL", "MSOT": "BTour Chain", "MSP": "Mothership", + "MSPC": "MeowSpace", "MSQ": "MSquare Global", "MSR": "Masari", "MST": "Idle Mystic", @@ -8092,12 +9425,13 @@ "MSTETH": "Eigenpie mstETH", "MSTO": "Millennium Sapphire", "MSU": "MetaSoccer", + "MSUSHI": "Sushi (Multichain)", "MSWAP": "MoneySwap", "MT": "MyToken", "MTA": "Meta", "MTB": "MetaBridge", "MTBC": "Metabolic", - "MTC": "MEDICAL TOKEN CURRENCY", + "MTC": "Matrix Chain", "MTCMN": "MTC Mesh", "MTCN": "Multiven", "MTD": "Minted", @@ -8113,11 +9447,13 @@ "MTK": "Moya Token", "MTL": "Metal", "MTLM3": "Metal Music v3", + "MTLS": "eMetals", "MTLX": "Mettalex", + "MTMS": "MTMS Network", "MTN": "TrackNetToken", "MTO": "Merchant Token", "MTP": "Macro Protocol", - "MTR": "MasterTraderCoin", + "MTR": "Meter Stable", "MTRA": "MetaRare", "MTRC": "ModulTrade", "MTRG": "Meter", @@ -8137,25 +9473,32 @@ "MTY": "Viddli", "MTZ": "Monetizr", "MU": "Miracle Universe", + "MUA": "MUA DAO", "MUBI": "Multibit", "MUC": "Multi Universe Central", "MUDOL2": "Hero Blaze: Three Kingdoms", "MUDRA": "MudraCoin", "MUE": "MonetaryUnit", + "MUES": "MuesliSwap MILK", "MULTI": "Multichain", "MULTIBOT": "Multibot", "MULTIGAMES": "MultiGames", "MULTIV": "Multiverse", + "MULTIWALLET": "MultiWallet Coin", "MUMU": "Mumu", "MUN": "MUNcoin", "MUNCH": "Munch Token", "MUNCHY": "Boys Club Munchy", + "MUNDI": "Salvator Mundi", + "MUNI": "Uniswap Protocol Token (Multichain)", "MUNITY": "Metahorse Unity", "MUNK": "Dramatic Chipmunk", + "MUNSUN": "MUNSUN", "MURA": "Murasaki", "MURATIAI": "MuratiAI", "MUSCAT": "MusCat", "MUSD": "mStable USD", + "MUSDC": "USD Coin (Multichain)", "MUSDCOIN": "MUSDcoin", "MUSE": "Muse DAO", "MUSIC": "Gala Music", @@ -8192,10 +9535,13 @@ "MWAVE": "MeshWave", "MWC": "MimbleWimbleCoin", "MWCC": "Metaworld", + "MWD": "MEW WOOF DAO", "MX": "MX Token", "MXC": "Machine Xchange Coin", + "MXD": "Denarius", "MXGP": "MXGP Fan Token", "MXM": "Maximine", + "MXNB": "MXNB", "MXNT": "Tether MXNt", "MXRP": "Monsta XRP", "MXT": "MixTrust", @@ -8215,6 +9561,7 @@ "MYO": "Mycro", "MYOBU": "Myōbu", "MYRA": "Mytheria", + "MYRE": "Myre", "MYRIA": "Myria", "MYRO": "Myro", "MYRODRAGON": "MYRO DRAGON", @@ -8232,18 +9579,23 @@ "MZM": "MetaZooMee", "MZR": "Mazuri GameFi", "MZX": "Mosaic Network", + "Medu": "Medusa", "N0031": "nYFI", "N1": "NFTify", "N3DR": "NeorderDAO ", + "N64": "N64", "N7": "Number7", "N8V": "NativeCoin", "NABOX": "Nabox", "NAC": "Nirvana Chain", + "NACHO": "Nacho the 𐤊at", "NADA": "NADA Protocol Token", "NAFT": "Nafter", "NAH": "Strayacoin", "NAI": "Nuklai", + "NAILONG": "Nailong", "NAKA": "Nakamoto Games", + "NAKAV1": "Nakamoto Games v1", "NALA": "Not a lion, a...", "NALS": "NALS (Ordinals)", "NAM": "Namacoin", @@ -8264,15 +9616,19 @@ "NAS": "Nebulas", "NAS2": "Nas2Coin", "NASADOGE": "Nasa Doge", + "NASDAQ420": "Nasdaq420", "NASH": "NeoWorld Cash", "NASSR": "Alnassr FC Fan Token", "NASTR": "Liquid ASTR", "NAT": "Natmin", + "NATI": "IlluminatiCoin", "NATION": "Nation3", "NATIX": "NATIX Network", + "NATOR": "Pepenator", "NAUSICAA": "Nausicaa-Inu", "NAUT": "Nautilus Coin", "NAV": "NavCoin", + "NAVAL": "NAVAL AI", "NAVC": "NavC token", "NAVI": "Atlas Navi", "NAVIA": "NaviAddress", @@ -8280,7 +9636,9 @@ "NAVX": "NAVI Protocol", "NAVY": "BoatPilot Token", "NAWA": "Narwhale.finance", + "NAWS": "NAWS.AI", "NAX": "NextDAO", + "NAYM": "NAYM", "NAZ": "NAZDAQ", "NAZA": "NAZA", "NAZAR": "NAZAR PROTOCOL", @@ -8306,7 +9664,9 @@ "NCAT": "Neuracat", "NCC": "NeuroChain", "NCDT": "Nuco.Cloud", + "NCN": "NeurochainAI", "NCO": "Nexacore", + "NCOIN": "NatronZ", "NCOP": "NCOP", "NCOR": "NovaCore", "NCORAI": "NeoCortexAI", @@ -8314,6 +9674,7 @@ "NCP": "Newton Coin", "NCR": "Neos Credits", "NCT": "PolySwarm", + "NCTR": "Nectar", "ND": "Nemesis Downfall", "NDAU": "ndau", "NDB": "NDB", @@ -8327,9 +9688,11 @@ "NEADRAM": "The Ennead", "NEAL": "Coineal Token", "NEAR": "Near", + "NEARK": "NearKat", "NEARX": "Stader NearX", "NEAT": "NEAT", "NEBL": "Neblio", + "NEBNB": "Neuro BNB", "NEBU": "Nebuchadnezzar", "NEC": "Nectar", "NEER": "Metaverse.Network Pioneer", @@ -8340,8 +9703,20 @@ "NEFTY": "NeftyBlocks", "NEGED": "Neged", "NEI": "Neurashi", + "NEILUO": "CHINESE NEIRO", + "NEINEI": "Chinese Neiro", + "NEIREI": "NeiRei", + "NEIRO": "Neiro", + "NEIROC": "Neirocoin (neirocoin.club)", + "NEIROCOIN": "Neiro Ethereum", + "NEIROH": "NeiroWifHat", + "NEIROINU": "Neiro Inu", + "NEIROLIVE": "Neiro", + "NEIROLOL": "Neiro", + "NEIROONB": "Neiro on Base", "NEKI": "Neki Token", "NEKO": "The Neko", + "NEKOARC": "Neko Arc", "NEKOIN": "Nekoin", "NEKOS": "Nekocoin", "NEMO": "NEMO", @@ -8368,6 +9743,8 @@ "NETA": "Negative Tax", "NETC": "NetworkCoin", "NETCOIN": "Netcoincapital", + "NETCOINV1": "Netcoincapital v1", + "NETK": "Netkoin", "NETKO": "Netko", "NETRUM": "Netrum", "NETT": "Netswap", @@ -8384,15 +9761,22 @@ "NEUTR": "Neutrinos", "NEUTRO": "Neutro Protocol", "NEUTRON": "Neutron", + "NEV": "NEVER SURRENDER", "NEVA": "NevaCoin", + "NEVANETWORK": "Neva", + "NEVE": "NEVER SURRENDER", "NEVER": "neversol", "NEW": "Newton", "NEWB": "Newbium", + "NEWBV1": "Newbium v1", + "NEWC": "New Cat", "NEWG": "NewGold", "NEWM": "NEWM", "NEWO": "New Order", "NEWOS": "NewsToken", + "NEWP": "New Peon", "NEWS": "PUBLISH", + "NEWSL": "Newsly", "NEWSTOKENS": "NewsTokens", "NEWTON": "Newtonium", "NEX": "Nash Exchange", @@ -8400,20 +9784,26 @@ "NEXAI": "NexAI", "NEXBOX": "NexBox", "NEXBT": "Native XBTPro Exchange Token", + "NEXG": "NexGami", "NEXM": "Nexum", + "NEXMI": "NexMillionaires", "NEXMS": "NexMillionaires", "NEXO": "NEXO", "NEXT": "Connext Network", "NEXTEX": "Next.exchange Token", "NEXTEXV1": "Next.exchange Token v1", + "NEXTV1": "Connext Network", "NEXUSAI": "NexusAI", "NEXXO": "Nexxo", "NEZHA": "NezhaToken", "NFAI": "Not Financial Advice", + "NFAIV1": "Not Financial Advice v1", "NFCR": "NFCore", "NFD": "Feisty Doge NFT", "NFE": "Edu3Labs", + "NFM": "NFMart", "NFN": "Nafen", + "NFNT": "NFINITY AI", "NFP": "NFPrompt", "NFT": "APENFT", "NFT11": "NFT11", @@ -8422,6 +9812,7 @@ "NFTBS": "NFTBooks", "NFTD": "NFTrade", "NFTE": "NFTEarthOFT", + "NFTFI": "NFTfi", "NFTI": "NFT Index", "NFTL": "NFTLaunch", "NFTLOOT": "NFTLootBox", @@ -8429,6 +9820,7 @@ "NFTN": "NFTNetwork", "NFTP": "NFT", "NFTS": "NFT STARS", + "NFTSTYLE": "NFTStyle", "NFTT": "NFT", "NFTX": "NFTX", "NFTXHI": "NFTX Hashmasks Index", @@ -8443,6 +9835,7 @@ "NGL": "Entangle", "NGM": "e-Money", "NGMI": "NGMI Coin", + "NGTG": "NUGGET TRAP", "NHCT": "Nano Healthcare Token", "NHI": "Non Human Intelligence", "NHT": "Neighbourhoods", @@ -8454,17 +9847,24 @@ "NIF": "Unifty", "NIFT": "Niftify", "NIFTSY": "Envelop", + "NIFTY": "Nifty Wizards Dust", + "NIFTYL": "Nifty League", "NIGELLA": "Nigella coin", "NIGHT": "Midnight", "NIGI": "Nigi", + "NIH": "Nihao coin", "NIHAO": "NiHao", "NII": "nahmii", "NIIFI": "NiiFi", "NIK": "NIKPLACE", + "NIKO": "NikolAI", + "NILE": "Nile", "NIM": "Nimiq", "NIMFA": "Nimfamoney", "NIN": "Next Innovation", + "NINJ": "Ninja Protocol", "NINJA": "Dog Wif Nunchucks", + "NINJACAT": "NinjaCat", "NINJAZ": "Danketsu", "NINKY": "Ninky", "NINO": "Ninneko", @@ -8472,8 +9872,12 @@ "NIOB": "Niob Finance", "NIOCTIB": "nioctiB", "NIOX": "Autonio", + "NIOXV1": "Autonio v1", + "NIOXV2": "Autonio v2", "NIPPY": "Cat On Catnip", + "NIQAB": "NIQAB WORLD ORDER", "NIRV": "Nirvana NIRV", + "NIRVA": "Nirvana", "NIT": "Nesten", "NITEFEEDER": "Nitefeeder", "NITO": "Nitroken", @@ -8502,6 +9906,7 @@ "NMH": "Namahe", "NMK": "Namek", "NMKR": "NMKR", + "NML": "No Mans Land", "NMR": "Numeraire", "NMS": "Numus", "NMSP": "Nemesis PRO", @@ -8518,6 +9923,8 @@ "NOBS": "No BS Crypto", "NOCHILL": "AVAX HAS NO CHILL", "NODE": "Whole Network", + "NODESYNAPSE": "NodeSynapse", + "NODIDDY": "NODIDDY", "NODIS": "Nodis", "NODL": "Nodle Network", "NOGS": "Noggles", @@ -8527,10 +9934,16 @@ "NOIZ": "NOIZ", "NOKA": "Noka Solana AI", "NOKU": "NOKU Master token", + "NOKUV1": "NOKU Master token v1", "NOLA": "Nola", "NOM": "Finom NOM Token", + "NOMNOM": "nomnom", + "NOMOX": "NOMOEX Token", "NONE": "None Trading", "NOO": "Noocoin", + "NOOB": "Blast Royale", + "NOODS": "Noods", + "NOOOO": "NOOOO", "NOOT": "NOOT (Ordinals)", "NOR": "Noir", "NORA": "SnowCrash Token", @@ -8541,7 +9954,11 @@ "NOSN": "nOS", "NOSO": "Noso", "NOT": "Notcoin", + "NOTAI": "NOTAI", + "NOTC": "NOT", + "NOTDOG": "NOTDOG", "NOTE": "Notional Finance", + "NOTECANTO": "Note", "NOTHING": "NOTHING", "NOTINU": "NOTCOIN INU", "NOV": "Novara Calcio Fan Token", @@ -8550,7 +9967,9 @@ "NOX": "NITRO", "NOXB": "Noxbox", "NPAS": "New Paradigm Assets Solution", - "NPC": "NPCcoin", + "NPC": "Non-Playable Coin", + "NPCC": "NPCcoin", + "NPCS": "Non-Playable Coin Solana", "NPER": "NPER", "NPICK": "NPICK BLOCK", "NPLC": "Plus Coin", @@ -8569,14 +9988,14 @@ "NRGY": "NRGY Defi", "NRK": "Nordek", "NRM": "Neuromachine", - "NRN": "Doc.ai Neuron", + "NRN": "Neuron", "NRO": "Neuro", "NRP": "Neural Protocol", "NRS": "NoirShares", "NRV": "Nerve Finance", "NRVE": "Narrative", "NRX": "Neironix", - "NS": "NodeSynapse", + "NS": "SuiNS Token", "NS2DRP": "New Silver Series 2 DROP", "NSBT": "Neutrino Token", "NSD": "Nasdacoin", @@ -8590,7 +10009,10 @@ "NSP": "NOMAD.space", "NSR": "NuShares", "NSS": "NSS Coin", + "NST": "Ninja Squad Token", "NSTE": "NewSolution 2.0", + "NSTK": "Unstake", + "NSTR": "Nostra", "NSUR": "NSUR Coin", "NSURE": "Nsure Network", "NT": "NEXTYPE Finance", @@ -8602,6 +10024,7 @@ "NTG": "NEWTOWNGAMING", "NTK": "Neurotoken", "NTM": "NetM", + "NTMPI": "Neutaro", "NTO": "Neton", "NTR": "Nether", "NTRN": "Neutron", @@ -8617,6 +10040,7 @@ "NUC": "NuCoin", "NUDE": "0xNude", "NUDES": "NUDES", + "NUGGET": "Gegagedigedagedago", "NUKE": "NukeCoin", "NULS": "Nuls", "NUM": "Numbers Protocol", @@ -8626,8 +10050,10 @@ "NUSA": "Nusa", "NUSD": "Nomin USD", "NUT": "Native Utility Token", + "NUTC": "Nutcash", "NUTGV2": "NUTGAIN", - "NUTS": "Squirrel Finance", + "NUTS": "Thetanuts Finance", + "NUTZ": "NUTZ", "NUUM": "MNet", "NUX": "Peanut", "NVA": "Neeva Defi", @@ -8642,9 +10068,10 @@ "NVT": "NerveNetwork", "NVX": "Novax Coin", "NVZN": "INVIZION", - "NWC": "Newscrypto Coin", + "NWC": "Numerico", "NWCN": "NowCoin", "NWG": "NotWifGary", + "NWIF": "neirowifhat", "NWP": "NWPSolution", "NWS": "Nodewaves", "NXC": "Nexium", @@ -8661,6 +10088,7 @@ "NXTI": "NXTI", "NXTT": "Next Earth", "NXTTY": "NXTTY", + "NYA": "Nya", "NYAN": "NyanCoin", "NYANDOGE": "NyanDOGE International", "NYANTE": "Nyantereum International", @@ -8680,6 +10108,7 @@ "NZL": "Zealium", "NZO": "NonZero", "O": "Childhoods End", + "O1INCH": "1inch (Optimism Bridge)", "O3": "O3 Swap", "O4DX": "O4DX", "OAK": "Acorn Collective", @@ -8689,6 +10118,7 @@ "OAT": "OAT Network", "OATH": "OATH Protocol", "OAX": "Oax", + "OB1INCH": "1inch (OmniBridge)", "OBEMA": "burek obema", "OBI": "Orbofi AI", "OBICOIN": "OBI Real Estate", @@ -8697,11 +10127,14 @@ "OBROK": "OBRok", "OBS": "One Basis Cash", "OBSCURE": "Obscurebay", + "OBSI": "Obsidium", "OBSR": "OBSERVER Coin", + "OBSUSHI": "Sushi (OmniBridge)", "OBT": "Oobit", "OBTC": "Obitan Chain", "OBX": "OpenBlox", "OC": "OrangeCoin", + "OCADA": "OCADA.AI", "OCAI": "Onchain AI", "OCAVU": "Ocavu Network Token", "OCB": "BLOCKMAX", @@ -8714,7 +10147,10 @@ "OCICAT": "OciCat", "OCL": "Oceanlab", "OCN": "Odyssey", + "OCO": "Owners Casino Online", "OCP": "Omni Consumer Protocols", + "OCPR": "OC Protocol", + "OCRV": "Curve DAO Token (OmniBridge)", "OCT": "Octopus Network", "OCTA": "OctaSpace", "OCTAGON": "POLYDeFI", @@ -8722,10 +10158,11 @@ "OCTAX": "OctaX", "OCTI": "Oction", "OCTO": "OctoFi", - "OCTOC": "OctoCoin", + "OCTOCOIN": "Octocoin", "OCTOIN": "Octoin Coin", "OCW": "Online Cold Wallet", "OCX": "Original Crypto Coin", + "ODAI": "Dai (Optimism Bridge)", "ODC": "Overseas Direct Certification", "ODDZ": "Oddz", "ODE": "ODEM", @@ -8747,7 +10184,10 @@ "OG": "OG Fan Token", "OGCINU": "The OG Cheems Inu", "OGD": "OLYMPIC GAMES DOGE", + "OGGIE": "Oggie", "OGGY": "Oggy Inu", + "OGLG": "OGLONG", + "OGM": "OG Mickey", "OGN": "Origin Protocol", "OGO": "Origo", "OGOD": "GOTOGOD", @@ -8762,15 +10202,19 @@ "OHANDY": "Orbit Bridge Klaytn Handy", "OHM": "Olympus", "OHMV2": "Olympus v2", + "OHNO": "Oh no", + "OHNOGG": "OHNHO (ohno.gg)", "OHO": "OHO", "OICOIN": "Osmium Investment Coin", "OIL": "Oiler", "OILD": "OilWellCoin", + "OILX": "OilX Token", "OIN": "OIN Finance", "OIO": "Online", "OJA": "Ojamu", "OJX": "Ojooo", "OK": "OKCash", + "OKANE": "OKANE", "OKAYEG": "Okayeg", "OKB": "OKB", "OKG": "Ookeenga", @@ -8780,8 +10224,11 @@ "OKS": "Oikos", "OKSE": "Okse", "OKT": "OKT Chain", + "OL": "Open Loot", + "OLAF": "Olaf Token", "OLAND": "Oceanland", "OLAS": "Autonolas", + "OLD": "Old Trump", "OLDSF": "OldSafeCoin", "OLE": "OpenLeverage", "OLEA": "Olea Token", @@ -8793,6 +10240,7 @@ "OLXA": "OLXA", "OLY": "Olyseum", "OLYMP": "OlympCoin", + "OLYMPE": "OLYMPÉ", "OM": "MANTRA", "OMA": "OmegaCoin", "OMAX": "Omax", @@ -8806,12 +10254,15 @@ "OMI": "ECOMI", "OMIC": "Omicron", "OMIKAMI": "Amaterasu Omikami", + "OMIX": "Omix", "OMMI": "Ommniverse", - "OMNI": "Omni", - "OMNIA": "OmniaVerse", + "OMNI": "Omni Network", + "OMNIA": "OMNIA Protocol", + "OMNIAV1": "OmniaVerse v1", + "OMNIAV2": "OmniaVerse", "OMNIC": "OmniCat", "OMNICRON": "OmniCron", - "OMNINET": "Omni Network", + "OMNILAYER": "Omni", "OMNIR": "Omni Real Estate Token", "OMNIX": "OmniBotX", "OMNOM": "Doge Eat Doge", @@ -8819,9 +10270,11 @@ "OMT": "Mars Token", "OMV1": "OM Token (v1)", "OMX": "Project Shivom", + "OMZ": "Open Meta City", "ON": "OFIN Token", "ONAM": "ONAM", "ONC": "One Cash", + "ONCH": "OnchainPoints.xyz", "ONDO": "Ondo", "ONE": "Harmony", "ONES": "OneSwap DAO", @@ -8830,6 +10283,8 @@ "ONG": "SoMee.Social", "ONGAS": "Ontology Gas", "ONI": "ONINO", + "ONIG": "Onigiri", + "ONIGIRI": "Onigiri The Cat", "ONION": "DeepOnion", "ONIT": "ONBUFF", "ONL": "On.Live", @@ -8844,9 +10299,11 @@ "ONUS": "ONUS", "ONX": "Onix", "OOE": "OpenOcean", + "OOFP": "OOFP", "OOGI": "OOGI", "OOKI": "Ooki", "OOKS": "Onooks", + "OOM": "OomerBot", "OORC": "Orbit Bridge Klaytn Orbit Chain", "OORT": "OORT", "OOT": "Utrum", @@ -8855,6 +10312,7 @@ "OPA": "Option Panda Platform", "OPAIG": "OvalPixel", "OPC": "OP Coin", + "OPCA": "OP_CAT(BIP-420)", "OPCAT": "OPCAT", "OPCT": "Opacity", "OPEN": "Open Custody Protocol", @@ -8865,6 +10323,7 @@ "OPENP": "Open Platform", "OPENRI": "Open Rights Exchange", "OPENSOURCE": "Open Source Network", + "OPENW": "OpenWorld", "OPENX": "OpenSwap Optimism Token", "OPEPE": "Optimism PEPE", "OPES": "Opes", @@ -8880,23 +10339,30 @@ "OPS": "Octopus Protocol", "OPSC": "OpenSourceCoin", "OPSEC": "OpSec", + "OPSECV1": "OpSec v1", + "OPSV1": "Octopus Protocol v1", + "OPSV2": "Octopus Protocol v2", "OPT": "Opus", "OPTA": "Opta Global", "OPTC": "Open Predict Token", "OPTCM": "Optimus", "OPTI": "Optimus AI", "OPTIG": "Catgirl Optimus", + "OPTIM": "Optimus X", "OPTIMOUSE": "Optimouse", "OPTION": "OptionCoin", "OPU": "Opu Coin", "OPUL": "Opulous", + "OPUS": "Opus", "OPV": "OpenLive NFT", "OPXVEVELO": "OpenX Locked Velo", + "ORA": "Oracolxor", "ORACLE": "Oracle AI", "ORACLECHAIN": "OracleChain", "ORACUL": "Oracul Ai", "ORAI": "Oraichain Token", "ORAIX": "OraiDEX", + "ORANGE": "Annoying Orange", "ORAO": "ORAO Network", "ORARE": "OneRare", "ORB": "KlayCity ORB", @@ -8910,9 +10376,11 @@ "ORC": "Orbit Chain", "ORCA": "Orca", "ORD": "ordinex", + "ORDER": "Orderly Network", "ORDI": "Ordinals ", "ORDI2": "ORDI 2.0", "ORDIFI": "OrdinalsFi", + "ORDIN": "ORDINAL HODL MEME", "ORDS": "Ordiswap", "ORE": "Galactrum", "OREO": "OreoFi", @@ -8923,9 +10391,11 @@ "ORI": "Origami", "ORIGIN": "Origin Foundation", "ORION": "Orion Money", + "ORKL": "Orakler", "ORLY": "OrlyCoin", "ORM": "ORIUM", "ORME": "Ormeus Coin", + "ORMO": "Ormolus", "ORN": "Orion Protocol", "ORNJ": "Orange", "ORO": "Operon Origins", @@ -8942,6 +10412,7 @@ "OSA": "OSA Token", "OSAK": "Osaka Protocol", "OSC": "iOscar", + "OSCAR": "OSCAR", "OSEA": "Omnisea", "OSEAN": "OSEAN", "OSETH": "StakeWise Staked ETH", @@ -8952,10 +10423,12 @@ "OSK": "OSK", "OSKDAO": "OSK DAO", "OSL": "OSL AI", + "OSMI": "OSMI", "OSMO": "Osmosis", "OSQTH": "Opyn Squeeth", "OSS": "OSSChain", "OST": "OST", + "OSUSHI": "Sushi (Optimism Bridge)", "OSWAP": "OpenSwap", "OT": "Onchain Trade", "OTB": "OTCBTC Token", @@ -8973,6 +10446,7 @@ "OUSD": "Origin Dollar", "OUSDC": "Orbit Bridge Klaytn USDC", "OUSE": "OUSE Token", + "OUSG": "OUSG", "OUT": "Netscouters", "OVC": "OVCODE", "OVERLORD": "Overlord", @@ -8984,6 +10458,7 @@ "OWL": "OWL Token", "OWN": "Ownly", "OWNDATA": "OWNDATA", + "OWO": "SoMon", "OX": "Open Exchange Token", "OXAI": "OxAI.com", "OXB": "Oxbull Tech", @@ -9004,7 +10479,9 @@ "OZMPC": "Ozempic", "OZO": "Ozone Chain", "OZONE": "Ozone metaverse", + "OZONEC": "Ozonechain", "OZP": "OZAPHYRE", + "P": "PUPS•WORLD•PEACE", "P202": "Project 202", "P2PS": "P2P Solutions Foundation", "P3D": "3DPass", @@ -9014,8 +10491,10 @@ "PABLO": "PABLO DEFI", "PAC": "PacMoon", "PACE": "3space Art", + "PACK": "HashPack", "PACM": "Pacman Blastoff", "PACMAN": "Pac Man", + "PACO": "Paco", "PACOCA": "Pacoca", "PACP": "PAC Protocol", "PACT": "impactMarket", @@ -9031,6 +10510,7 @@ "PAK": "Pakcoin", "PAL": "PolicyPal Network", "PALAI": "PaladinAI", + "PALE": "Palette", "PALET": "Palette", "PALG": "PalGold", "PALLA": "Pallapay", @@ -9041,26 +10521,34 @@ "PAM": "PAM", "PAMBI": "Pambicoin", "PAMP": "PAMP Network", - "PAN": "Pantos", + "PAN": "Pankito", "PAND": "Panda Finance", "PANDA": "PandaDAO", "PANDAI": "PandAI", + "PANDAS": "Panda Swap", + "PANDE": "Pande", "PANDO": "Pando", "PANDOP": "PandoProject", "PANDORA": "Pandora", "PANGEA": "PANGEA", "PANIC": "PanicSwap", "PANO": "PanoVerse", + "PANTOS": "Pantos", + "PAO": "South Pao", "PAPA": "Papa Bear", "PAPADOGE": "Papa Doge", + "PAPAT": "PAPA Trump", "PAPER": "Dope Wars Paper", + "PAPERBASE": "Paper", "PAPI": "Papi", + "PAPO": "PAPO NINJA", "PAPPAY": "PAPPAY", "PAPU": "Papu Token", "PAPUSHA": "Papusha", "PAR": "Parachute", "PARA": "Paralink Network", "PARAB": "Parabolic", + "PARAD": "Paradox", "PARADOX": "The Paradox Metaverse", "PARAG": "Paragon Network", "PARAL": "Parallel", @@ -9075,7 +10563,9 @@ "PARLAY": "Parlay", "PARMA": "PARMA Fan Token", "PARQ": "PARQ", + "PARRY": "Parry Parrot", "PART": "Particl", + "PARTY": "Party", "PAS": "Passive Coin", "PASC": "Pascal Coin", "PASG": "Passage", @@ -9085,13 +10575,17 @@ "PATEK": "Silly Patek", "PATEX": "Patex", "PATH": "PathDAO", + "PATRIOT": "Patriot", "PATTON": "Patton", + "PAUL": "Elephant Penguin", "PAVIA": "Pavia", "PAVO": "Pavocoin", "PAW": "PAWSWAP", + "PAWPAW": "PawPaw", "PAWS": "PawStars", "PAWSTA": "dogeatingpasta", "PAWTH": "Pawthereum", + "PAXE": "Paxe", "PAXEX": "PAXEX", "PAXG": "PAX Gold", "PAXU": "Pax Unitas", @@ -9099,6 +10593,7 @@ "PAY": "TenX", "PAYB": "Paybswap", "PAYCON": "Paycon", + "PAYD": "PAYD", "PAYN": "PayNet Coin", "PAYP": "PayPeer", "PAYS": "Payslink", @@ -9108,6 +10603,7 @@ "PAZZI": "Paparazzi", "PBAR": "Pangolin Hedera", "PBASE": "Polkabase", + "PBB": "PEPE BUT BLUE", "PBC": "PabyosiCoin", "PBET": "PBET", "PBIRB": "Parrotly", @@ -9117,7 +10613,9 @@ "PBR": "PolkaBridge", "PBRV1": "PolkaBridge v1", "PBT": "Primalbase", + "PBTC": "pTokens BTC", "PBTC35A": "pBTC35A", + "PBTCV1": "pTokens BTC v1", "PBUX": "Playbux", "PBX": "Probinex", "PBXV1": "Probinex v1", @@ -9139,43 +10637,58 @@ "PCR": "Paycer Protocol", "PCS": "Pabyosi Coin", "PCSP": "GenomicDao G-Stroke", + "PCW": "Power Crypto World", "PCX": "ChainX", "PD": "PUDEL", "PDA": "PlayDapp", + "PDAI": "Dai (Polygon Portal)", "PDATA": "PDATA", "PDC": "Project Decorum", "PDD": "PDDOLLAR", "PDEX": "Polkadex", "PDF": "Port of DeFi Network", + "PDJT": "President Donald J. Trump", "PDOG": "Polkadog", "PDOGE": "PolkaDoge", "PDRAGON": "Phoenix Dragon", "PDRIP": "Pulse Drip", "PDT": "ParagonsDAO", "PDX": "PDX Coin", + "PE": "Pe", "PEA": "Pea Farm", "PEACH": "Based Peaches", "PEACHY": "Peachy", "PEAK": "PEAKDEFI", + "PEAN": "Peanut the Squirrel (peanut-token.xyz)", "PEANIE": "Peanie", + "PEANU": "PEANUT INU", + "PEANUT": "#1 Tiktok Squirrel", + "PEAQ": "peaq", "PEAR": "Pear Swap", "PEARL": "Pearl Finance", "PEAS": "Peapods Finance", + "PEBIRD": "PEPE BIRD", "PEC": "PeaceCoin", "PECL": "PECland", "PED": "PEDRO", "PEDRO": "Pedro The Raccoon", "PEEL": "Meta Apes", + "PEENO": "Peeno", "PEEP": "Peepo", "PEEPA": "Peepa", "PEEPEE": "Peepee", "PEEPO": "PEEPO", + "PEEPOBASE": "Peepo (peepobase.org)", "PEEPS": "The People’s Coin", "PEEZY": "Young Peezy AKA Pepe", "PEFI": "Penguin Finance", "PEG": "PegNet", + "PEGA": "PEGA", + "PEGAMAGA": "Pepe Maga", + "PEGG": "PokPok Golden Egg", "PEGS": "PegShares", - "PEIPEI": "PEIPEI", + "PEIPEI": "PeiPei", + "PEIPEICN": "PEIPEI", "PEKA": "PEKA", "PEKC": "Peacock Coin", "PEKINU": "PEKI INU", @@ -9183,22 +10696,30 @@ "PEL": "Propel Token", "PELF": "PELFORT", "PEM": "Pembrock", + "PEME": "PEME", "PENC": "PenCoin", "PENDLE": "Pendle", + "PENDY": "Pendy", "PENG": "Peng", "PENGCOIN": "PENG", + "PENGU": "Pudgy Penguins", + "PENGUI": "Penguiana", "PENGYX": "PengyX", "PENIS": "PenisGrow", + "PENJ": "Penjamin Blinkerton", "PENP": "Penpie", "PENR": "Penrose Finance", "PENTA": "Penta", + "PEON": "Peon", "PEOPLE": "ConstitutionDAO", "PEOSONE": "pEOS", "PEP": "Pepechain", "PEPA": "Pepa Inu", + "PEPAY": "PEPAY", "PEPC": "Pepe Classic", "PEPE": "Pepe", "PEPE2": "Pepe 2.0", + "PEPE2024": "Olympic Pepe 2024", "PEPE20V1": "Pepe 2.0 v1", "PEPEA": "Pepeandybrettlandwolf", "PEPEAI": "Pepe Analytics", @@ -9206,12 +10727,14 @@ "PEPEB": "PEPEBOMB", "PEPEBNB": "Pepe The Frog", "PEPEBRC": "PEPE (Ordinals)", + "PEPEBSC": "Pepe Coin", "PEPEBURN": "Pepeburn", "PEPEC": "Pepe Chain", "PEPECASH": "Pepe Cash", "PEPECAT": "PEPE CAT", "PEPECEO": "REAL PEPE CEO", "PEPECHAIN": "PEPE Chain", + "PEPECO": "PEPE COIN BSC", "PEPECOIN": "PepeCoin", "PEPED": "PepeDAO Coin", "PEPEDAO": "PEPE DAO", @@ -9227,17 +10750,21 @@ "PEPEGRINCH": "Pepe Grinch", "PEPEINU": "PEPE inu", "PEPEKING": "PEPEKING", + "PEPEKRC20": "PEPE KRC20", "PEPELON": "Pepelon", "PEPEMAGA": "Trump Pepe", "PEPEMO": "PepeMo", "PEPEMOON": "PEPEMOON", + "PEPEOFSOL": "Pepe of Solana", "PEPEPI": "PEPEPi", "PEPER": "Baby Pepe", "PEPERA": "PEPERA", "PEPESOL": "PEPE SOL", + "PEPESOLCTO": "Pepe (pepesolcto.vip)", "PEPESORA": "Pepe Sora AI", "PEPESWAP": "PEPE Swap", "PEPET": "PepeTrump", + "PEPETR": "PEPE TREMP", "PEPEW": "PEPEPOW", "PEPEWIFHAT": "Pepewifhat", "PEPEWO": "PEPE World", @@ -9252,6 +10779,7 @@ "PEPPA": "PEPPA", "PEPPER": "Pepper Token", "PEPS": "PEPS Coin", + "PEPU": "Pepe Unchained", "PEPURAI": "PEPURAI", "PEPVERS": "PepVerse", "PEPY": "Pepy", @@ -9268,7 +10796,10 @@ "PESA": "Credible", "PESHI": "PESHI", "PESOBIT": "PesoBit", + "PESTO": "Pesto the Baby King Penguin", "PET": "Hello Pets", + "PETE": "PETE", + "PETERTODD": "Peter Todd", "PETF": "PEPE ETF", "PETG": "Pet Games", "PETH": "pETH", @@ -9293,7 +10824,7 @@ "PGEN": "Polygen", "PGF7T": "PGF500", "PGL": "Prospectors", - "PGN": "Pigeoncoin", + "PGN": "Paragon", "PGOLD": " Polkagold", "PGPT": "PrivateAI", "PGROK": "Papa Grok", @@ -9308,39 +10839,49 @@ "PHAUNTEM": "Phauntem", "PHB": "Phoenix Global [v2]", "PHBD": "Polygon HBD", - "PHC": "Profit Hunters Coin", "PHCR": "PhotoChromic", + "PHEN": "Phenx", + "PHEX": "HEX (Polygon Portal)", "PHI": "PHI Token", "PHIBA": "Papa Shiba", "PHIGOLD": "PhiGold Coin", + "PHIL": "Philtoken", "PHL": "Philcoin", "PHM": "Phomeum", + "PHMN": "POSTHUMAN", "PHN": "Phayny", "PHNX": "PhoenixDAO", "PHO": "Photon", + "PHOENIX": "Phoenix Finance", "PHONON": "Phonon DAO ", "PHOON": "Typhoon Cash", "PHORE": "Phore", "PHR": "Phreak", + "PHRYG": "PHRYGES", "PHRYGE": "PHRYGES", + "PHRYGES": "The Phryges", "PHS": "PhilosophersStone", "PHT": "Photon Token", "PHTC": "Photochain", "PHTR": "Phuture", + "PHUN": "PHUNWARE", "PHV": "PATHHIVE", - "PHX": "Phoenix Finance", "PI": "Plian", "PIA": "Olympia AI", "PIAS": "PIAS", "PIB": "Pibble", "PICA": "PicaArtMoney", + "PICKL": "PICKLE", "PICKLE": "Pickle Finance", "PICO": "PicoGo", + "PICOLO": "PICOLO", "PIE": "Persistent Information Exchange", + "PIERRE": "sacré bleu", "PIF": "Pepe Wif Hat", "PIG": "Pig Finance", "PIGE": "Pige", "PIGEON": "Pigeon In Yellow Boots", + "PIGEONC": "Pigeoncoin", "PIGGY": "Piggy", "PIGGYCOIN": "Piggy Coin", "PIGONK": "PIGONK", @@ -9348,18 +10889,24 @@ "PIIN": "piin (Ordinals)", "PIKA": "Pikaboss", "PIKACHU": "Pikachu Inu", + "PIKACRYPTO": "Pika", + "PIKAM": "Pikamoon", + "PIKE": "Pike Token", "PIKO": "Pinnako", "PILOT": "Unipilot", + "PIM": "PIM", "PIN": "Pin", "PINCHI": "Da Pinchi", "PINE": "Pine", "PINETWORKDEFI": "Pi Network DeFi", "PING": "CryptoPing", - "PINK": "PinkCoin", + "PINK": "PINK - The Panther", + "PINKCOIN": "PinkCoin", "PINKSALE": "PinkSale", "PINKX": "PantherCoin", "PINMO": "Pinmo", "PINO": "Pinocchu", + "PINS": "PINs Network Token", "PINU": "Piccolo Inu", "PINU100X": "Pi INU 100x", "PIO": "Pioneershares", @@ -9367,9 +10914,13 @@ "PIPA": "Pipa Coin", "PIPI": "Pippi Finance", "PIPL": "PiplCoin", + "PIPO": "Pipo", + "PIPPIN": "pippin", "PIPT": "Power Index Pool Token", "PIRATE": "Pirate Nation", "PIRATECASH": "PirateCash", + "PIRATECASHV1": "PirateCash v1", + "PIRATECASHV2": "PirateCash v2 (PirateCash Telegram bot)", "PIRATECOIN": "Pirate Coin Games", "PIRB": "PIRB", "PIRI": "Pirichain", @@ -9383,6 +10934,8 @@ "PIX": "Lampix", "PIXEL": "Pixels", "PIXELV": "PixelVerse", + "PIXFI": "Pixelverse", + "PIXL": "PIXL", "PIZA": "Half Pizza", "PIZPEPE": "Pepe Pizzeria", "PIZZA": "PizzaSwap", @@ -9406,12 +10959,13 @@ "PLANET": "PLANET", "PLANETCOIN": "PlanetCoin", "PLANETS": "PlanetWatch", + "PLANT": "Plant", "PLASTIK": "Plastiks", "PLAT": "BitGuild PLAT", "PLATC": "PlatinCoin", "PLATINUM": "Platinum", "PLATO": "Plato Game", - "PLAY": "HEROcoin", + "PLAY": "Play Token", "PLAYC": "PlayChip", "PLAYCOIN": "PlayCoin", "PLAYKEY": "Playkey", @@ -9422,7 +10976,9 @@ "PLCUC": "PLC Ultima Classic", "PLD": "Plutonian DAO", "PLE": "Plethori", + "PLEA": "Plearn", "PLEB": "PLEBToken", + "PLEBONBASE": "PLEB", "PLENTY": "Plenty DeFi", "PLEO": "Empleos", "PLERF": "Plerf", @@ -9431,6 +10987,7 @@ "PLG": "Pledgecamp", "PLGR": "Pledge Finance", "PLI": "Plugin", + "PLINK": "Chainlink (Polygon Portal)", "PLM": "Plasmonics", "PLMC": "Polimec", "PLMT": "Pallium", @@ -9453,6 +11010,7 @@ "PLU": "Pluton", "PLUG": "PL^Gnet", "PLUGCN": "Plug Chain", + "PLUME": "Plume", "PLUP": "PoolUp", "PLURA": "PluraCoin", "PLUS1": "PlusOneCoin", @@ -9460,6 +11018,7 @@ "PLX": "PlexCoin", "PLXY": "Plxyer", "PLY": "Aurigami", + "PLYR": "PLYR L1", "PLZ": "PLUNZ", "PMA": "PumaPay", "PMD": "Pandemic Multiverse", @@ -9467,6 +11026,7 @@ "PMEER": "Qitmeer", "PMG": "Pomerium Ecosystem Token", "PMGT": "Perth Mint Gold Token", + "PMKR": "Maker (Polygon Portal)", "PMM": "Perpetual Motion Machine", "PMNT": "Paymon", "PMON": "Polkamon", @@ -9488,6 +11048,10 @@ "PNL": "True PNL", "PNODE": "Pinknode", "PNT": "pNetwork Token", + "PNUT": "Peanut the Squirrel", + "PNUTDOGE": "PNUT DOGE", + "PNUTRUMP": "Peanut Trump", + "PNUTS": "Pnuts for squirrel", "PNX": "PhantomX", "PNY": "Peony Coin", "POA": "Poa Network", @@ -9495,13 +11059,15 @@ "POC": "POC Blockchain", "POCAT": "Polite Cat", "POCC": "POC Chain", + "POCHITA": "Pochita", "POCKET": "XPocket", "POCO": "Pocoland", "POD": "Podo Point", "PODFAST": "PodFast", "PODIUM": "Smart League", "PODO": "Power Of Deep Ocean", - "POE": "Po.et", + "POE": "Portal Network", + "POET": "Po.et", "POG": "PolygonumOnline", "POGAI": "POGAI", "POGS": "POG", @@ -9528,6 +11094,7 @@ "POLKER": "Polker", "POLL": "Pollchain", "POLLUK": "Jasse Polluk", + "POLLUX": "Pollux Coin", "POLNX": "eToro Polish Zloty", "POLO": "NftyPlay", "POLS": "Polkastarter", @@ -9540,34 +11107,46 @@ "POLYX": "Polymesh", "POM": "Proof Of Memes", "PON": "Ponder", + "PONCH": "Ponchiqs", "PONCHO": "Poncho", "POND": "Marlin", "PONGO": "Pongo", + "PONK": "PONK", "PONKE": "Ponke", "PONKEBNB": "Ponke BNB", + "PONKEI": "Chinese Ponkei the Original", "PONYO": "Ponyo Impact", "PONZI": "Ponzi", + "PONZIO": "Ponzio The Cat", "PONZU": "Ponzu Inu", "POO": "POOMOON", + "POOC": "Poo Chi", "POOCOIN": "PooCoin", "POODL": "Poodl", "POODOGE": "Poo Doge", "POOH": "POOH", + "POOKU": "Pooku", "POOL": "PoolTogether", "POOLX": "Poolz Finance", "POOLXT": "Pool-X", "POOLZ": "Poolz Finance", "POOP": "Poopsicle", + "POOPC": "Poopcoin", "POOWEL": "Joram Poowel", - "POP": "PopularCoin", - "POP!": "POP", + "POP": "Popcoin", "POPC": "PopChest", "POPCAT": "Popcat", + "POPCO": "Popcorn", "POPDOG": "PopDog", - "POPE": "Popecoin", + "POPE": "PopPepe", + "POPECOIN": "Popecoin", + "POPEPE": "POPEPE", + "POPGOAT": "Goatseus Poppimus", "POPK": "POPKON", "POPO": "popo", + "POPOETH": "POPO", "POPSICLE": "Popsicle Finance", + "POPULARCOIN": "PopularCoin", "POR": "Portugal National Team Fan Token", "PORA": "PORA AI", "PORK": "PepeFork", @@ -9594,17 +11173,22 @@ "POTS": "Moonpot", "POTTER": "POTTER", "POU": "Pou", + "POUPE": "Poupe", + "POUW": "Pouwifhat", "POW": "PowBlocks", "POWELL": "Jerome Powell", "POWER": "UniPower", "POWR": "Power Ledger", "POWSCHE": "Powsche", + "POX": "Monkey Pox", + "POZO": "Pozo Coin", "PP": "ProducePay Chain", "PPAD": "PlayPad", "PPALPHA": "Phoenix Protocol", "PPAY": "Plasma Finance", "PPBLZ": "Pepemon Pepeballs", "PPC": "PeerCoin", + "PPCOIN": "Project Plutus", "PPFT": "Papparico Finance", "PPI": "Primpy", "PPIZZA": "P Pizza", @@ -9630,6 +11214,7 @@ "PRDX": "ParamountDax Token", "PRE": "Presearch", "PREAI": "Predict Crypto", + "PREC": "Precipitate.AI", "PRED": "Predictcoin", "PREM": "Premium", "PREME": "PREME Token", @@ -9649,6 +11234,7 @@ "PRIME": "Echelon Prime", "PRIMECHAIN": "PrimeChain", "PRIMEETH": "Prime Staked ETH", + "PRIN": "Print The Pepe", "PRINT": "Printer.Finance", "PRINTERIUM": "Printerium", "PRINTS": "FingerprintsDAO", @@ -9663,7 +11249,10 @@ "PROB": "ProBit Token", "PROC": "ProCurrency", "PROD": "Productivist", + "PROFITHUNTERS": "Profit Hunters Coin", "PROGE": "Protector Roge", + "PROJECT89": "Project89", + "PROLIFIC": "Prolific Game Studio", "PROM": "Prometeus", "PROOF": "PROVER", "PROP": "Propeller", @@ -9673,6 +11262,7 @@ "PROPS": "Propbase", "PROPSPROJECT": "Props", "PROS": "Prosper", + "PROSP": "Prospective", "PROT": "PROT", "PROTEO": "Proteo DeFi", "PROTO": "Protocon", @@ -9684,6 +11274,7 @@ "PRPS": "Purpose", "PRPT": "Purple Token", "PRQ": "PARSIQ", + "PRRR": "Cats Are Liquidity", "PRS": "PressOne", "PRT": "Parrot Protocol", "PRTC": "Protectorate Protocol", @@ -9694,6 +11285,7 @@ "PRVS": "Previse", "PRX": "Parex", "PRXY": "Proxy", + "PRXYV1": "Proxy v1", "PRY": "PRIMARY", "PRZS": "Perezoso", "PS1": "POLYSPORTS", @@ -9717,6 +11309,7 @@ "PSTAKE": "pSTAKE Finance", "PSTN": "Piston", "PSUB": "Payment Swap Utility Board", + "PSUSHI": "Sushi (Polygon Portal)", "PSWAP": "Polkaswap", "PSY": "PsyOptions", "PSYOP": "PSYOP", @@ -9741,40 +11334,60 @@ "PTU": "Pintu Token", "PTX": "PlatinX", "PUCA": "Puss Cat", + "PUCCA": "PUCCA", "PUFETH": "pufETH", - "PUFF": "Puff", + "PUFF": "Puff The Dragon", + "PUFFCOIN": "Puff", + "PUFFER": "Puffer", "PUFFIN": "Puffin Global", - "PUFFT": "Puff The Dragon", + "PUFFV1": "Puff The Dragon v1", + "PUFFY": "Puffy", "PUGAI": "PUG AI", + "PUGDOG": "PUGDOG", + "PUGGY": "PUGGY Coin", "PUGL": "PugLife", + "PUGWIF": "PUGWIFHAT", + "PUL": "PulseTrailerPark", "PULI": "Puli", "PULSE": "Pulse", "PUMA": "Puma", "PUMBAA": "Pumbaa", "PUMLX": "PUMLx", "PUMP": "PUMP", + "PUMPBTC": "pumpBTC", + "PUMPFUNBAN": "Pump Fun Ban", + "PUMPTRUMP": "PUMP TRUMP", "PUN": "Punkko", "PUNCH": "PUNCHWORD", "PUNDIX": "Pundi X", "PUNDU": "Pundu", + "PUNGU": "PUNGU", + "PUNI": "Uniswap Protocol Token (Polygon Portal)", "PUNK": "PunkCity", "PUNKAI": "PunkAI", "PUNKV": "Punk Vault (NFTX)", "PUP": "Puppy Coin", "PUPA": "PupaCoin", "PUPPER": "Pupper", + "PUPPET": "Puppet", + "PUPPETH": "Puppeth", "PUPPETS": "Puppets Coin", "PUPPIES": "I love puppies", "PUPS": "PUPS (Ordinals)", + "PUPU": "Pepe's Dog", "PURA": "Pura", "PURE": "Puriever", "PUREALT": "Pure", - "PURR": "SpartaCats", + "PURPE": "Purple Pepe", + "PURR": "Purr", + "PURRC": "Purrcoin", "PURSE": "Pundi X PURSE", "PUS": "Pussy Cat", "PUSD": "PegsUSD", + "PUSDC": "USD Coin (Polygon Portal)", "PUSH": "Ethereum Push Notification Service", "PUSHI": "Pushi", + "PUSS": "PussFi", "PUSSY": "Pussy Financial", "PUSSYINBIO": "Pussy In Bio", "PUT": "PutinCoin", @@ -9790,7 +11403,8 @@ "PWH": "pepewifhat", "PWINGS": "JetSwap pWings", "PWON": "Personal Wager", - "PWR": "PWR Coin", + "PWR": "MaxxChain", + "PWRC": "PWR Coin", "PWT": "PANDAINU", "PX": "PXcoin", "PXB": "PixelBit", @@ -9818,7 +11432,9 @@ "PYRV1": "Vulcan Forged v1", "PYT": "Payther", "PYTH": "Pyth Network", + "PYTHIA": "Pythia", "PYUSD": "PayPal USD", + "PZETH": "pzETH", "PZM": "Prizm", "PZP": "PlayZap", "PZT": "Pizon", @@ -9850,6 +11466,8 @@ "QDT": "QCHAIN", "QDX": "Quidax", "QFI": "QFinance", + "QGOLD": "Quorium", + "QGOV": "Q Protocol", "QI": "BENQI", "QIE": "QI Blockchain", "QINGWA": "ShangXin QingWa", @@ -9860,6 +11478,7 @@ "QLINDO": "QLINDO", "QLIX": "QLix", "QMALL": "QMALL TOKEN", + "QMV": "Qumva Network", "QNT": "Quant", "QNTR": "Quantor", "QNTU": "Quanta", @@ -9884,25 +11503,34 @@ "QSR": "Quasar", "QSWAP": "Quantum Network", "QTC": "Qitcoin", + "QTCC": "Quick Transfer coin", "QTCON": "Quiztok", + "QTDAO": "Quantum DAO", "QTF": "Quantfury", "QTK": "QuantCheck", "QTL": "Quatloo", + "QTLX": "Quantlytica", "QTO": "QToken", "QTUM": "QTUM", "QTZ": "Quartz", "QUA": "Quantum Tech", + "QUAC": "QUACK", "QUACK": "Rich Quack", "QUAM": "Quam Network", + "QUAN": "Quant AI", "QUANT": "Quant Finance", "QUARASHI": "Quarashi Network", "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", "QUICKOLD": "Quickswap", @@ -9931,6 +11559,7 @@ "R4RE": "R4RE Token", "RAB": "Rabbit", "RABB": "Rabbit INU", + "RABBI": "Len \"rabbi\" Sassaman", "RABBIT": "Rabbit Finance", "RABI": "Rabi", "RAC": "RAcoin", @@ -9947,6 +11576,7 @@ "RAFFLES": "Degen Raffles", "RAFL": "RAFL", "RAFT": "Raft", + "RAGDOLL": "Ragdoll", "RAGE": "Rage Fan", "RAI": "Rai Reflex Index", "RAID": "Raid Token", @@ -9956,6 +11586,7 @@ "RAIN": "Rainmaker Games", "RAINBOW": "Rainbow Token", "RAINC": "RainCheck", + "RAINCO": "Rain Coin", "RAINI": "Rainicorn", "RAISE": "Raise Token", "RAIT": "Rabbitgame", @@ -9972,6 +11603,7 @@ "RAP": "Philosoraptor", "RAPDOGE": "RapDoge", "RAPTOR": "Jesus-Raptor", + "RAR": "Rare Pepe", "RARE": "SuperRare", "RARI": "Rarible", "RASTA": "ZionLabs Token", @@ -10003,6 +11635,7 @@ "RBLZ": "RebelSatoshi", "RBN": "Ribbon Finance", "RBNB": "StaFi Staked BNB", + "RBNT": "Redbelly Network", "RBP": "Rare Ball Potion", "RBR": "Ribbit Rewards", "RBRETT": "ROARING BRETT", @@ -10011,6 +11644,7 @@ "RBUNNY": "Rocket Bunny", "RBW": "Crypto Unicorns Rainbow", "RBX": "RabbitX", + "RBXDEFI": "RBX", "RBXS": "RBXSamurai", "RBY": "RubyCoin", "RC": "Russiacoin", @@ -10018,11 +11652,13 @@ "RCC": "Reality Clash", "RCCC": "RCCC", "RCG": "Recharge", + "RCGE": "RCGE", "RCH": "Rich", "RCKT": "RocketSwap", "RCM": "READ2N", "RCN": "Ripio", - "RCOIN": "RCoin", + "RCOIN": "ArCoin", + "RCOINEU": "RCoin", "RCT": "RealChain", "RCX": "RedCrowCoin", "RD": "Round Dollar", @@ -10036,6 +11672,7 @@ "RDNT": "Radiant Capital", "RDNTV1": "Radiant Capital v1", "RDO": "Rodeo Finance", + "RDOG": "Repost Dog", "RDPX": "Dopex Rebate Token", "RDR": "Rise of Defenders", "RDS": "Reger Diamond", @@ -10046,17 +11683,22 @@ "REAL": "RealLink", "REALM": "Realm", "REALMS": "Realms of Ethernity", + "REALP": "Real Pepe", "REALPLATFORM": "REAL", + "REALTRACT": "RealTract", "REALY": "Realy Metaverse", "REAP": "ReapChain", "REAPER": "Grim Finance", "REAU": "Vira-lata Finance", + "REBD": "REBORN", "REBL": "REBL", "REBUS": "Rebuschain", "REC": "Rec Token (REC)", "RECA": "The Resistance Cat", "RECKOON": "Reckoon", "RECOM": "Recom", + "RECORD": "Music Protocol", + "RECT": "ReflectionAI", "RED": "RED TOKEN", "REDC": "RedCab", "REDCO": "Redcoin", @@ -10071,6 +11713,7 @@ "REDO": "Resistance Dog", "REDP": "Red Ponzi Gud", "REDPEPE": "Red Pepe", + "REDTH": "Red The Mal", "REDZILLA": "REDZILLA COIN", "REE": "ReeCoin", "REEE": "REEE", @@ -10085,6 +11728,7 @@ "REGALCOIN": "Regalcoin", "REGEN": "Regen Network", "REGENT": "REGENT COIN", + "REGI": "Resistance Girl", "REHA": "Resistance Hamster", "REHAB": "NFT Rehab", "REI": "REI Network", @@ -10100,28 +11744,35 @@ "REM": "REMME", "REMCO": "Remco", "REME": "REME-Coin", + "REMILIA": " Remilia", "REMIT": "BlockRemit", "REN": "REN", "RENA": "Warena", "RENBTC": "renBTC", "RENC": "RENC", + "RENDER": "Render Network", "RENDOGE": "renDOGE", - "RENE": "Renewable Energy", "RENEC": "RENEC", "RENQ": "Renq Finance", "RENS": "Rens", "RENT": "Rent AI", + "RENTA": "Renta Network", "RENTBE": "Rentberry", "REP": "Augur", + "REPE": "Resistance Pepe", "REPO": "Repo Coin", + "REPUB": "Republican", + "REPUBLICAN": "Republican", "REPUX": "Repux", + "REPV1": "Reputation", "REQ": "Request Network", "RES": "Resistance", "RESCUE": "Rescue", "REST": "Restore", - "RET": "RealTract", + "RET": "Renewable Energy", "RETA": "Realital Metaverse", "RETAIL": "Retail.Global", + "RETARDIA": "RETARDIA", "RETARDIO": "RETARDIO", "RETH": "Rocket Pool ETH", "RETH2": "rETH2", @@ -10132,17 +11783,22 @@ "REV": "Revain", "REV3L": "REV3AL", "REVA": "Revault Network", + "REVAL": "RevaLink Wallet Token", "REVE": "Revenu", "REVO": "Revomon", "REVOAI": "revoAI", + "REVOL": "Revolution", "REVOLAND": "Revoland Governance Token", "REVON": "RevoNetwork", "REVU": "Revuto", "REVV": "REVV", "REW": "Review.Network", + "REWARD": "Rewardable", "REX": "Imbrex", + "REXHAT": "rexwifhat", "REZ": "Renzo", "RF": "Raido Financial", + "RFC": "Royal Finance Coin", "RFCTR": "Reflector.Finance", "RFD": "RefundCoin", "RFDB": "Refund", @@ -10152,6 +11808,7 @@ "RFL": "RAFL", "RFOX": "RedFOX Labs", "RFR": "Refereum", + "RFRM": "Reform DAO", "RFT": "Rangers Fan Token", "RFUEL": "Rio DeFi", "RFX": "Reflex", @@ -10169,18 +11826,21 @@ "RHP": "Rhypton Club", "RIA": "aRIA Currency", "RIB": "Ribus", + "RIBB": "Ribbit", "RIBBIT": "Ribbit", "RIC": "Riecoin", "RICE": "RiceFarm", "RICECOIN": "RiceCoin", "RICH": "Richie", "RICHOFME": "Rich Of Memes", + "RICHR": "RichRabbit", "RICK": "Infinite Ricks", "RICKMORTY": "Rick And Morty", "RIDE": "Holoride", "RIDEMY": "Ride My Car", "RIF": "RIF Token", "RIF3": "MetaTariffv3", + "RIFA": "Rifampicin", "RIFI": "Rikkei Finance", "RIGEL": "Rigel Finance", "RIK": "RIKEZA", @@ -10189,16 +11849,23 @@ "RIMBIT": "Rimbit", "RIN": "Aldrin", "RING": "Darwinia Network", + "RINGA": "Ring AI", + "RINGF": "Ring Financial", "RINGX": "RING X PLATFORM", "RINIA": "Rinia Inu", + "RINO": "Rino", + "RINT": "Rin Tin Tin", + "RINTARO": "Rintaro", "RINU": "Raichu Inu", "RIO": "Realio Network", "RIOT": "Riot Racers", + "RIOV1": "Realio Network v1", "RIP": "Fantom Doge", "RIPAX": "RipaEx", "RIPO": "RipOffCoin", "RIPT": "RiptideCoin", "RIPTO": "RiptoBuX", + "RIS": "Riser", "RISE": "EverRise", "RISEP": "Rise Protocol", "RISEVISION": "Rise", @@ -10209,7 +11876,10 @@ "RIVUS": "RivusDAO", "RIYA": "Etheriya", "RIZE": "Rizespor Token", - "RIZO": "Rizo", + "RIZO": "HahaYes", + "RIZOLOL": "Rizo", + "RIZZ": "Rizz", + "RIZZMAS": "Rizzmas", "RJV": "Rejuve.AI", "RKC": "Royal Kingdom Coin", "RKI": "RAKHI", @@ -10220,7 +11890,9 @@ "RLC": "iExec", "RLM": "MarbleVerse", "RLOOP": "rLoop", + "RLP": "Resolv RLP", "RLT": "Runner Land", + "RLUSD": "Ripple USD", "RLX": "Relex", "RLY": "Rally", "RMATIC": "StaFi Staked MATIC", @@ -10240,6 +11912,7 @@ "RND": "The RandomDAO", "RNDR": "Render Token", "RNDX": "Round X", + "RNEAR": "Near (Rainbow Bridge)", "RNS": "RenosCoin", "RNT": "OneRoot Network", "RNTB": "BitRent", @@ -10252,6 +11925,8 @@ "ROBIN": "Robin of Da Hood", "ROBINH": "ROBIN HOOD", "ROBO": "RoboHero", + "ROBOTA": "TAXI", + "ROBOTAXI": "ROBOTAXI", "ROC": "Rasputin Online Coin", "ROCCO": "Just A Rock", "ROCK": "Bedrock", @@ -10261,10 +11936,12 @@ "ROCKETFI": "RocketFi", "ROCKI": "Rocki", "ROCKY": "Rocky", + "ROCKYCOIN": "ROCKY", "ROCO": "ROCO FINANCE", "RODAI": "ROD.AI", "ROE": "Rover Coin", "ROG": "ROGin AI", + "ROGER": "ROGER", "ROI": "ROIcoin", "ROK": "Rockchain", "ROKM": "Rocket Ma", @@ -10276,6 +11953,7 @@ "RONCOIN": "RON", "ROND": "ROND", "RONIN": "Ronin", + "RONNIE": "Ronnie", "ROO": "Lucky Roo", "ROOBEE": "ROOBEE", "ROOK": "KeeperDAO", @@ -10286,10 +11964,14 @@ "ROOT": "The Root Network", "ROOTCOIN": "RootCoin", "ROOTS": "RootProject", + "ROPIRITO": "Ropirito", "ROS": "ROS Coin", "ROSA": "Rosa Inu", "ROSE": "Oasis Labs", + "ROSEC": "Rosecoin", + "ROSEW": "RoseWifHat", "ROSN": "Roseon Finance", + "ROSS": "Ross Ulbricht", "ROSX": "Roseon", "ROT": "Rotten", "ROTTY": "ROTTYCOIN", @@ -10297,6 +11979,7 @@ "ROUP": "Roup (Ordinals)", "ROUSH": "Roush Fenway Racing Fan Token", "ROUTE": "Router Protocol", + "ROUTEV1": "Router Protocol v1", "ROVI": "ROVI", "ROW": "Rage On Wheels", "ROWAN": "Sifchain", @@ -10310,6 +11993,7 @@ "RPD": "Rapids", "RPEPEc": "RoaringPepe", "RPG": "Rangers Protocol", + "RPGV1": "Rangers Protocol v1", "RPILL": "Red Pill", "RPK": "RepubliK", "RPL": "RocketPool", @@ -10320,9 +12004,11 @@ "RPT": "Rug Proof", "RPTR": "Raptor Finance", "RPUT": "Robin8 Profile Utility Token", + "RPX": "Red Pulse Token", "RPZX": "Rapidz", "RRB": "Renrenbit", "RRC": "Recycling Regeneration Chain", + "RREN": "REN (Rainbow Bridge)", "RRT": "Recovery Right Tokens", "RS": "ReadySwap", "RSC": "ResearchCoin", @@ -10339,18 +12025,24 @@ "RST": "REGA Risk Sharing Token", "RSTK": "Restake Finance", "RSUN": "RisingSun", + "RSUSHI": "Sushi (Rainbow Bridge)", "RSV": "Reserve", + "RSVV1": "Reserve v1", "RSWETH": "Restaked Swell Ethereum", "RT2": "RotoCoin", "RTB": "AB-CHAIN", + "RTBL": "Rolling T-bill", "RTC": "Reltime", + "RTD": "Retard", "RTE": "Rate3", "RTF": "Ready to Fight", "RTH": "Rotharium", "RTK": "RetaFi", "RTM": "Raptoreum", + "RTR": "Restore The Republic", "RTT": "Restore Truth Token", "RU": "RIFI United", + "RUBB": "Rubber Ducky Cult", "RUBCASH": "RUBCASH", "RUBIT": "Rublebit", "RUBX": "eToro Russian Ruble", @@ -10360,17 +12052,22 @@ "RUFF": "Ruff", "RUG": "Rug", "RUGA": "RUGAME", + "RUGPULL": "Captain Rug Pull", "RUGZ": "pulltherug.finance", "RULER": "Ruler Protocol", "RUM": "RUM Pirates of The Arrland Token", "RUN": "Run", "RUNE": "Thorchain", + "RUNEVM": "RUNEVM", + "RUNNER": "Runner", "RUNY": "Runy", "RUP": "Rupee", "RUPX": "Rupaya", + "RURI": "Ruri - Truth Terminal's Crush", "RUSD": "Reflecto USD", "RUSH": "RUSH COIN", "RUSHCMC": "RUSHCMC", + "RUSSELL": "Russell", "RUST": "RustCoin", "RUSTBITS": "Rustbits", "RUTH": "RUTH", @@ -10378,9 +12075,12 @@ "RUX": "Gacrux NFT", "RVC": "Revenue Coin", "RVF": "RocketX exchange", + "RVFV1": "RocketX exchange v1", + "RVFV2": "RocketX exchange v2", "RVL": "Revolotto", "RVLNG": "RevolutionGames", "RVLT": "Revolt 2 Earn", + "RVLTV1": "Revolt 2 Earn v1", "RVM": "Realvirm", "RVN": "Ravencoin", "RVO": "AhrvoDEEX", @@ -10403,23 +12103,27 @@ "RXT": "RIMAUNANGIS", "RYC": "RoyalCoin", "RYCN": "RoyalCoin 2.0", + "RYD": "RYderOSHI", "RYIU": "RYI Unity", - "RYO": "Ryo", + "RYO": "RYO Coin", + "RYOCURRENCY": "Ryo", "RYOMA": "Ryoma", "RYOSHI": "Ryoshis Vision", "RYU": "The Blue Dragon", "RYZ": "Anryze", "RZR": "RazorCoin", "RedFlokiCEO": "Red Floki CEO", + "S": "Sonic Labs", "S2K": "Sports 2K75", "S315": "SWAP315", "S4F": "S4FE", "S8C": "S88 Coin", "SA": "Superalgos", - "SABAI": "Sabai Ecoverse", + "SABAI": "Sabai Protocol", "SABLE": "Sable Finance", "SABR": "SABR Coin", "SAC1": "Sable Coin", + "SAD": "SadCat", "SAF": "Safinus", "SAFE": "Safe", "SAFEBTC": "SafeBTC", @@ -10429,6 +12133,7 @@ "SAFEHAMSTERS": "SafeHamsters", "SAFELIGHT": "SafeLight", "SAFELUNAR": "SafeLunar", + "SAFEM": "SAFEMOON SOLANA", "SAFEMARS": "Safemars", "SAFEMOO": "SafeMoo", "SAFEMOON": "SafeMoon", @@ -10444,6 +12149,7 @@ "SAFUU": "SAFUU", "SAGA": "Saga", "SAGACOIN": "SagaCoin", + "SAGE": "Ceremonies AI", "SAI": "SAI", "SAIL": "SAIL", "SAITA": "SaitaChain", @@ -10452,6 +12158,7 @@ "SAITAMAV1": "Saitama v1", "SAITANOBI": "Saitanobi", "SAITO": "Saito", + "SAIY": "Saiyan PEPE", "SAK": "SharkCoin", "SAKAI": "Sakai Vault", "SAKATA": "Sakata Inu", @@ -10459,24 +12166,29 @@ "SAL": "SalPay", "SALD": "Salad", "SALE": "DxSale Network", + "SALL": "Sallar", "SALLY": "SALAMANDER", "SALMAN": "Mohameme Bit Salman", "SALMON": "Salmon", "SALT": "Salt Lending", "SAM": "Samsunspor Fan Token", "SAMA": "Moonsama", + "SAMMY": "Samoyed", "SAMO": "Samoyedcoin", "SAN": "Santiment", "SANA": "Storage Area Network Anywhere", + "SANCHO": "Sancho", "SAND": "The Sandbox", "SANDG": "Save and Gain", "SANDWICH": " Sandwich Network", "SANDY": "Sandy", "SANI": "Sanin Inu", + "SANIN": "Sanin", "SANJI": "Sanji Inu", "SANSHU": "Sanshu Inu", "SANTA": "SANTA CHRISTMAS INU", "SANTAGROK": "Santa Grok", + "SANTAHAT": "SANTA HAT", "SANTOS": "Santos FC Fan Token", "SAO": "Sator", "SAP": "SwapAll", @@ -10487,10 +12199,14 @@ "SARCO": "Sarcophagus", "SAROS": "Saros", "SAS": "Stand Share", + "SASHA": "SASHA CAT", "SASHIMI": "Sashimi", "SAT": "Satisfaction Token", "SAT2": "Saturn2Coin", "SATA": "Signata", + "SATAN": "MrBeast's Cat", + "SATO": "Atsuko Sato", + "SATORI": "Satori Network", "SATOSHINAKAMOTO": "Satoshi Nakamoto", "SATOX": "Satoxcoin", "SATOZ": "Satozhi", @@ -10505,21 +12221,25 @@ "SAUDIPEPE": "SAUDI PEPE", "SAUDISHIB": "Saudi Shiba Inu", "SAUNA": "SaunaFinance Token", + "SAV": "Save America", "SAV3": "SAV3", "SAVG": "SAVAGE", "SAVM": "SatoshiVM", + "SAY": "SAY Coin", "SB": "DragonSB", "SBA": "simplyBrand", "SBABE": "SNOOPYBABE", "SBAE": "Salt Bae For The People", "SBC": "StableCoin", "SBCC": "Smart Block Chain City", + "SBCH": "Smart Bitcoin Cash", "SBE": "Sombe", "SBEFE": "BEFE", "SBET": "SBET", "SBF": "SBF In Jail", "SBGO": "Bingo Share", "SBIO": "Vector Space Biosciences, Inc.", + "SBNB": "Binance Coin (SpookySwap)", "SBOX": "SUIBOXER", "SBR": "Saber", "SBRT": "SaveBritney", @@ -10528,7 +12248,7 @@ "SBTC": "Super Bitcoin", "SC": "Siacoin", "SC20": "Shine Chain", - "SCA": "SiaClassic", + "SCA": "Scallop", "SCALE": "Scalia Infrastructure", "SCAM": "Scam Coin", "SCAMP": "ScamPump", @@ -10537,17 +12257,21 @@ "SCAPE": "Etherscape", "SCAR": "Velhalla", "SCARAB": "Scarab Finance", + "SCARCITY": "SCARCITY", "SCASH": "SpaceCash", "SCAT": "Sad Cat Token", "SCC": "StockChain Coin", "SCCP": "S.C. Corinthians Fan Token", "SCDS": "Shrine Cloud Storage Network", + "SCF": "Smoking Chicken Fish", "SCFX": "Shui CFX", "SCH": "SoccerHub", "SCHO": "Scholarship Coin", "SCHR": "Schrodinger", + "SCHRO": "Schrodinger", "SCHRODI": "Schrödi", "SCIA": "Stem Cell", + "SCIHUB": "sci-hub", "SCIVIVE": "sciVive", "SCIX": "Scientix", "SCK": "Space Corsair Key", @@ -10565,6 +12289,7 @@ "SCOR": "Scorista", "SCORE": "Scorecoin", "SCOT": "Scotcoin", + "SCOTT": "Scottish", "SCOTTY": "Scotty Beam", "SCP": "ScPrime", "SCPT": "Script Network", @@ -10577,14 +12302,19 @@ "SCRIV": "SCRIV", "SCRL": "Scroll", "SCRM": "Scorum", + "SCROLL": "Scroll Network", + "SCROLLY": "Scrolly the map", "SCROOGE": "Scrooge", "SCRPT": "ScryptCoin", "SCRT": "Secret", + "SCRVUSD": "Savings crvUSD", "SCRYPTA": "Scrypta", + "SCRYPTTOKEN": "ScryptToken", "SCS": "Solcasino Token", "SCSX": "Secure Cash", - "SCT": "ScryptToken", + "SCT": "SuperCells", "SCTK": "SharesChain", + "SCUBA": "Scuba Dog", "SCY": "Synchrony", "SD": "Stader", "SDA": "SDChain", @@ -10592,8 +12322,11 @@ "SDAO": "SingularityDAO", "SDC": "ShadowCash", "SDCRV": "Stake DAO CRV", + "SDEUSD": "Staked deUSD", "SDEX": "SmarDex", "SDL": "Saddle Finance", + "SDM": "Shieldeum", + "SDME": "SDME", "SDN": "Shiden Network", "SDO": "TheSolanDAO", "SDOG": "Small Doge", @@ -10606,7 +12339,8 @@ "SDT": "TerraSDT", "SDUSD": "SDUSD", "SDX": "SwapDEX", - "SEA": "Second Exchange Alliance", + "SEAGULL": "SEAGULL SAM", + "SEAIO": "Second Exchange Alliance", "SEAL": "Seal Finance", "SEALN": "Seal Network", "SEAM": "Seamless Protocol", @@ -10632,26 +12366,38 @@ "SEG": "Solar Energy", "SEI": "Sei", "SEILOR": "Kryptonite", + "SEIYAN": "Seiyan Token", "SEKAI": "Sekai DAO", + "SEKOIA": "sekoia by Virtuals", "SEL": "SelenCoin", "SELF": "SELFCrypto", + "SELFI": "SelfieSteve", "SELFIE": "SelfieDogCoin", + "SELFIEC": "Selfie Cat", + "SELFT": "SelfToken", "SELLC": "Sell Token", "SEM": "Semux", "SEN": "Sentaro", "SENATE": "SENATE", "SENC": "Sentinel Chain", "SEND": "Social Send", + "SENDOR": "Sendor", "SENK": "Senk", "SENNO": "SENNO", "SENSE": "Sense Token", "SENSI": "Sensi", "SENSO": "SENSO", "SENSOR": "Sensor Protocol", + "SENSOV1": "SENSO v1", + "SENSUS": "Sensus", "SENT": "Sentinel", + "SENTAI": "SentAI", + "SENTI": "Sentinel Bot Ai", + "SENTR": "Sentre Protocol", "SEON": "Seedon", "SEOR": "SEOR Network", "SEOS": "Smart Eye Operating System", + "SEP": "Smart Energy Pay", "SEPA": "Secure Pad", "SEQ": "Sequence", "SER": "Secretum", @@ -10670,6 +12416,7 @@ "SEW": "simpson in a memes world", "SEX": "SEX Odyssey", "SEXY": "EthXY", + "SEXYP": "SEXY PEPE", "SFARM": "SolFarm", "SFC": "Solarflarecoin", "SFCP": "SF Capital", @@ -10682,9 +12429,11 @@ "SFIT": "Sense4FIT", "SFL": "Sunflower Land", "SFLOKI": "SuiFloki-Inu", + "SFLR": "Sceptre Staked FLR", "SFM": "SafeMoon V2", "SFP": "SafePal", "SFR": "SaffronCoin", + "SFRAX": "Staked FRAX", "SFRC": "Safari Crush", "SFRXETH": "Frax Staked Ether", "SFT": "SportsFix", @@ -10711,12 +12460,14 @@ "SHA": "Safe Haven", "SHACK": "Shackleford", "SHACOIN": "Shacoin", + "SHAD": "Shadowswap Finance", "SHADE": "ShadeCoin", "SHAK": "Shakita Inu", "SHAKE": "Spaceswap SHAKE", "SHAMAN": "Shaman King Inu", "SHAN": "Shanum", "SHANG": "Shanghai Inu", + "SHAR": "Shark Cat", "SHARBI": "SHARBI", "SHARD": "ShardCoin", "SHARDS": "SolChicks Shards", @@ -10725,9 +12476,12 @@ "SHARES": "shares.finance", "SHARK": "Sharky", "SHARKC": "Shark Cat", + "SHARKI": "Sharki", + "SHARP": "Sharp", "SHARPE": "Sharpe Capital", "SHAUN": "SHAUN INU", "SHB4": "Super Heavy Booster 4", + "SHC": "School Hack Coin", "SHD": "ShardingDAO", "SHDW": "Shadow Token", "SHE": "Shine Chain", @@ -10735,6 +12489,7 @@ "SHEEESH": "Secret Gem", "SHEESH": "Sheesh it is bussin bussin", "SHEESHA": "Sheesha Finance", + "SHEGEN": "Aiwithdaddyissues", "SHEI": "SheikhSolana", "SHELL": "Shell Token", "SHEN": "Shen", @@ -10754,6 +12509,7 @@ "SHIBAAI": "SHIBAAI", "SHIBAC": "SHIBA CLASSIC", "SHIBACASH": "ShibaCash", + "SHIBADOG": "Shiba San", "SHIBAI": "AiShiba", "SHIBAKEN": "Shibaken Finance", "SHIBAMOM": "Shiba Mom", @@ -10764,6 +12520,7 @@ "SHIBCAT": "SHIBCAT", "SHIBCEO": "ShibCEO", "SHIBDOGE": "ShibaDoge", + "SHIBEINU": "Shibe Inu", "SHIBELON": "ShibElon", "SHIBEMP": "Shiba Inu Empire", "SHIBGF": "Shiba Girlfriend", @@ -10775,6 +12532,8 @@ "SHIBLITE": "Shiba Lite", "SHIBMERICAN": "Shibmerican", "SHIBO": "ShiBonk", + "SHIBON": "SHIB ON SOLANA", + "SHIBS": "Shibsol", "SHIBTC": "Shibabitcoin", "SHIBU": "SHIBU INU", "SHICO": "ShibaCorgi", @@ -10784,6 +12543,7 @@ "SHIFT": "Shift", "SHIH": "Shih Tzu", "SHIK": "Shikoku", + "SHIKOKU": "Mikawa Inu", "SHIL": "Shila Inu", "SHILL": "SHILL Token", "SHILLD": "SHILLD", @@ -10792,10 +12552,15 @@ "SHINA": "Shina Inu", "SHINJA": "Shibnobi", "SHINO": "ShinobiVerse", + "SHINOB": "Shinobi", "SHINT": "Shiba Interstellar", "SHIP": "ShipChain", + "SHIR": "SHIRO", + "SHIRO": "Shiro Neko", "SHIRYOINU": "Shiryo-Inu", + "SHISHA": "Shisha Coin", "SHIT": "I will poop it NFT", + "SHITC": "Shitcoin", "SHIV": "Shiva Inu", "SHK": "Shrike", "SHL": "Oyster Shell", @@ -10804,11 +12569,14 @@ "SHNT": "Sats Hunters", "SHO": "Showcase Token", "SHOE": "ShoeFy", + "SHOG": "SHOG", + "SHOGGOTH": "Shoggoth", "SHOKI": "Shoki", "SHON": "ShonToken", "SHOOT": "Mars Battle", "SHOOTER": "Top Down Survival Shooter", "SHOP": "Shoppi Coin", + "SHOPN": "ShopNEXT", "SHOPX": "Splyt", "SHORK": "shork", "SHORTY": "ShortyCoin", @@ -10820,16 +12588,19 @@ "SHRED": "ShredN", "SHREK": "ShrekCoin", "SHRIMP": "SHRIMP", + "SHROO": "Shroomates", "SHROOM": "Shroom.Finance", "SHROOMFOX": "Magic Shroom", "SHRUB": "Shrub", "SHS": "SHEESH", + "SHU": "Shutter", "SHUB": "SimpleHub", "SHUFFLE": "SHUFFLE!", "SHVR": "Shivers", "SHX": "Stronghold Token", "SHYTCOIN": "ShytCoin", "SI": "Siren", + "SIACLASSIC": "SiaClassic", "SIB": "SibCoin", "SIBA": "SibaInu", "SIC": "Swisscoin", @@ -10841,44 +12612,61 @@ "SIFT": "Smart Investment Fund Token", "SIFU": "SIFU", "SIG": "Signal", + "SIGMA": "SIGMA", "SIGN": "Sign Token", "SIGNA": "Signa", "SIGNAT": "SignatureChain", "SIGT": "Signatum", "SIGU": "Singular", + "SIKA": "SikaSwap", "SIL": "SIL Finance Token V2", "SILK": "SilkCoin", "SILKR": "SilkRoadCoin", "SILKT": "SilkChain", + "SILL": "Silly Duck", "SILLY": "Silly Dragon", "SILO": "Silo Finance", + "SILV": "Silver Surfer Solana", "SILV2": "Escrowed Illuvium 2", "SILVA": "Silva Token", "SILVER": "SILVER", + "SILVERKRC": "Silver KRC-20", + "SILVERSTAND": "Silver Standard", "SILVERWAY": "Silverway", + "SIM": "Simpson", + "SIMBA": "SIMBA The Sloth", "SIMP": "SO-COL", "SIMPLE": "SimpleChain", + "SIMPS": "Simpson MAGA", + "SIMPSO": "Simpson Neiro", "SIMPSON": "Homer", "SIMPSON6900": "Simpson6900 ", + "SIMPSONF": "Simpson FUKU", + "SIMPSONP": "Simpson Predictions", "SIMPSONSINU": "The Simpsons Inu", + "SIMPSONT": "Simpson Trump", "SIMSOL": "SimSol", "SIN": "Sinverse", "SINE": "Sinelock", "SING": "SingularFarm", "SINGLE": "Single Finance", + "SINK": "Let that sink in", "SINS": "SafeInsure", "SINSO": "SINSO", "SINX": "SINX Token", + "SIO": "SAINO", "SION": "FC Sion", "SIP": "Space SIP", "SIPHER": "Sipher", "SIPHON": "Siphon Life Spell", "SIR": "Sir", + "SIRIUS": "first reply", "SIS": "Symbiosis Finance", "SISA": "Strategic Investments in Significant Areas", "SISC": "Shirushi Coin", "SISHI": "Sishi Finance", "SIU": "Siu", + "SIUU": "SIUUU", "SIUUU": "Crustieno Renaldo", "SIV": "Sivasspor Token", "SIX": "SIX Network", @@ -10888,15 +12676,19 @@ "SJCX": "StorjCoin", "SKAI": "Skillful AI", "SKB": "SkullBuzz", + "SKBDI": "Skibidi Toilet", "SKC": "Skeincoin", "SKCS": "Staked KCS", "SKEB": "Skeb", "SKET": "Sketch coin", "SKEY": "SmartKey", - "SKI": "Skillchain", + "SKG888": "Safu & Kek Gigafundz 888", + "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", @@ -10916,14 +12708,18 @@ "SKT": "Sukhavati Network", "SKU": "Sakura", "SKULL": "Pirate Blocks", - "SKY": "Skycoin", + "SKX": "SKPANAX", + "SKY": "Sky", "SKYA": "Sekuya Multiverse", + "SKYCOIN": "Skycoin", "SKYFT": "SKYFchain", "SKYM": "SkyMap", "SKYRIM": "Skyrim Finance", "SKYX": "SKUYX", "SLA": "SUPERLAUNCH", "SLAM": "Slam Token", + "SLAP": "CatSlap", + "SLAVI": "Slavi Coin", "SLB": "Solberg", "SLC": "Solice", "SLCL": "Solcial", @@ -10934,6 +12730,7 @@ "SLERF2": "SLERF 2.0", "SLERFFORK": "SlerfFork", "SLEX": "SLEX Token", + "SLF": "Self Chain", "SLG": "Land Of Conquest", "SLICE": "Tranche Finance", "SLICEC": "SLICE", @@ -10947,8 +12744,10 @@ "SLND": "Solend", "SLNV2": "SLNV2", "SLOKI": "Super Floki", + "SLOP": "Slop", "SLORK": "SLORK", "SLOTH": "Sloth", + "SLOTHA": "Slothana", "SLP": "Smooth Love Potion", "SLPV1": "Smooth Love Potion v1", "SLR": "SolarCoin", @@ -10957,6 +12756,7 @@ "SLS": "SaluS", "SLST": "SmartLands", "SLT": "Social Lending Network", + "SLUGDENG": "SLUG DENG", "SLUMBO": "SLUMBO", "SLVX": "eToro Silver", "SLX": "Slate", @@ -10967,6 +12767,7 @@ "SMART": "SmartCash", "SMARTB": "Smart Coin", "SMARTCREDIT": "SmartCredit Token", + "SMARTH": "SmartHub", "SMARTLOX": "SmartLOX", "SMARTM": "SmartMesh", "SMARTMEME": "SmartMEME", @@ -10981,19 +12782,23 @@ "SMCW": "Space Misfits", "SMD": "SMD Coin", "SMETA": "StarkMeta", + "SMETX": "SpecialMetalX", "SMF": "SmurfCoin", "SMG": "Smaugs NFT", "SMH": "Spacemesh", "SMI": "SafeMoon Inu", "SMIDGE": "Smidge", + "SMIDGEETH": "Smidge", "SMILE": "Smile Token", "SMILEK": "Smilek to the Bank", "SMILEY": "SMILEY", "SMILY": "Smily Trump", + "SMKNG": "SmonkeyKong", "SML": "Saltmarble", "SMLY": "SmileyCoin", "SMM": "TrendingTool.io", "SMOG": "Smog", + "SMOK": "Smoking Chicken Fish", "SMOKE": "Smoke", "SMOL": "Smolcoin", "SMOLE": "smolecoin", @@ -11018,15 +12823,20 @@ "SMX": "Snapmuse.io", "SN": "SpaceN", "SNA": "SUKUYANA", + "SNAC": "SnackboxAI", "SNACK": "Crypto Snack", + "SNAI": "SwarmNode.ai", "SNAIL": "SnailBrook", + "SNAKE": "snake", "SNAKES": "Snakes Game", "SNAP": "SnapEx", + "SNAPCAT": "Snapcat", "SNB": "SynchroBitcoin", "SNC": "SunContract", "SNCT": "SnakeCity", "SND": "Sandcoin", "SNE": "StrongNode", + "SNEED": "Sneed", "SNEK": "Snek", "SNEKE": "Snek on Ethereum", "SNET": "Snetwork", @@ -11034,6 +12844,9 @@ "SNFTS": "Seedify NFT Space", "SNG": "SINERGIA", "SNGLS": "SingularDTV", + "SNGT": "SNG Token", + "SNIBBU": "Snibbu The Crab", + "SNIFT": "StarryNift", "SNIP": "LyrnAI", "SNIPPEPE": "SNIPING PEPE", "SNITCH": "Randall", @@ -11043,6 +12856,7 @@ "SNMT": "Satoshi Nakamoto Token", "SNN": "SeChain", "SNOB": "Snowball", + "SNOLEX": "Snolex", "SNOOP": "SnoopDAO", "SNOOPY": "Snoopy", "SNORK": "Snork", @@ -11072,20 +12886,26 @@ "SOBA": "SOBA Token", "SOBB": "SoBit", "SOBER": "Solabrador", + "SOBULL": "SoBULL", "SOC": "All Sports Coin", "SOCA": "Socaverse", "SOCC": "SocialCoin", "SOCCER": "SoccerInu", + "SOCIAL": "Phavercoin", "SOCKS": "Unisocks", "SOCOLA": "SOCOLA INU", "SODA": "SODA Coin", + "SODAL": "Sodality Coin", "SODO": "Scooby Doo", + "SOFAC": "SofaCat", "SOFI": "RAI Finance", "SOFTCO": "SOFT COQ INU", "SOH": "Stohn Coin", "SOHOT": "SOHOTRN", - "SOIL": "SoilCoin", + "SOIL": "Soil", + "SOILCOIN": "SoilCoin", "SOJ": "Sojourn Coin", + "SOK": "shoki", "SOKU": "Soku Swap", "SOL": "Solana", "SOL10": "SOLANA MEME TOKEN", @@ -11094,21 +12914,27 @@ "SOLALA": "Solala", "SOLAMA": "Solama", "SOLAMB": "SOLAMB", + "SOLAN": "Solana Beach", + "SOLANAP": "Solana Poker", + "SOLANAS": "Solana Swap", "SOLAPE": "SolAPE Token", "SOLAR": "Solar", "SOLARA": "Solara", "SOLARDAO": "Solar DAO", "SOLARE": "Solareum", + "SOLAREU": "Solareum", "SOLARFARM": "SolarFarm", "SOLARIX": "SOLARIX", "SOLAV": "SOLAV TOKEN", "SOLBET": "SOL STREET BETS", + "SOLBO": "SolBoss", "SOLBULL": "SOLBULL", "SOLC": "SolCard", "SOLCASH": "SOLCash", "SOLCAT": "SOLCAT", "SOLCEX": "SolCex", "SOLE": "SoleCoin", + "SOLER": "Solerium", "SOLETF": "SOL ETF", "SOLEX": "Solex Launchpad", "SOLFI": "SoliDefi", @@ -11116,13 +12942,18 @@ "SOLGUN": "Solgun", "SOLID": "Solidified", "SOLIDSEX": "SOLIDsex: Tokenized veSOLID", + "SOLITO": "SOLITO", "SOLKIT": "Solana Kit", "SOLLY": "Solly", + "SOLM": "SolMix", "SOLMATES": "SOLMATES", + "SOLME": "Solmedia", "SOLMEME": "TrumpFFIEGMEBidenCAT2024AMC", "SOLNAV": "SOLNAV AI", "SOLNIC": "Solnic", "SOLO": "Sologenic", + "SOLOR": "Solordi", + "SOLP": "SolPets", "SOLPAD": "Solpad Finance", "SOLPAKA": "Solpaka", "SOLPENG": "SOLPENG", @@ -11130,15 +12961,24 @@ "SOLS": "sols", "SOLSCC": "sols", "SOLSPONGE": "Solsponge", + "SOLT": "Soltalk AI", + "SOLTR": "SolTrump", + "SOLV": "Solv Protocol", + "SOLVBTC": "Solv Protocol SolvBTC", + "SOLVBTCBBN": "Solv Protocol SolvBTC.BBN", + "SOLVBTCCORE": "Solv Protocol SolvBTC.CORE", "SOLVE": "SOLVE", "SOLWIF": "Solwif", "SOLX": "SolarX", + "SOLXD": "Solxdex", "SOLY": "Solamander", + "SOLYMPICS": "Solympics", "SOLZILLA": "Solzilla", "SOM": "Souls of Meta", "SOMA": "Soma", "SOMM": "Sommelier", "SOMNIUM": "Somnium Space CUBEs", + "SOMPS": "SompsOnKas", "SON": "Simone", "SONAR": "SonarWatch", "SONG": "Song Coin", @@ -11147,9 +12987,12 @@ "SONICO": "Sonic", "SONICWIF": "SonicWifHat", "SONNE": "Sonne Finance", + "SONOF": "Son of Solana", "SOON": "Soonaverse", "SOONCOIN": "SoonCoin", + "SOOTCASE": "I like my sootcase", "SOP": "SoPay", + "SOPH": "Sophon", "SOPHON": "Sophon (Atomicals)", "SOR": "Sorcery", "SORA": "Sora Validator Token", @@ -11159,6 +13002,7 @@ "SORAI": "Sora AI", "SORAPORN": "Sora Porn", "SOSNOVKINO": "Sosnovkino", + "SOSWAP": "Solana Swap", "SOT": "Soccer Crypto", "SOTA": "SOTA Finance", "SOUL": "Phantasma", @@ -11170,22 +13014,30 @@ "SOV": "Sovryn", "SOVE": "Soverain", "SOVI": "Sovi Finance", + "SOVRN": "Sovrun", "SOWA": "Sowa AI", "SOX": "Nobby Game", "SOY": "Soy Finance", "SP": "Sex Pistols", "SP8DE": "Sp8de", "SPA": "Sperax", + "SPAC": "SPACE DOGE", "SPACE": "Spacelens", "SPACECOIN": "SpaceCoin", + "SPACED": "SPACE DRAGON", "SPACEPI": "SpacePi", "SPAD": "SolPad", "SPAI": "Starship AI", "SPAIN": "SpainCoin", "SPANK": "SpankChain", + "SPARK": "Sparklife", + "SPARKLET": "Upland", "SPARKO": "Sparko", "SPARTA": "Spartan Protocol Token", + "SPARTACATS": "SpartaCats", + "SPARTAD": "SpartaDex", "SPAT": "Meta Spatial", + "SPAVAX": "Avalanche (Synapse Protocol)", "SPAY": "SpaceY 2025", "SPC": "SpaceChain ERC20", "SPC.QRC": "SpaceChain (QRC-20)", @@ -11198,6 +13050,7 @@ "SPEC": "SpecCoin", "SPECT": "Spectral", "SPECTRE": "SPECTRE AI", + "SPEE": "SpeedCash", "SPEEDY": "Speedy", "SPELL": "Spell Token", "SPELLFIRE": "Spellfire", @@ -11205,6 +13058,7 @@ "SPENDC": "SpendCoin", "SPENT": "Espento", "SPEPE": "SolanaPepe", + "SPERG": "Bloomsperg Terminal", "SPEX": "StepEx", "SPF": "SportyCo", "SPFC": "São Paulo FC Fan Token", @@ -11228,7 +13082,9 @@ "SPIKE": "Spiking", "SPILLWAYS": "SpillWays", "SPIN": "SPIN Protocol", + "SPINT": "Spintria", "SPIRIT": "SpiritSwap", + "SPITT": "Hawk Ttuuaahh", "SPIZ": "SPACE-iZ", "SPK": "SparksPay", "SPKL": "SpokLottery", @@ -11246,9 +13102,10 @@ "SPOODY": "Spoody Man", "SPOOF": "Spoofify", "SPOOL": "Spool DAO Token", - "SPORE": "Enoki Finance", + "SPORE": "Spore", "SPORT": "SportsCoin", "SPORTS": "ZenSports", + "SPORTSP": "SportsPie", "SPOTS": "Spots", "SPOX": "Sports Future Exchange Token", "SPRING": "Spring", @@ -11261,6 +13118,8 @@ "SPS": "Splinterlands", "SPT": "SPECTRUM", "SPUME": "Spume", + "SPUNK": "PUNK", + "SPURD": "Spurdo Spärde", "SPURDO": "spurdo", "SPURS": "Tottenham Hotspur Fan Token", "SPWN": "Bitspawn", @@ -11269,11 +13128,14 @@ "SPY": "Smarty Pay", "SPYRO": "SPYRO", "SQAT": "Syndiqate", + "SQD": "SQD", "SQG": "Squid Token", + "SQGROW": "SquidGrow", "SQL": "Squall Coin", "SQR": "Magic Square", "SQT": "SubQuery Network", "SQTS": "Sqts (Ordinals)", + "SQU": "SquadSwap", "SQUA": "Square Token", "SQUAD": "Superpower Squad", "SQUATCH": "SASQUATCH", @@ -11284,7 +13146,10 @@ "SQUID2": "Squid Game 2.0", "SQUIDGROW": "SquidGrow", "SQUIDGROWV1": "SquidGrow v1", + "SQUIDV1": "Squid Game v1", + "SQUIDW": "Squidward Coin", "SQUOGE": "DogeSquatch", + "SR30": "SatsRush", "SRBP": "Super Rare Ball Potion", "SRC": "SecureCoin", "SRCH": "SolSrch", @@ -11306,6 +13171,7 @@ "SSB": "SatoshiStreetBets", "SSC": "SelfSell", "SSD": "Sonic Screw Driver Coin", + "SSDX": "SpunkySDX", "SSE": "Soroosh Smart Ecosystem", "SSG": "Surviving Soldiers", "SSGT": "Safeswap", @@ -11314,10 +13180,13 @@ "SSHIP": "SSHIP", "SSLX": "StarSlax", "SSNC": "SatoshiSync", + "SSOL": "Solayer SOL", "SSS": "StarSharks", + "SSSSS": "Snake wif Hat", "SST": "SIMBA Storage Token", "SSTC": "SunShotCoin", "SSU": "Sunny Side up", + "SSUI": "Spring Staked SUI", "SSV": "ssv.network", "SSVCOIN": "SSVCoin", "SSVV1": "Blox", @@ -11325,22 +13194,25 @@ "SSX": "SOMESING", "ST": "Skippy Token", "STA": "STOA Network", + "STAB": "STABLE ASSET", "STABLZ": "Stablz", "STAC": "STAC", "STACK": "StackOS", - "STACKS": "STACKS", + "STACKS": " STACKS PAY", "STACS": "STACS Token", "STAK": "Jigstack", "STAKE": "xDai Chain", "STAKEDETH": "StakeHound Staked Ether", "STALIN": "StalinCoin", "STAMP": "SafePost", + "STAN": "Stank Memes", "STANDARD": "Stakeborg DAO", "STAPT": "Ditto Staked Aptos", "STAR": "FileStar", "STARAMBA": "Staramba", "STARBASE": "Starbase", "STARC": "StarChain", + "STARDOGE": "StarDOGE", "STARL": "StarLink", "STARLAUNCH": "StarLaunch", "STARLY": "Starly", @@ -11351,6 +13223,7 @@ "STARSHI": "Starship", "STARSHIP": "STARSHIP", "STARSHIPDOGE": "Starship Doge", + "STARSHIPONSOL": "Starship", "START": "StartCoin", "STARTA": "Starta", "STARWARS": "Star Wars", @@ -11360,19 +13233,26 @@ "STATE": "New World Order", "STATER": "Stater", "STATERA": "Statera", + "STATOK": "STA", + "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", @@ -11390,6 +13270,7 @@ "STEWIE": "Stewie Coin", "STEX": "STEX", "STF": "Structure Finance", + "STFLOW": "Increment Staked FLOW", "STFX": "STFX", "STG": "Stargate Finance", "STHR": "Stakerush", @@ -11399,12 +13280,14 @@ "STIMA": "STIMA", "STING": "Sting", "STINJ": "Stride Staked INJ", + "STIX": "STIX", "STJUNO": "Stride Staked JUNO", "STK": "STK Token", "STKAAVE": "Staked Aave", "STKATOM": "pSTAKE Staked ATOM", "STKBNB": "pSTAKE Staked BNB", "STKC": "Streakk Chain", + "STKD": "Stkd SCRT", "STKHUAHUA": "pSTAKE Staked HUAHUA", "STKK": "Streakk", "STKSTARS": "pSTAKE Staked STARS", @@ -11415,17 +13298,21 @@ "STMX": "StormX", "STND": "Standard Protocol", "STNEAR": "Staked NEAR", + "STNK": "Stonks", "STO": "Save The Ocean", + "STOC": "STO Cash", "STOG": "Stooges", "STOGE": "Stoner Doge Finance", "STOIC": "stoicDAO", "STON": "STON", "STONE": "Stone Token", + "STONEDE": "Stone DeFi", "STONK": "STONK", "STONKS": "HarryPotterObamaWallStreetBets10Inu", "STOP": "SatoPay", "STOR": "Self Storage Coin", "STORE": "Bit Store", + "STOREP": "Storepay", "STORJ": "Storj", "STORM": "Storm", "STORY": "Story", @@ -11437,7 +13324,9 @@ "STPT": "STP Network", "STQ": "Storiqa Token", "STR": "Sourceless", + "STRA": "STRAY", "STRAKS": "Straks", + "STRAT": "Strategic Hub for Innovation in Blockchain", "STRAX": "Stratis", "STRAY": "Stray Dog", "STRD": "Stride", @@ -11451,6 +13340,7 @@ "STRM": "StreamCoin", "STRNGR": "Stronger", "STRONG": "Strong", + "STRONGSOL": "Stronghold Staked SOL", "STRONGX": "StrongX", "STRP": "Strips Finance", "STRS": "STARS", @@ -11471,6 +13361,7 @@ "STUCK": "mouse in pasta", "STUD": "Studyum", "STUDENTC": "Student Coin", + "STUFF": "STUFF.io", "STUMEE": "Stride Staked UMEE", "STUSDT": "Staked USDT", "STV": "Sativa Coin", @@ -11483,6 +13374,7 @@ "STZETA": "ZetaEarn", "STZU": "Shihtzu Exchange Token", "SU": "Smol Su", + "SUB": "Subsocial", "SUBAWU": "Subawu Token", "SUBF": "Super Best Friends", "SUBS": "Substratum Network", @@ -11491,58 +13383,102 @@ "SUGAR": "Sugar Exchange", "SUI": "Sui", "SUIA": "SUIA", + "SUIAI": "SUI Agents", + "SUIB": "Suiba Inu", + "SUIDEPIN": "Sui DePIN", + "SUIJAK": "Suijak", + "SUILAMA": "Suilama", + "SUIMAN": "Suiman", + "SUIMON": "Sui Monster", "SUIP": "SuiPad", "SUISHIB": "SuiShiba", + "SUITE": "Suite", + "SUKI": "SUKI", "SUKU": "SUKU", "SULFERC": "SULFERC", "SUM": "SumSwap", + "SUMI": "SUMI", "SUMMER": "Summer", + "SUMMIT": "Summit", "SUMO": "Sumokoin", "SUN": "Sun Token", "SUNC": "Sunrise", "SUNDAE": "Sundae the Dog", + "SUNDOG": "SUNDOG", "SUNEX": "The Sun Exchange", + "SUNGOAT": "SUNGOAT", + "SUNGOU": "Sungou", "SUNI": "SUNI", + "SUNJAK": "Sunjak", + "SUNLION": "SUNLION", + "SUNMAGA": "SunMaga", + "SUNN": "Sunny on Tron", + "SUNNED": "SUNNED", + "SUNNEIRO": "SunNeiro", "SUNNY": "Sunny Aggregator", "SUNOLD": "Sun Token", + "SUNPEPE": "sunpepe", + "SUNPUMP": "To The Sun", + "SUNTRON": "TRON MASCOT", "SUNV1": "Sun Token v1", + "SUNWUKONG": "SunWukong", "SUP": "Supcoin", "SUP8EME": "SUP8EME Token", "SUPE": "Supe Infinity", "SUPER": "SuperVerse", "SUPERBID": "SuperBid", + "SUPERBONK": "SUPER BONK", "SUPERC": "SuperCoin", + "SUPERCAT": "SUPERCAT", + "SUPERF": "SUPER FLOKI", + "SUPEROETHB": "Super OETH", + "SUPERT": "Super Trump", "SUPERTX": "SuperTX", + "SUPR": "SuperDapp", + "SUPRA": "Supra", + "SUPREMEFINANCE": "Hype", "SUR": "Suretly", "SURE": "inSure", "SURF": "Surf.Finance", "SURV": "Survival Game Online", "SUSD": "sUSD", + "SUSDA": "sUSDa", "SUSDE": "Ethena Staked USDe", + "SUSDS": "Savings USDS", + "SUSDX": "Staked USDX", "SUSHI": "Sushi", + "SUSX": "Savings USX", "SUTEKU": "Suteku", "SUTER": "Suterusu", + "SUWI": "suwi", "SUZUME": "Shita-kiri Suzume", "SVD": "savedroid", + "SVETH": "Savvy ETH", "SVL": "Slash Vision Labs", "SVN": "Savanna", "SVNN": "Savanna Haus", "SVPN": "Shadow Node", "SVS": "GivingToServices SVS", "SVT": "Solvent", + "SVTS": "Syncvault", "SVX": "Savix", "SVY": "Savvy", "SWA": "Swace", "SWACH": "Swachhcoin", "SWAG": "SWAG Finance", + "SWAGGY": "swaggy", + "SWAGT": "Swag Token", "SWAI": "Safe Water AI", "SWAMP": "Swampy", + "SWAN": "Black Swan", "SWAP": "Trustswap", "SWAPP": "SWAPP Protocol", "SWAPZ": "SWAPZ.app", "SWARM": "SwarmCoin", + "SWARMS": "Swarms", "SWASH": "Swash", "SWAY": "Sway Social", + "SWBTC": "Swell Restaked BTC", "SWC": "Scanetchain Token", "SWCH": "SwissCheese", "SWD": "SW DAO", @@ -11550,11 +13486,14 @@ "SWEAT": "Sweat Economy", "SWEEP": "Sweeptoken", "SWEET": "SweetStake", + "SWELL": "Swell Network", "SWETH": "swETH", "SWFL": "Swapfolio", "SWFTC": "SWFTCoin", "SWG": "Swirge", + "SWGT": "SmartWorld Global", "SWH": "simbawifhat", + "SWIF": "SUNwifHat", "SWIFT": "BitSwift", "SWIFTIES": "Taylor Swift", "SWIM": "SWIM - Spread Wisdom", @@ -11564,12 +13503,14 @@ "SWIPES": "BNDR", "SWIRL": "Swirl Social", "SWIRLX": "SwirlToken", + "SWIS": "Swiss Cash Coin", "SWISE": "StakeWise", "SWITCH": "Switch", "SWM": "Swarm Fund", "SWOLE": "Swole Doge", "SWOP": "Swop", "SWORD": "eZKalibur", + "SWORLD": "Seedworld", "SWOT": "Swot AI", "SWP": "Kava Swap", "SWPR": "Swapr", @@ -11594,22 +13535,30 @@ "SYBL": "Sybulls", "SYBTC": "sBTC", "SYC": "SynchroCoin", + "SYK": "Stryke", "SYL": "XSL Labs", "SYLO": "Sylo", "SYLV": "Sylvester", "SYM": "SymVerse", + "SYMP": "Sympson AI", "SYN": "Synapse", "SYNC": "Syncus", "SYNCC": "SyncCoin", + "SYNCG": "SyncGPT", "SYNCN": "Sync Network", "SYNCO": "Synco", + "SYNDOG": "Synthesizer Dog", + "SYNK": "Synk", "SYNLEV": "SynLev", "SYNO": "Synonym Finance", "SYNR": "MOBLAND", "SYNT": "Synthetix Network", - "SYNTH": "Synthswap", + "SYNTE": "Synternet", + "SYNTH": "SYNTHR", + "SYNTHSWAP": "Synthswap", "SYNX": "Syndicate", "SYPOOL": "Sypool", + "SYRUP": "Syrup", "SYS": "Syscoin", "SZCB": "Zugacoin", "T": "Threshold Network Token", @@ -11620,8 +13569,10 @@ "TABOO": "Taboo Token", "TAC": "Traceability Chain", "TACHYON": "Tachyon Protocol", - "TAD": "Tadpole Finance", + "TAD": "Tadpole", "TADA": "Ta-da", + "TADDY": "DADDY TRUMP", + "TADPOLEF": "Tadpole Finance", "TAF": "TAF", "TAGR": "Think And Get Rich Coin", "TAI": "TARS Protocol", @@ -11631,8 +13582,13 @@ "TAIYO": "Taiyo", "TAJ": "TajCoin", "TAK": "TakCoin", + "TAKE": "Take America Back", "TAKI": "Taki", + "TALA": "Baby Tala", + "TALAHON": "Talahon", "TALAO": "Talao", + "TALENT": "Talent Protocol", + "TALES": "Tales of Pepe", "TALIS": "Talis Protocol", "TALK": "Talken", "TAMA": "Tamadoge", @@ -11643,8 +13599,11 @@ "TANK": "CryptoTanks", "TANPIN": "Tanpin", "TANUKI": "Tanuki", + "TANUPAD": "Tanuki Launchpad", "TAO": "Bittensor", "TAONU": "TAO INU", + "TAOP": "TaoPad", + "TAOTOOLS": "TAOTools", "TAP": "TAP FANTASY", "TAPC": "Tap Coin", "TAPPINGCOIN": "TappingCoin", @@ -11653,6 +13612,7 @@ "TARA": "Taraxa", "TARAL": "TARALITY", "TARD": "Tard", + "TARDI": "Tardi", "TARI": "Tari World", "TAROT": "Tarot", "TAROTV1": "Tarot v1", @@ -11663,6 +13623,7 @@ "TAT": "Tatcoin", "TATA": "TATA Coin", "TATE": "Tate", + "TATES": "Tate Stop", "TATSU": "Taτsu", "TAU": "Lamden Tau", "TAUC": "Taurus Coin", @@ -11670,6 +13631,8 @@ "TAUR": "Marnotaur", "TAVA": "ALTAVA", "TAX": "MetaToll", + "TAXI": "Robotaxi", + "TAXLESSTRUMP": "MAGA TAXLESS", "TBAC": "BlockAura", "TBANK": "TaoBank", "TBAR": "Titanium BAR", @@ -11680,6 +13643,7 @@ "TBCX": "TrashBurn", "TBD": "THE BIG DEBATE", "TBE": "TrustBase", + "TBEER": "TRON BEER", "TBFT": "Türkiye Basketbol Federasyon Token", "TBIS": "TBIS token", "TBL": "Tombola", @@ -11687,9 +13651,11 @@ "TBT": "T-BOT", "TBTC": "tBTC", "TBTCV1": "tBTC v1", + "TBULL": "Tron Bull", "TBX": "Tokenbox", "TCANDY": "TripCandy", "TCAP": "Total Crypto Market Cap", + "TCASH": "Trump Cash", "TCAT": "The Currency Analytics", "TCC": "The ChampCoin", "TCG": "Today's Crypto", @@ -11708,12 +13674,14 @@ "TCT": "TokenClub", "TCX": "T-Coin", "TCY": "The Crypto You", - "TD": "Trade Chain", + "TD": "The Big Red", "TDAN": "TDAN", + "TDC": "Tidecoin", "TDE": "Trade Ecology Token", "TDEFI": "Token Teknoloji A.S. Token DeFi", "TDFB": "TDFB", "TDFY": "Tidefi", + "TDM": "TDM", "TDP": "TrueDeck", "TDROP": "ThetaDrop", "TDS": "TokenDesk", @@ -11748,6 +13716,7 @@ "TENET": "TENET", "TENFI": "TEN", "TENNET": "Tennet", + "TENS": "TensorScan", "TENSHI": "Tenshi", "TENT": "TENT", "TEP": "Tepleton", @@ -11756,12 +13725,17 @@ "TERA": "TERA", "TERADYNE": "Teradyne", "TERAR": "Terareum", + "TERAV1": "Terareum v1", "TERAWATT": "Terawatt", + "TERM": "Terminal of Simpson", + "TERMINAL": "Book Terminal of Truths", + "TERMINUS": "Terminus", "TERN": "Ternio", "TERN.ETH": "Ternio ERC20", "TERR": "Terrier", "TERRA": "Terraport", "TERRAB": "TERRABYTE AI", + "TERRY": "Terry The Disgruntled Turtle", "TERZ": "SHELTERZ", "TES": "TeslaCoin", "TESLA": "TeslaCoilCoin", @@ -11769,11 +13743,13 @@ "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", "TFC": "The Freedom Coin", "TFI": "TrustFi Network Token", @@ -11787,44 +13763,62 @@ "TGCC": "TheGCCcoin", "TGPT": "Trading GPT", "TGRAM": "TG20 TGram", + "TGRASS": "Top Grass Club", "TGT": "TargetCoin", + "TGW": "The Green World", "TH": "Team Heretics Fan Token", "THALES": "Thales", + "THAPT": "Thala APT", "THAVAGE": "Mike Tython", "THC": "The Hempcoin", - "THE": "The Protocol", + "THD": "Trump Harris Debate", "THE9": "THE9", + "THEAICOIN": "AI", + "THEB": "The Boys Club", "THEBLOX": "The Blox Project", + "THEC": "The CocktailBar", "THECA": "Theca", + "THECAT": "THECAT", "THECITADEL": "The Citadel", "THEDAO": "The DAO", + "THEF": "The Flash Currency", + "THEG": "The GameHub", "THEHARAMBE": "Harambe", + "THEM": "The Meta DAO", "THEMIS": "Themis", "THEN": "THENA", "THEO": "Theopetra", "THEOS": "Theos", + "THEP": "The Protocol", + "THES": "The Standard Protocol (USDS)", + "THESTANDARD": "Standard Token", "THETA": "Theta Network", + "THETAN": "Thetan Coin", "THETRIBE": "The Tribe", "THEX": "Thore Exchange", "THG": "Thetan Arena", "THIK": "ThikDik", "THING": "Nothing", "THINKWAREAI": "ThinkwareAI", + "THISISF": "This is Fine", "THL": "Thala", "THN": "Throne", "THNX": "ThankYou", "THO": "Athero", "THOL": "AngelBlock", + "THOLA": "Tholana", "THOR": "THORSwap", "THOREUM": "Thoreum V3", "THP": "TurboHigh Performance", "THR": "Thorecoin", "THREE": "Three Protocol Token ", "THRT": "ThriveToken", + "THRUST": "Thruster", "THRY": "THEORY", "THS": "TechShares", "THT": "Thought", "THUG": "Thug Life", + "THUN": "Thunder Brawl", "THUNDER": "ThunderStake", "THX": "Thorenext", "TI": "Titanium22", @@ -11832,11 +13826,14 @@ "TIANHE": "Tianhe", "TIC": "TrueInvestmentCoin", "TIDAL": "Tidal Finance", + "TIDDIES": "TIDDIES", "TIDE": "Tidalflats", "TIE": "Ties Network", + "TIEDAN": "TieDan", + "TIF": "This Is Fine", "TIFI": "TiFi Token", "TIG": "Tigereum", - "TIGER": "JungleKing TigerCoin", + "TIGER": "TIGER", "TIGERC": "TigerCash", "TIGERMOON": "TigerMoon", "TIGRA": "Tigra", @@ -11847,7 +13844,9 @@ "TIKTOKEN": "TikToken", "TIM": "TIMTIM GAMES", "TIME": "Chrono.tech", - "TIMI": "Timicoin", + "TIMES": "DARKTIMES", + "TIMI": "This Is My Iguana", + "TIMICOIN": "Timicoin", "TIN": "Token IN", "TINC": "Tiny Coin", "TINKU": "TinkuCoin", @@ -11855,6 +13854,7 @@ "TINY": "TinyBits", "TIOX": "TIOx", "TIP": "Tip Blockchain", + "TIPC": "Tipcoin", "TIPINU": "Tip Inu", "TIPS": "FedoraCoin", "TIPSY": "TipsyCoin", @@ -11865,6 +13865,7 @@ "TITANX": "TitanX", "TITC": "TitCoin", "TITI": "TiTi Protocol", + "TITS": "We Love Tits", "TITTY": "TamaKitty", "TIUSD": "TiUSD", "TIX": "Blocktix", @@ -11876,7 +13877,7 @@ "TKING": "Tiger King", "TKINU": "Tsuki Inu", "TKMN": "Tokemon", - "TKN": "Monolith", + "TKN": "Token Name Service", "TKO": "Tokocrypto", "TKP": "TOKPIE", "TKR": "CryptoInsight", @@ -11891,6 +13892,8 @@ "TLOS": "Telos", "TLP": "TulipCoin", "TLW": "TILWIKI", + "TMAGA": "THE MAGA MOVEMENT", + "TMAI": "Token Metrics AI", "TMANIA": "Trump Mania", "TME": "Timereum", "TMED": "MDsquare", @@ -11899,6 +13902,7 @@ "TMNG": "TMN Global", "TMNT": "TMNT", "TMON": "Two Monkey Juice Bar", + "TMPL": "TMPL", "TMRW": "TMRW Coin", "TMSH": "Bursaspor Fan Token", "TMT": "Tamy Token", @@ -11922,6 +13926,7 @@ "TODD": "TURBO TODD", "TOK": "Tokenplace", "TOKA": "Tonka Finance", + "TOKAMAK": "Tokamak Network", "TOKAU": "Tokyo AU", "TOKC": "Tokyo Coin", "TOKE": "Tokemak", @@ -11931,6 +13936,7 @@ "TOKKI": "CRYPTOKKI", "TOKO": "ToKoin", "TOKU": "TokugawaCoin", + "TOKUD": "Tokuda", "TOL": "Tolar", "TOLO": "Tolo Yacoloco", "TOLYCAT": "Toly's Cat", @@ -11938,48 +13944,65 @@ "TOMAHAWKCOIN": "Tomahawkcoin", "TOMAN": "IRR", "TOMB": "Tomb", + "TOMC": "TOM CAT", "TOMI": "tomiNet", + "TOMO": "Tomo Cat", "TOMOE": "TomoChain ERC20", "TOMS": "TomTomCoin", - "TON": "Tokamak Network", + "TON": "Toncoin", "TONALD": "Tonald Trump", - "TONCOIN": "The Open Network", "TONE": "TE-FOOD", "TONI": "Daytona Finance", "TONIC": "Tectonic", "TONK": "Tonk Inu", "TONNEL": "TONNEL Network", "TONS": "TONSniper", + "TONST": "Ton Stars", + "TONT": "TONKIT", "TONTOKEN": "TONToken", "TONUP": "TonUP", "TONY": "TONY THE DUCK", "TOOB": "Toobcoin", + "TOOBIGTORIG": "Too Big To Rig", "TOOKER": "tooker kurlson", "TOOLS": "TOOLS", "TOON": "Pontoon", "TOONF": "Toon Finance", "TOPC": "Topchain", + "TOPCA": "TOP CAT", + "TOPCAT": "Topcat", "TOPG": "Tate Token", + "TOPGP": "TOP G PEPE", + "TOPI": "Topi Meme", "TOPIA": "Hytopia", "TOPN": "TOP Network", "TOR": "TOR", + "TORA": "TORA NEKO", + "TORCH": "Hercules Token", "TORE": "Toreus Finance", "TORG": "TORG", "TORI": "Teritori", "TORII": "Torii Finance", "TORN": "Tornado Cash", + "TORO": "Toro Inoue", + "TORSY": "TORSY", "TOS": "ThingsOperatingSystem", "TOSA": "TosaInu BSC", "TOSC": "T.OS", "TOSDIS": "TosDis", "TOSHE": "Toshe", "TOSHI": "Toshi", + "TOSHKIN": "Toshkin Coin", "TOT": "TotCoin", "TOTEM": "DragonMaster", "TOTM": "Totem", "TOTO": "TOTO", "TOUCHFAN": "TouchFan", + "TOUCHG": "Touch Grass", + "TOUR": "Tour Billion", + "TOURI": "Tourist Token", "TOURISTS": "TOURIST SHIBA INU", + "TOWELI": "Towelie", "TOWER": "Tower", "TOWN": "Town Star", "TOX": "INTOverse", @@ -12003,15 +14026,20 @@ "TRAC": "OriginTrail", "TRACE": "Trace Network Labs", "TRACEA": "Trace AI", + "TRACKEDBIO": "TrackedBio", "TRACN": "trac (Ordinals)", "TRADE": "Polytrade", "TRADEBOT": "TradeBot", + "TRADECHAIN": "Trade Chain", "TRADEX": "TradeX AI", "TRAID": "Traid", + "TRAIMP": "TRUMP AI", "TRAIN": "Trump Train", "TRAK": "TrakInvest", + "TRALA": "TRALA", "TRANQ": "Tranquil Finance", "TRANS": "Trans Pepe", + "TRANSFER": "TransferCoin", "TRAT": "Tratok", "TRAVA": "Trava Finance", "TRAXIA": "Traxia Membership Token", @@ -12029,13 +14057,14 @@ "TRDT": "Trident", "TREAT": "Treat", "TRECENTO": "Trecento Blockchain Capital", - "TREE": "HyperionX", + "TREE": "Tree", "TREEB": "Retreeb", "TREMP": "Doland Tremp", "TRESTLE": "TRESTLE", "TRET": "Tourist Review", "TRG": "The Rug Game", "TRGI": "The Real Golden Inu", + "TRHUB": "Tradehub", "TRI": "Triangles Coin", "TRIA": "Triaconta", "TRIAS": "Trias", @@ -12048,18 +14077,28 @@ "TRINI": "Trinity Network Credit", "TRIO": "Tripio", "TRIPAD": "TripAdvisor, Inc.", + "TRITON": "Triton", "TRIVIA": "Trivians", "TRIX": "TriumphX", "TRK": "TruckCoin", + "TRKX": "Trakx", "TRL": "Triall", "TRMX": "TourismX Token", "TRNDZ": "Trendsy", + "TRNGUY": "Tron Guy Project", "TROG": "Trog", + "TROGE": "Troge", "TROLL": "Trollcoin", "TROLLHEIM": "Trollheim", + "TROLLICTO": "TROLLI CTO", "TROLLMODE": "TROLL MODE", + "TROLLS": "trolls in a memes world", + "TRONDOG": "TronDog", + "TRONI": "Tron Inu", + "TRONP": "Donald Tronp", "TRONPAD": "TRONPAD", "TROP": "Interop", + "TROPPY": "TROPPY", "TROSS": "Trossard", "TROVE": "Arbitrove Governance Token", "TROY": "Troy", @@ -12070,35 +14109,60 @@ "TRTL": "TurtleCoin", "TRTT": "Trittium", "TRU": "TrueFi", + "TRUAPT": "TruFin Staked APT", "TRUCE": "WORLD PEACE PROJECT", "TRUE": "True Chain", "TRUEBIT": "Truebit Protocol", "TRUF": "Truflation", + "TRUFV1ERC20": "Truflation v1 ERC-20", "TRUM": "TrumpBucks", "TRUMAGA": "TrumpMAGA", "TRUMATIC": "TruFin Staked MATIC", - "TRUMP": "MAGA", + "TRUMP": "OFFICIAL TRUMP", + "TRUMP2": "Trump2024", "TRUMP2024": "Donald Trump", + "TRUMP3": "Trump MP3", + "TRUMP47": "47th President of the United States", + "TRUMPA": "TRUMP AI", + "TRUMPAMANIA": "TRUMPAMANIA", "TRUMPARMY": "Trump Army", + "TRUMPBASE": "MAGA (magatrumponbase.tech)", "TRUMPBIDEN": "Trump vs Biden", + "TRUMPC": "TrumpCat", + "TRUMPCA": "Trump Card", "TRUMPCAT": "TRUMPCAT", + "TRUMPCATS": "Trump Golden Cat", "TRUMPCOIN": "TrumpCoin", + "TRUMPDAO": "TRUMP DAO", "TRUMPDO": "TRUMP", "TRUMPDOGE": "Trump Doge", "TRUMPE": "Trump Pepe", "TRUMPEPE": "Trump Pepe", + "TRUMPER": "Trump Era", + "TRUMPF": "Trump Fight", "TRUMPHAT": "Trump Hat", "TRUMPINU": "Trump Inu", - "TRUMPJR": "TrumpJr", + "TRUMPJ": "TRUMPJR", + "TRUMPJR": "OFFICIAL TRUMP JR", + "TRUMPJRVIP": "TrumpJr", + "TRUMPM": "TRUMP MAGA PRESIDENT", + "TRUMPMA": "TRUMP MAGA SUPER", + "TRUMPMAGA": "President Trump MAGA", + "TRUMPONBASE": "TRUMP ON BASE", + "TRUMPS": "Trump SOL", + "TRUMPSB": "TrumpsBags", + "TRUMPSFIGHT": "TrumpsFight", "TRUMPSHIBA": "Trump Shiba", "TRUMPTECH": "Trump Tech", "TRUMPTITANS": "TrumpTitans", + "TRUMPVANCE": "Trump Vance 2024", "TRUMPX": "Trump X-Maga", "TRUMPZ": "Trump Zhong", "TRUNK": "Elephant Money", "TRUST": "TrustDAO", "TRUSTNFT": "TrustNFT", "TRUTH": "TruthGPT", + "TRUTHFI": "Truthfi", "TRV": "TrustVerse", "TRVC": "Trivechain", "TRVL": "TRVL", @@ -12107,6 +14171,7 @@ "TRXC": "TRONCLASSIC", "TRXDICE": "TRONdice", "TRXS": "Staked TRX", + "TRXV1": "TRON V1", "TRXWIN": "TronWin", "TRYB": "BiLira", "TRYC": "TRYC", @@ -12122,10 +14187,13 @@ "TSHARE": "Tomb Shares", "TSHP": "12Ships", "TSL": "Energo", + "TSLT": "Tamkin", "TSN": "Tsunami Exchange Token", "TSR": "Tesra", + "TST": "Teleport System Token", "TSUBASAUT": "TSUBASA Utility Token", "TSUGT": "Captain Tsubasa", + "TSUJI": "Tsutsuji", "TSUKA": "Dejitaru Tsuka", "TSX": "TradeStars", "TT": "ThunderCore", @@ -12135,8 +14203,10 @@ "TTM": "To The Moon", "TTN": "Titan Coin", "TTT": "The Transfer Token", + "TTTU": "T-Project", "TTU": "TaTaTu", "TTV": "TV-TWO", + "TUA": "Atua AI", "TUBE": "BitTube", "TUBES": "TUBES", "TUCKER": "TUCKER CARLSON", @@ -12148,20 +14218,24 @@ "TUNE": "Bitune", "TUP": "Tenup", "TUR": "Turron", - "TURBO": "Turbo Wallet", + "TURB": "TurboX", + "TURBO": "Turbo", + "TURBOB": "Turbo Browser", "TURBOS": "Turbos Finance", - "TURBOT": "Turbo", + "TURBOW": "Turbo Wallet", "TURT": "TurtSat", "TUS": "Treasure Under Sea", "TUSD": "True USD", "TUSDV1": "True USD v1", "TUT": "Tutellus", "TUTTER": "Tutter", + "TUX": "Tux The Penguin", "TUZKI": "Tuzki", "TUZLA": "Tuzlaspor Token", "TVK": "Terra Virtua Kolect", "TVNT": "TravelNote", "TVRS": "TiraVerse", + "TVS": "TVS", "TW": "Winners Coin", "TWC": "Twilight", "TWD": "Terra World Token", @@ -12169,7 +14243,9 @@ "TWEETY": "Tweety", "TWELVE": "TWELVE ZODIAC", "TWEP": "The Web3 Project", + "TWIF": "Tomwifhat", "TWIFB": "TrumpWifBiden", + "TWIGGY": "Twiggy", "TWIN": "Twinci", "TWIST": "TwisterCoin", "TWLV": "Twelve Coin", @@ -12177,12 +14253,14 @@ "TWOGE": "Twoge Inu", "TWP": "TrumpWifPanda", "TWT": "Trust Wallet Token", + "TWURTLE": "twurtle the turtle", "TX": "Tradix", "TX20": "Trex20", "TXA": "TXA", "TXAG": "tSILVER", "TXAU": "tGOLD", "TXBIT": "Txbit Token", + "TXC": "TEXITcoin", "TXG": "TRUSTxGAMING", "TXL": "Autobahn Network", "TXT": "TuneTrade", @@ -12191,14 +14269,19 @@ "TYBGSc": "Base Goddess", "TYC": "Tycoon", "TYCOON": "CryptoTycoon", + "TYKE": "Tyke The Elephant", + "TYLER": "Tyler", "TYOGHOUL": "TYO GHOUL", "TYPE": "TypeAI", "TYPERIUM": "Typerium", + "TYPUS": "Typus", "TYRANT": "Fable Of The Dragon", "TYRION": "Tyrion", + "TYSON": "Mike Tyson", "TYT": "Tianya Token", "TZC": "TrezarCoin", "TZKI": "Tsuzuki Inu", + "TZU": "Sun Tzu", "U": "Unidef", "U8D": "Universal Dollar", "UAEC": "United Arab Emirates Coin", @@ -12240,6 +14323,7 @@ "UDOO": "Hyprr", "UDS": "Undeads Games", "UDT": "Unlock Protocol", + "UE": "UE Coin", "UEC": "United Emirates Coin", "UEDC": "United Emirate Decentralized Coin", "UENC": "UniversalEnergyChain", @@ -12247,11 +14331,13 @@ "UETL": "Useless Eth Token Lite", "UFARM": "UniFarm", "UFC": "Union Fair Coin", + "UFD": "Unicorn Fart Dust", "UFFYI": "Unlimited FiscusFYI", "UFI": "PureFi", "UFO": "UFO Gaming", "UFOC": "Unknown Fair Object", "UFOCOIN": "Uniform Fiscal Object", + "UFOP": "UFOPepe", "UFR": "Upfiring", "UFT": "UniLend Finance", "UGAS": "Ultrain", @@ -12273,6 +14359,7 @@ "ULTI": "Ultiverse", "ULTIMA": "Ultima", "ULTIMATEBOT": "Ultimate Tipbot", + "ULTR": "ULTRA MAGA", "ULTRA": "Ultra", "ULTRAP": "ULTRA Prisma Finance", "ULX": "ULTRON", @@ -12284,7 +14371,10 @@ "UMBR": "Umbria Network", "UMC": "Umbrella Coin", "UMI": "Universal Money Instrument", + "UMID": "Umi Digital", + "UMJA": "Umoja", "UMK": "UMKA", + "UMM": "UMM", "UMMA": "UMMA Token", "UMO": "Universal Molecule", "UMT": "UnityMeta", @@ -12296,14 +14386,17 @@ "UNBREAKABLE": "UnbreakableCoin", "UNC": "UnCoin", "UNCL": "UNCL", + "UNCN": "Unseen", "UNCX": "UniCrypt", "UND": "United Network Distribution", "UNDB": "unibot.cash", + "UNDE": "Undead Finance", "UNDEAD": "Undead Blocks", "UNDG": "UniDexGas", "UNDX": "UNODEX", "UNF": "Unfed Coin", "UNFI": "Unifi Protocol DAO", + "UNFK": "UNFK", "UNI": "Uniswap Protocol Token", "UNIBOT": "Unibot", "UNIC": "Unicly", @@ -12311,13 +14404,17 @@ "UNICORN": "UNICORN Token", "UNIDEXAI": "UniDexAI", "UNIDX": "UniDex", + "UNIDXV1": "UniDex v1", + "UNIE": "Uniswap Protocol Token (Avalanche Bridge)", "UNIETH": "Universal ETH", "UNIFY": "Unify", "UNIM": "Unicorn Milk", + "UNIO": "Unio Coin", "UNIQ": "Uniqredit", "UNIQUE": "Unique One", "UNISTAKE": "Unistake", "UNIT": "Universal Currency", + "UNIT0": "UNIT0", "UNITARYSTATUS": "UnitaryStatus Dollar", "UNITED": "UnitedCoins", "UNITRADE": "UniTrade", @@ -12370,11 +14467,16 @@ "URS": "URUS", "URUS": "Urus Token", "URX": "URANIUMX", - "USA": "DEDPRZ", + "USA": "Based USA", + "USACOIN": "American Coin", "USAT": "USAT", + "USBT": "Universal Blockchain", "USC": "Ultimate Secure Cash", "USCC": "USC", "USCOIN": "USCoin", + "USD0": "Usual", + "USD1": "USD1", + "USD3": "Web 3 Dollar", "USDA": "USDA", "USDAP": "Bond Appetite USD", "USDB": "USD Bancor", @@ -12382,6 +14484,14 @@ "USDBLAST": "USDB Blast", "USDC": "USD Coin", "USDCASH": "USDCASH", + "USDCAT": "UpSideDownCat", + "USDCAV": "USD Coin (Portal from Avalanche)", + "USDCBS": "USD Coin (Portal from BSC)", + "USDCE": "USD Coin (Avalanche Bride)", + "USDCEAV": "USD.e Coin (Portal from Avalanche)", + "USDCET": "USD Coin (Portal from Ethereum)", + "USDCPO": "USD Coin (PoS) (Portal from Polygon)", + "USDCSO": "USD Coin (Portal from Solana)", "USDD": "USDD", "USDE": "Ethena USDe", "USDEBT": "USDEBT", @@ -12392,16 +14502,20 @@ "USDI": "Interest Protocol USDi", "USDJ": "USDJ", "USDK": "USDK", + "USDL": "Lift Dollar", "USDM": "Mountain Protocol", + "USDMA": "USD mars", "USDN": "Neutrino USD", "USDO": "USD Open Dollar", "USDP": "Pax Dollar", "USDPLUS": "Overnight.fi USD+", "USDQ": "USDQ", "USDR": "Real USD", - "USDS": "StableUSD", + "USDS": "Sky Dollar", "USDSB": "USDSB", + "USDSTABLY": "StableUSD", "USDT": "Tether", + "USDTBASE": "USDT (Base)", "USDTV": "TetherTV", "USDTZ": "USDtez", "USDU": "Upper Dollar", @@ -12411,6 +14525,7 @@ "USDZ": "Zedxion USDZ", "USE": "Usechain Token", "USEDCAR": "A Gently Used 2001 Honda", + "USETH": "USETH", "USG": "USGold", "USH": "unshETHing_Token", "USHARK": "uShark", @@ -12421,24 +14536,34 @@ "USNBT": "NuBits", "USNOTA": "NOTA", "USP": "USP Token", + "USPEPE": "American pepe", "USPLUS": "Fluent Finance", + "USR": "Resolv USR", + "USSD": "Autonomous Secure Dollar", "UST": "Wrapped UST Token", "USTB": "Superstate Short Duration U.S. Government Securities Fund", + "USTBL": "Spiko US T-Bills Money Market Fund", "USTC": "TerraClassicUSD", "USTCW": "TerraClassicUSD Wormhole", "USTX": "UpStableToken", + "USUAL": "Usual", + "USUALX": "USUALx", "USV": "Universal Store of Value", "USX": "USX Quantum", + "USYC": "Hashnote USYC", "UT": "Ulord", "UTBAI": "UTB.ai", "UTC": "UltraCoin", "UTG": "UltronGlow", "UTH": "Uther", + "UTHX": "Utherverse", "UTI": "Unicorn Technology International", "UTIL": "Utility Coin", "UTK": "Utrust", + "UTKV1": "Utrust", "UTMDOGE": "UltramanDoge", "UTNP": "Universa", + "UTON": "uTON", "UTT": "United Traders Token", "UTU": "UTU Protocol", "UTX": "UTIX", @@ -12450,6 +14575,7 @@ "UWU": "UwU Lend", "UWUCOIN": "uwu", "UX": "Umee", + "UXLINK": "UXLINK", "UXOS": "UXOS", "UXP": "UXD Protocol", "UZUMAKI": "Uzumaki Inu", @@ -12467,11 +14593,14 @@ "VALID": "Validator Token", "VALOR": "Valor Token", "VALORBIT": "Valorbit", + "VALU": "Value", "VALUE": "Value Liquidity", "VAMPIRE": "Vampire Inu", "VAN": "Vanspor Token", - "VANA": "Nirvana", + "VANA": "Vana", "VANCAT": "Vancat", + "VANCE": "JD Vance", + "VANF": "Van Fwogh", "VANRY": "Vanar Chain", "VANT": "Vanta Network", "VANY": "Vanywhere", @@ -12480,6 +14609,7 @@ "VARA": "Vara Network", "VARIUS": "Varius", "VARK": "Aardvark", + "VATO": "vanitis", "VATR": "Vatra INU", "VATRENI": "Croatian FF Fan Token", "VAULT": "Vault Tech", @@ -12538,11 +14668,13 @@ "VEMP": "vEmpire DDAO", "VEN": "VeChain Old", "VENA": "Vena Network", + "VENKO": "VENKO", "VENOM": "Venom", "VENOMAI": "VENOM", "VENT": "Vent Finance", "VENTI": "VentiSwap", "VENTION": "Vention", + "VENTU": "Venture Coin", "VENUS": "VenusEnergy", "VEO": "Amoveo", "VER": "VersalNFT", @@ -12553,6 +14685,7 @@ "VERSA": "Versa Token", "VERSACE": "VERSACE", "VERSE": "Verse", + "VERTAI": "Vertical AI", "VERTEX": "Vertex", "VERUM": "Verum Coin", "VERVE": "Verve", @@ -12569,6 +14702,7 @@ "VFIL": "Venus Filecoin", "VFOX": "VFOX", "VFT": "Value Finance", + "VG": "Viu Ganhou", "VGO": "Vagabond", "VGX": "Voyager Token", "VHC": "Vault Hill City", @@ -12576,6 +14710,7 @@ "VIA": "ViaCoin", "VIB": "Viberate", "VIBE": "VIBEHub", + "VIBEA": "Vibe AI", "VIBLO": "VIBLO", "VIC": "Viction", "VICA": "ViCA Token", @@ -12585,6 +14720,7 @@ "VICTORIUM": "Victorium", "VID": "VideoCoin", "VIDA": "Vidiachange", + "VIDEO": "Videocoin by Drakula", "VIDT": "VIDT Datalink", "VIDY": "Vidy", "VIDYA": "Vidya", @@ -12593,6 +14729,7 @@ "VIEW": "Viewly", "VIG": "TheVig", "VIK": "VIKTAMA", + "VIKITA": "VIKITA", "VIKKY": "VikkyToken", "VIM": "VicMove", "VIN": "VinChain", @@ -12611,18 +14748,26 @@ "VISIO": "Visio", "VISION": "VisionGame", "VISR": "Visor", + "VIST": "VISTA", + "VISTA": "Ethervista", + "VISTADOG": "VISTADOG", "VIT": "Vision Industry Token", "VITA": "VitaDAO", "VITAE": "Vitae", "VITAFAST": "Molecules of Korolchuk IP-NFT", "VITAL": "Vital Network", + "VITALI": "Vitalik's Casper", + "VITAMINS": "Vitamins", + "VITARNA": "VitaRNA", "VITE": "VITE", "VITRA": "Vitra Studios", "VITY": "Vitteey", "VIU": "Viuly", + "VIVEK": "Head of D.O.G.E", "VIVID": "Vivid Coin", "VIVO": "VIVO Coin", "VIX": "VIXCO", + "VIX7": "VIX777", "VIXV1": "VIXCO v1", "VIZ": "Vision City", "VIZION": "ViZion Protocol", @@ -12638,6 +14783,7 @@ "VLUNA": "Venus Luna", "VLX": "Velas", "VLXPAD": "VelasPad", + "VMANTA": "Bifrost Voucher MANTA", "VMATIC": "Venus MATIC", "VMC": "VirtualMining Coin", "VME": "TrueVett", @@ -12652,6 +14798,7 @@ "VNM": "Venom", "VNN": "VINU Network", "VNO": "Veno Finance", + "VNST": "VNST Stablecoin", "VNT": "VNT Chain", "VNTW": "Value Network Token", "VNX": "VisionX", @@ -12660,9 +14807,12 @@ "VNY": "Vanity", "VOCARE": "Vocare ex Machina", "VOCO": "Provoco", + "VODCAT": "VODKA CAT", "VODKA": "Vodka Token", + "VOIP": "Voip Finance", "VOISE": "Voise", "VOL": "Volume Network", + "VOLBOOST": "VolBoost", "VOLLAR": "Vollar", "VOLR": "Volare Network", "VOLT": "Volt Inu", @@ -12719,6 +14869,7 @@ "VSOL": "VSolidus", "VSP": "Vesper Finance", "VSTA": "Vesta Finance", + "VSTR": "Vestra DAO", "VSUI": "Volo Staked SUI", "VSX": "Vsync", "VSYS": "V Systems", @@ -12731,6 +14882,7 @@ "VTN": "Voltroon", "VTOS": "VTOS", "VTRA": " E.C. Vitoria Fan Token", + "VTRAD": "VTRADING", "VTRO": "Vitruveo DEX", "VTRUMP": "Vote Trump", "VTRX": "Venus TRX", @@ -12742,18 +14894,23 @@ "VUC": "Virta Unique Coin", "VULC": "Vulcano", "VUNI": "Venus UNI", + "VUSD": "Virtual USD", "VUZZ": "Vuzz AI", "VV": "Virtual Versions", + "VVAIFU": "Dasha", "VVI": "VV Coin", "VVS": "VVS Finance", "VX": "ViteX Coin", "VXL": "Voxel X Network", + "VXR": "Vox Royale", "VXRP": "Venus XRP", "VXT": "Voxto Amplify", "VXV": "Vectorspace AI", + "VY": "Valinity", "VYBE": "Vybe", "VYFI": "VyFinance", "VYNC": "VYNK Chain", + "VYPER": "VYPER.WIN", "VZT": "Vezt", "W": "Wormhole", "W1": "W1", @@ -12764,12 +14921,15 @@ "W3S": "Web3Shot", "W3W": "Web3 Whales", "W8BIT": "8Bit Chain", + "WAAC": "Wrapped AyeAyeCoin", "WAB": "WABnetwork", "WABI": "WABI", + "WABU": "Warrenbuffett", "WACME": "Wrapped Accumulate", "WACO": "Waste Digital Coin", "WAD": "WardenSwap", "WADA": "Wrapped Cardano", + "WAFC": "Wrapped Arsenal FC (Kayen)", "WAFFLES": "Waffles Davincij15's Cat", "WAG": "WagyuSwap", "WAGE": "Digiwage", @@ -12785,8 +14945,11 @@ "WAIFU": "Waifu", "WAIT": "Hourglass", "WAL": "The Wasted Lands", + "WALE": "Waletoken", "WALK": "Walk Token", + "WALL": "Du Rove's Wall", "WALLET": "Ambire Wallet", + "WALLI": "WALLi", "WALLY": "Wally Bot", "WALTER": "walter", "WALV": "Alvey Chain", @@ -12796,14 +14959,17 @@ "WANA": "Wanaka Farm", "WANATHA": "Wrapped ANATHA", "WAND": "WandX", + "WANK": "Wojak The Wanker", "WANKO": "WANKO•MANKO•RUNES", "WANNA": "Wanna Bot", "WANUSDT": "wanUSDT", + "WAP": "Wet Ass Pussy", "WAR": "WeStarter", "WARP": "WarpCoin", "WARPED": "Warped Games", "WARPIE": "Warpie", "WARS": "MetaWars", + "WART": "Warthog", "WAS": "Wasder", "WASABI": "WasabiX", "WASD": "WASD Studios", @@ -12811,16 +14977,23 @@ "WASSIE": "WASSIE", "WASTR": "Wrapped Astar", "WAT": "Wat", + "WATC": "WATCoin", + "WATCH": "Yieldwatch", "WATER": "doginwotah", "WAVAX": "Wrapped AVAX", "WAVES": "Waves", + "WAVL": "Wrapped Aston Villa", + "WAWA": "Wawa Cat", "WAXE": "WAXE", "WAXL": "Wrapped Axelar", "WAXP": "Worldwide Asset eXchange", + "WAXS": "Axie Infinity Shards (Wormhole)", "WAY": "WayCoin", "WAZ": "MikeAI", + "WBAN": "Wrapped Banano", "WBB": "Wild Beast Coin", "WBBC": "Wibcoin", + "WBC": "WorldBrain Coin", "WBCH": "Wrapped Bitcoin Cash", "WBESC": "Wrapped BESC", "WBET": "Wavesbet", @@ -12832,6 +15005,7 @@ "WBOND": "War Bond Token", "WBONE": "Shibarium Wrapped BONE", "WBONES": "Wrapped BONES", + "WBONK": "BONK (Portal Bridge)", "WBS": "Websea", "WBT": "WhiteBIT Token", "WBTC": "Wrapped Bitcoin", @@ -12851,11 +15025,13 @@ "WCKB": "Wrapped Nervos Network", "WCOIN": "WCoin", "WCORE": "Wrapped Core", + "WCRO": "Wrapped CRO", "WCS": "Weecoins", "WCSOV": "Wrapped CrownSterling", "WCT": "Waves Community Token", "WCT1WCT1": "Wrapped Car Token 1", "WCUSD": "Wrapped Celo Dollar", + "WDAI": "Dai (Wormhole)", "WDC": "WorldCoin", "WDOG": "Winterdog", "WDOGE": "Wrapped Dogecoin", @@ -12877,31 +15053,43 @@ "WEC": "Whole Earth Coin", "WECO": "WECOIN", "WED": "Wednesday Inu", + "WEEBS": "Weebs", "WEETH": "Wrapped eETH", + "WEEX": "WEEX Token", "WEF": "DOG WIF CHINESE HAT", "WEFI": "WeFi", "WEGEN": "WeGen Platform", "WEGI": "Wegie", "WEGLD": "Wrapped EGLD", + "WEHMND": "Wrapped eHMND", "WEIRDO": "Weirdo", + "WEL": "Welsh Corgi", "WELA": "Wrapped Elastos", "WELD": "Weld", "WELL": "Moonwell", "WELLTOKEN": "Well", + "WELLV1": "Moonwell v1", + "WELON": "WrappedElon", "WELSH": "Welshcorgicoin", "WELT": "Fabwelt", "WELUPS": "Welups Blockchain", "WEMIX": "WEMIX", "WEMIXUSD": "WEMIX", "WEN": "Wen", + "WEND": "Wellnode", + "WENIS": "WenisCoin", "WENLAMBO": "Wenlambo", "WEOS": "Wrapped EOS", + "WEPC": "World Earn & Play Community", + "WERK": "Werk Family", "WEST": "Waves Enterprise", "WET": "WeShow Token", "WETH": "WETH", "WETHV1": "WETH v1", "WETHW": "Wrapped EthereumPoW", "WEVE": "veDAO", + "WEVER": "Wrapped Ever", + "WEVERV1": "Wrapped Ever v1", "WEVMOS": "Wrapped Evmos", "WEWE": "WEWE", "WEX": "WaultSwap", @@ -12909,11 +15097,13 @@ "WEXPOLY": "WaultSwap Polygon", "WFAI": "WaifuAI", "WFBTC": "Wrapped Fantom Bitcoin", + "WFDP": "WFDP", "WFIL": "Wrapped Filecoin", "WFLAMA": "WIFLAMA", "WFLOW": "Wrapped Flow", "WFO": "WoofOracle", "WFT": "Windfall Token", + "WFTM": "Wrapped Fantom", "WFTN": "Wrapped FTN", "WFUSE": "Wrapped Fuse", "WFX": "WebFlix", @@ -12926,14 +15116,20 @@ "WGR": "Wagerr", "WGRT": "WaykiChain Governance Coin", "WGT": "Web3Games.com", + "WHA": "WHALES DOGE", + "WHAL": "WHALEBERT", "WHALE": "WHALE", "WHALES": "Whales Market", + "WHAT": "What the Duck", "WHBAR": "Wrapped HBAR", + "WHC": "Whales Club", "WHEAT": "Wheat Token", "WHEE": "WHEE (Ordinals)", "WHEEL": "Wheelers", "WHEN": "WhenHub", "WHEX": "Whale Exploder", + "WHI": "White Boy Summer", + "WHINE": "Whine Coin", "WHIRL": "Whirl Finance", "WHISK": "Whiskers", "WHISKEY": "WHISKEY", @@ -12945,18 +15141,26 @@ "WHTETGRMOON": "WHITE TIGER MOON", "WHTGRPXL": "White Tiger Pixel", "WHX": "WHITEX", + "WHY": "WHY", + "WHYCAT": "WhyCat", "WIB": "Wibson", + "WIBE": "Wibegram", "WIC": "Wi Coin", "WICC": "WaykiChain", + "WICKED": "Wicked", "WIF": "dogwifhat", "WIF2": "DogWif2.0", "WIFB": "dogwifball", + "WIFC": "dogwifceo", + "WIFCAT": "WIFCAT COIN", "WIFE": "Wifejak", + "WIFEAR": "TRUMP WIF EAR", "WIFEDOGE": "Wifedoge", "WIFI": "WiFi Map", "WIFICOIN": "Wifi Coin", "WIFS": "dogwifscarf", "WIFSA": "dogwifsaudihat", + "WIGL": "Wigl", "WIGO": "WigoSwap", "WIK": "Wicked Bet", "WIKEN": "Project WITH", @@ -12964,14 +15168,18 @@ "WILC": "Wrapped ILCOIN", "WILD": "Wilder World", "WILDC": "Wild Crypto", + "WILDCOIN": "WILDCOIN", "WIN": "WINk", + "WINB": "WINBIT CASINO", "WINE": "WineCoin", "WING": "Wing Finance", "WINGS": "Wings DAO", "WINK": "Wink", "WINN": "Winnerz", + "WINNIE": "Winnie the Poodle", "WINR": "JustBet", "WINRY": "Winry Inu", + "WINSTON": "Winston", "WINT": "WinToken", "WINTER": "Winter", "WINU": "Walter Inu", @@ -12986,6 +15194,7 @@ "WIT": "Witnet", "WITCH": "Witch", "WITCOIN": "Witcoin", + "WIWI": "Wiggly Willy", "WIX": "Wixlar", "WIZA": "Wizardia", "WJD": "WJD", @@ -12998,6 +15207,7 @@ "WKD": "Wakanda Inu", "WLD": "Worldcoin", "WLF": "Wolfs Group", + "WLFI": "World Liberty Financial", "WLITI": "wLITI", "WLK": "Wolk", "WLKN": "Walken", @@ -13010,13 +15220,16 @@ "WMB": "WatermelonBlock", "WMC": "WMCoin", "WMEMO": "Wonderful Memories", + "WMETIS": "Wrapped Metis", "WMF": "Whale Maker Fund", "WMINIMA": "Wrapped Minima", "WMLX": "Millix", + "WMM": "Weird Medieval Memes", "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", @@ -13042,14 +15255,16 @@ "WOJ": "Wojak Finance", "WOJAK": "Wojak", "WOJAK2": "Wojak 2.0 Coin", + "WOJAKC": "Wojak Coin", "WOKB": "Wrapped OKB", "WOKT": "Wrapped OKT", "WOL": "World of Legends", - "WOLF": "Landwolf", + "WOLF": "LANDWOLF (AVAX)", "WOLFILAND": "Wolfiland", "WOLFOF": "Wolf of Wall Street", "WOLFP": "Wolfpack Coin", "WOLFY": "WOLFY", + "WOLT": "Wolt", "WOLVERINU": "WOLVERINU", "WOM": "WOM", "WOMB": "Wombat Exchange", @@ -13069,16 +15284,22 @@ "WOOO": "wooonen", "WOOOOO": "Wooooo! Coin", "WOOP": "Woonkly Power", + "WOOPV1": "Woonkly Power", "WOP": "WorldPay", "WOR": "Hollywood Capital Group WARRIOR", "WORK": "Work X", + "WORKE": "Worken", + "WORL": "World Record Banana", "WORLD": "World Token", "WORM": "HealthyWorm", "WORX": "Worx", "WOS": "Wolf Of Solana", + "WOT": "World Of Trump", + "WOULD": "would", "WOW": "WOWswap", "WOWS": "Wolves of Wall Street", "WOZX": "Efforce", + "WPAY": "WPAY", "WPC": "WePiggy Coin", "WPE": "OPES (Wrapped PE)", "WPEPE": "Wrapped Pepe", @@ -13086,6 +15307,7 @@ "WPKT": "Wrapped PKT", "WPLS": "Wrapped Pulse", "WPOKT": "wrapped POKT", + "WPOR": "Wrapped Portugal National Team", "WPP": "Green Energy Token", "WPR": "WePower", "WQT": "Work Quest", @@ -13108,7 +15330,9 @@ "WSDOGE": "Doge of Woof Street", "WSG": "Wall Street Games", "WSGV1": "Wall Street Games v1", - "WSHIB": "wShiba", + "WSH": "White Yorkshire", + "WSHIB": "Wrapped Shiba Inu (Wormhole)", + "WSHIBA": "wShiba", "WSI": "WeSendit", "WSIENNA": "Sienna ERC20", "WSM": "Wall Street Memes", @@ -13116,12 +15340,15 @@ "WSTA": "Wrapped Statera", "WSTETH": "Lido wstETH", "WSTOR": "StorageChain", + "WSTORV1": "StorageChain v1", "WSTR": "Wrapped Star", "WSTUSDT": "wstUSDT", + "WSTUSR": "Resolv wstUSR", "WSX": "WeAreSatoshi", "WT": "WeToken", "WTAO": "Wrapped TAO", "WTC": "Waltonchain", + "WTE": "Wonder Energy Technology", "WTF": "Waterfall Governance", "WTFT": "WTF Token", "WTFUEL": "Wrapped TFUEL", @@ -13134,51 +15361,69 @@ "WTT": "Giga Watt", "WTWOOL": "Wolf Town Wool", "WUF": "WUFFI", + "WUK": "WUKONG", + "WUKONG": "Sun Wukong", + "WULFY": "Wulfy", "WUSD": "Worldwide USD", "WUST": "Wrapped UST Token", + "WVG0": "Wrapped Virgin Gen-0 CryptoKittties", "WVTRS": "Vitreus", "WW3": "WW3", "WWAN": "Wrapped WAN", "WWB": "Wowbit", + "WWBNB": "Wrapped BNB (Wormhole)", "WWD": "Wolf Works DAO", "WWDOGE": "Wrapped WDOGE", "WWEMIX": "WWEMIX", "WWF": "WWF", + "WWMATIC": "Wrapped Polygon (Wormhole)", + "WWRY": "WeWillRugYou", "WWY": "WeWay", "WX": "WX Token", "WXDAI": "Wrapped XDAI", "WXDC": "Wrapped XDC", + "WXM": "WeatherXM", + "WXRP": "Wrapped XRP", "WXT": "WXT", "WXTZ": "Wrapped Tezos", + "WYAC": "Woman Yelling At Cat", + "WYN": "Wynn", "WYNN": "Anita Max Wynn", "WYS": "Wysker", + "WYZ": "WYZth", "WZEC": "Wrapped Zcash", "WZEDX": "Wrapped Zedxion", "WZENIQ": "Wrapped Zeniq (ETH)", "WZETA": "Wrapped Zeta", "WZM": "Woozoo Music", + "WZNN": "Wrapped Zenon (Zenon Bridge)", + "WZNNV1": "Wrapped Zenon (Zenon Bridge) v1", "WZRD": "Bitcoin Wizards", - "X": "AI-X", + "X": "X Empire", "X2": "X2Coin", "X2Y2": "X2Y2", "X42": "X42 Protocol", + "X7": "X7", "X7C": "X7 Coin", "X7DAO": "X7DAO", "X7R": "X7R", "X8X": "X8Currency", "XACT": "XactToken", "XAEAXII": "XAEA-Xii Token", + "XAGX": "Silver Token", "XAH": "Xahau", "XAI": "Xai", "XALGO": "Wrapped ALGO", "XALPHA": "XAlpha AI", "XAMP": "Antiample", + "XAND": "Xandeum", "XANK": "Xank", "XAP": "Apollon", "XAR": "Arcana Network", "XAS": "Asch", "XAT": "ShareAt", "XAUC": "XauCoin", + "XAUM": "Matrixdock Gold", "XAUR": "Xaurum", "XAUT": "Tether Gold", "XAVA": "Avalaunch", @@ -13219,6 +15464,7 @@ "XCG": "Xchange", "XCH": "Chia", "XCHF": "CryptoFranc", + "XCHNG": "Chainge Finance", "XCI": "Cannabis Industry Coin", "XCLR": "ClearCoin", "XCM": "CoinMetro", @@ -13283,16 +15529,19 @@ "XG": "XG Sports", "XGB": "GoldenBird", "XGC": "Xiglute Coin", + "XGD": "X Gold", "XGEM": "Exchange Genesis Ethlas Medium", "XGLI": "Glitter Finance", "XGOLD": "XGOLD COIN", "XGOX": "Go!", + "XGP": "XGP", "XGPT": "XGPT", "XGR": "GoldReserve", "XGRO": "Growth DeFi", "XGT": "Xion Finance", "XHI": "HiCoin", "XHP": "XHYPE", + "XHPV1": "XHYPE v1", "XHT": "HollaEx", "XHV": "Haven Protocol", "XI": "Xi", @@ -13302,8 +15551,10 @@ "XIDR": "XIDR", "XIL": "Xillion", "XIN": "Mixin", + "XING": "Xing Xing", "XINU": "XINU", "XIO": "Blockzero Labs", + "XION": "XION", "XIOS": "Xios", "XIOT": "Xiotri", "XIV": "Project Inverse", @@ -13320,6 +15571,7 @@ "XLN": "LunaOne", "XLQ": "Alqo", "XLR": "Solaris", + "XLS": "Elis", "XLT": "Nexalt", "XM": "xMooney", "XMARK": "xMARK", @@ -13332,17 +15584,20 @@ "XMN": "Motion", "XMO": "Monero Original", "XMON": "XMON", + "XMOON": "r/CryptoCurrency Moons v1", "XMP": "Mapt.Coin", "XMR": "Monero", "XMRG": "Monero Gold", "XMS": "Megastake", "XMT": "MetalSwap", "XMV": "MoneroV", + "XMW": "Morphware", "XMX": "XMax", "XMY": "MyriadCoin", "XNA": "Neurai", "XNB": "Xeonbit", "XNC": "Xenios", + "XNET": "XNET Mobile", "XNFT": "xNFT Protocol", "XNG": "Enigma", "XNK": "Ink Protocol", @@ -13361,6 +15616,7 @@ "XOT": "Okuru", "XOV": "XOVBank", "XOX": "XOX Labs", + "XOXNO": "XOXNO", "XP": "Experience Points", "XPA": "XPA", "XPAT": "Bitnation Pangea", @@ -13408,14 +15664,15 @@ "XRISE": "Xrise", "XRL": "Rialto.AI", "XRLM": "xRealm.ai", + "XROCK": "xRocket", "XROOTAI": "XRootAI", "XRP": "XRP", "XRP2": "XRP2.0", "XRP20": "XRP20", - "XRP8": "HarryPotterObamaPacMan8Inu", "XRPAYNET": "XRPayNet", "XRPC": "Xrp Classic", "XRPCHAIN": "Ripple Chain", + "XRPEPE": "XRPEPE", "XRPH": "XRP Healthcare", "XRS": "Xrius", "XRT": "Robonomics Network", @@ -13457,7 +15714,9 @@ "XTRA": "ExtraCredit", "XTRACK": "Xtrack AI", "XTREME": "ExtremeCoin", + "XTREMEV": "Xtremeverse", "XTRM": "XTRM COIN", + "XTRUMP": "X TRUMP", "XTT": "XSwap Treasure", "XTTB20": "XTblock", "XTUSD": "XT Stablecoin XTUSD", @@ -13470,6 +15729,7 @@ "XUP": "UPGRADE", "XUPS": "Xups", "XUV": "XUV Coin", + "XV": "XV", "XVC": "Vcash", "XVE": "The Vegan Initiative", "XVG": "Verge", @@ -13488,11 +15748,14 @@ "XYM": "Symbol", "XYO": "XY Oracle", "XYZ": "Universe.XYZ", + "XZK": "Mystiko Network", + "Y24": "Yield 24", "Y2K": "Y2K", "Y8U": "Y8U", "YAC": "YAcCoin", "YACHT": "YachtingVerse", "YAE": "Cryptonovae", + "YAFA": "Free Palestine", "YAG": "Yaki Gold", "YAI": "Ÿ", "YAK": "Yield Yak", @@ -13506,11 +15769,13 @@ "YAP": "Yap Stone", "YARL": "Yarloo", "YAW": "Yawww", + "YAWN": "YAWN", "YAXIS": "yAxis", "YAY": "YAY Games", "YAYCOIN": "YAYcoin", "YBC": "YbCoin", "YBO": "Young Boys Fan Token", + "YBR": "YieldBricks", "YCC": "Yuan Chain Coin", "YCE": "MYCE", "YCO": "Y Coin", @@ -13519,10 +15784,12 @@ "YDF": "Yieldification", "YDOGE": "Yorkie Doge", "YDR": "YDragon", + "YEARN": "YearnTogether", "YEC": "Ycash", "YEE": "Yeeco", "YEED": "Yggdrash", "YEEHAW": "YEEHAW", + "YEETI": "YEETI 液体", "YEFI": "YeFi", "YEL": "Yel.Finance", "YEON": "Yeon", @@ -13542,7 +15809,8 @@ "YFFI": "yffi finance", "YFFII": "YFFII Finance", "YFI": "yearn.finance", - "YFIE": "YFIEXCHANGE.FINANCE", + "YFIE": "yearn.finance (Avalanche Bridge)", + "YFIEXCHANGE": "YFIEXCHANGE.FINANCE", "YFII": "DFI.money", "YFIII": "Dify.Finance", "YFIVE": "YFIVE FINANCE", @@ -13553,16 +15821,22 @@ "YFV": "YFValue", "YFX": "Your Futures Exchange", "YGG": "Yield Guild Games", + "YIDO": "Yidocy Plus", "YIELD": "Yield Protocol", "YIELDX": "Yield Finance", "YIKES": "Yikes Dog", + "YILONG": "Yi Long Ma", + "YILONGMA": "Chinese Elon Musk", "YIN": "YIN Finance", "YINBI": "Yinbi", + "YLAY": "Yelay", "YLC": "YoloCash", "YLD": "YIELD App", "YLDY": "Yieldly", "YMC": "YamahaCoin", "YMS": "Yeni Malatyaspor Token", + "YNE": "yesnoerror", + "YNETH": "YieldNest Restaked ETH", "YO": "Yobit Token", "YOBASE": "All Your Base", "YOC": "YoCoin", @@ -13571,18 +15845,25 @@ "YODE": "YodeSwap", "YOLO": "YoloNolo", "YOM": "YOM", + "YONNY": "YONNY", "YOOSHI": "YooShi", "YOP": "Yield Optimization Platform & Protocol", + "YORAN": "YORAN THE CAVALIER", + "YORI": "YORI", "YOSHI": "Yoshi.exchange", "YOTD": "Year of the Dragon", "YOTO": "yotoshi", "YOU": "YOU Chain", "YOUC": "yOUcash", + "YOUNES": "YOUNES", "YOURAI": "YOUR AI", + "YOURMOM": "YOUR MOM DOG", + "YOUSIM": "YouSim", "YOVI": "YobitVirtualCoin", "YOYOW": "Yoyow", "YPC": "YoungParrot", "YPIE": "PieDAO Yearn Ecosystem Pie", + "YPRISMA": "Yearn yPRISMA", "YSAFE": "yieldfarming.insure", "YSEC": "Yearn Secure", "YSR": "Ystar", @@ -13592,25 +15873,32 @@ "YTS": "YetiSwap", "YU": "BOUNTYKINDS", "YUANG": "Yuang Coin", + "YUCHEN": "Sun Yuchen", "YUCJ": "Yu Coin", "YUCT": "Yucreat", "YUDI": "Yudi", "YUGE": "YUGE COIN", "YUKI": "YUKI", + "YUKIE": "Yukie", "YUKKY": "YUKKY", + "YUKO": "YUKO", "YUM": "Yumerium", "YUMMI": "Yummi Universe", "YUMMY": "Yummy", "YUP": "Crowdholding", "YURI": "YURI", + "YUSD": "YUSD Stablecoin", "YUSE": "Yuse Token", "YUSRA": "YUSRA", + "YUSUF": "Yusuf Dikec Meme", "YUZU": "YuzuSwap", "YVBOOST": "Yearn Compounding veCRV yVault", "YVS": "YVS.Finance", + "YVYFI": "YFI yVault", "YYAVAX": "Yield Yak AVAX", "YYE": "YYE Energy", "YYFI": "YYFI.Protocol", + "YYOLO": "yYOLO", "Z3": "Z-Cubed", "ZABAKU": "Zabaku Inu", "ZACK": "Zack Morris", @@ -13623,10 +15911,14 @@ "ZAO": "zkTAO", "ZAP": "Zap", "ZAPI": "Zapicorn", + "ZAPO": "Zapo AI", "ZARP": "ZARP Stablecoin", "ZARX": "eToro South African Rand", "ZASH": "ZIMBOCASH", "ZAT": "ZatGo", + "ZAZA": "ZAZA", + "ZAZU": "Zazu", + "ZAZZLES": "Zazzles", "ZB": "ZB", "ZBC": "Zebec Protocol", "ZBCN": "Zebec Network", @@ -13634,6 +15926,7 @@ "ZBU": "Zeebu", "ZCC": "ZCC Coin", "ZCC1": "ZeroCarbon", + "ZCD": "ZChains", "ZCG": "ZCashGOLD", "ZCHF": "Frankencoin", "ZCHN": "Zichain", @@ -13646,6 +15939,8 @@ "ZCULT": "Zkcult", "ZCX": "Unizen", "ZDAI": "Zydio AI", + "ZDC": "Zodiacs", + "ZDCV2": "ZodiacsV2", "ZDEX": "Zeedex", "ZDR": "Zloadr", "ZEBU": "ZEBU", @@ -13669,11 +15964,14 @@ "ZENI": "Zennies", "ZENIQ": "Zeniq Coin", "ZENITH": "Zenith Chain", + "ZENQ": "Zenqira", "ZENT": "Zentry", "ZEON": "Zeon Network", "ZEP": "Zeppelin Dao", "ZEPH": "Zephyr Protocol", "ZER": "Zero", + "ZEREBRO": "Zerebro", + "ZERO": "ZeroLend", "ZEROB": "ZeroBank", "ZEROEX": "0.exchange", "ZES": "Zetos", @@ -13686,14 +15984,19 @@ "ZETRIX": "Zetrix", "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", "ZGD": "ZambesiGold", "ZGEM": "GemSwap", "ZHC": "ZHC : Zero Hour Cash", + "ZHOA": "Chengpang Zhoa", "ZIBU": "Zibu", "ZIG": "Zignaly", "ZIGAP": "ZIGAP", @@ -13719,10 +16022,12 @@ "ZKARCH": "zkArchive", "ZKB": "ZKBase", "ZKBOB": "BOB", + "ZKCRO": "Cronos zkEVM CRO", "ZKDOGE": "zkDoge", "ZKDX": "ZKDX", "ZKE": "zkEra Finance", "ZKEVM": "zkEVMChain (BSC)", + "ZKEX": "zkExchange", "ZKF": "ZKFair", "ZKGROK": "ZKGROK", "ZKGUN": "zkGUN", @@ -13730,6 +16035,7 @@ "ZKID": "zkSync id", "ZKIN": "zkInfra", "ZKJ": "Polyhedra Network", + "ZKL": "zkLink", "ZKLAB": "zkSync Labs", "ZKLK": "ZkLock", "ZKML": "zKML", @@ -13744,7 +16050,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", @@ -13765,11 +16072,13 @@ "ZODI": "Zodium", "ZOE": "Zoe Cash", "ZOI": "Zoin", + "ZON": "Zon Token", "ZONE": "Zone", "ZONO": "Zono Swap", "ZONX": "METAZONX", "ZOO": "ZooKeeper", "ZOOA": "Zoopia", + "ZOOC": "ZOO Crypto World", "ZOOM": "ZoomCoin", "ZOOMER": "Zoomer Coin", "ZOON": "CryptoZoon", @@ -13777,6 +16086,7 @@ "ZORA": "Zoracles", "ZORKSEES": "Zorksees", "ZORO": "Zoro Inu", + "ZORRO": "Zorro", "ZORT": "Zort", "ZP": "Zen Protocol", "ZPAE": "ZelaaPayAE", @@ -13789,6 +16099,8 @@ "ZPTC": "Zeptacoin", "ZRC": "ZrCoin", "ZRO": "LayerZero", + "ZRPY": "Zerpaay", + "ZRS": "Zaros", "ZRX": "0x", "ZSC": "Zeusshield", "ZSD": "Zephyr Protocol Stable Dollar", @@ -13797,11 +16109,13 @@ "ZT": "ZBG Token", "ZTC": "ZeTo", "ZTG": "Zeitgeist", + "ZTK": "Zefi", "ZTX": "ZTX", "ZUC": "Zeux", "ZUCKPEPE": "ZuckPepe", "ZUKI": "Zuki Moba", "ZUM": "ZumCoin", + "ZUN": "Zunami Governance Token", "ZUNA": "ZUNA", "ZUNUSD": "Zunami USD", "ZUR": "Zurcoin", @@ -13816,8 +16130,11 @@ "ZWAP": "ZilSwap", "ZXC": "Oxcert", "ZXT": "Zcrypt", + "ZYB": "Zyberswap", "ZYD": "ZayedCoin", + "ZYGO": "Zygo the frog", "ZYN": "Zynecoin", + "ZYNC": "ZynCoin", "ZYNE": "Zynergy", "ZYPTO": "Zypto Token", "ZYR": "Zyrri", @@ -13831,5 +16148,6 @@ "gOHM": "Governance OHM", "redBUX": "redBUX", "sOHM": "Staked Olympus", + "vXDEFI": "vXDEFI", "wsOHM": "Wrapped Staked Olympus" } diff --git a/apps/api/src/assets/sitemap.xml b/apps/api/src/assets/sitemap.xml index 3a0f44ffd..a422ff31a 100644 --- a/apps/api/src/assets/sitemap.xml +++ b/apps/api/src/assets/sitemap.xml @@ -188,6 +188,10 @@ https://ghostfol.io/en/blog/2024/09/hacktoberfest-2024 ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/en/blog/2024/11/black-weeks-2024 + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/en/faq ${currentDate}T00:00:00+00:00 @@ -500,12 +504,10 @@ https://ghostfol.io/pl/o-ghostfolio ${currentDate}T00:00:00+00:00 - + + https://ghostfol.io/pl/open + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/pl/rynki ${currentDate}T00:00:00+00:00 @@ -579,6 +581,12 @@ ${currentDate}T00:00:00+00:00 + + - Dutch, French, German, Italian, - - Portuguese, Spanish and Turkish are currently supported. + Dutch, French, German, Italian, Polish, Portuguese, Spanish + and Turkish + + are currently supported.

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 6b79f09b9..e307884f8 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 3f9e45b94..4adcbe00a 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 65d1cccc5..be569233e 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 c7faaa4e2..c876c3cc8 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 4f70993db..91254e002 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 ac6a86cd5..fe3c7b278 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 @@ -1,7 +1,5 @@ import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto'; -import { DataService } from '@ghostfolio/client/services/data.service'; -import { validateObjectForForm } from '@ghostfolio/client/util/form.util'; import { getDateFormatString } from '@ghostfolio/common/helper'; import { translate } from '@ghostfolio/ui/i18n'; @@ -20,11 +18,12 @@ 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'; +import { DataService } from '../../../../services/data.service'; +import { validateObjectForForm } from '../../../../util/form.util'; import { CreateOrUpdateActivityDialogParams } from './interfaces/interfaces'; @Component({ @@ -32,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; @@ -124,7 +124,7 @@ export class CreateOrUpdateActivityDialog implements OnDestroy { name: [this.data.activity?.SymbolProfile?.name, Validators.required], quantity: [this.data.activity?.quantity, Validators.required], searchSymbol: [ - !!this.data.activity?.SymbolProfile + this.data.activity?.SymbolProfile ? { dataSource: this.data.activity?.SymbolProfile?.dataSource, symbol: this.data.activity?.SymbolProfile?.symbol @@ -216,16 +216,16 @@ 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 if (this.activityForm.get('type').value === 'STAKE') { this.total = - this.activityForm.get('quantity').value * this.currentMarketPrice ?? - 0; + this.activityForm.get('quantity').value * + (this.currentMarketPrice ?? 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(); @@ -480,10 +480,12 @@ 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, + (['FEE', 'INTEREST', 'ITEM', 'LIABILITY'].includes( + this.activityForm.get('type').value + ) + ? undefined + : 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 @@ -491,8 +493,9 @@ export class CreateOrUpdateActivityDialog implements OnDestroy { try { if (this.mode === 'create') { - (activity as CreateOrderDto).updateAccountBalance = - this.activityForm.get('updateAccountBalance').value; + activity.updateAccountBalance = this.activityForm.get( + 'updateAccountBalance' + ).value; await validateObjectForForm({ classDto: CreateOrderDto, @@ -501,7 +504,7 @@ export class CreateOrUpdateActivityDialog implements OnDestroy { object: activity }); - this.dialogRef.close(activity as CreateOrderDto); + this.dialogRef.close(activity); } else { (activity as UpdateOrderDto).id = this.data.activity.id; 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 69c11ee70..2f5ead47a 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 e2efb9e96..696fe7c5f 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 @@ -7,7 +7,7 @@ import { MAX_TOP_HOLDINGS, UNKNOWN_KEY } from '@ghostfolio/common/config'; import { prettifySymbol } from '@ghostfolio/common/helper'; import { AssetProfileIdentifier, - Holding, + HoldingWithParents, PortfolioDetails, PortfolioPosition, User @@ -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: { @@ -86,7 +87,7 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { value: number; }; }; - public topHoldings: Holding[]; + public topHoldings: HoldingWithParents[]; public topHoldingsMap: { [name: string]: { name: string; value: number }; }; @@ -493,6 +494,36 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { name, allocationInPercentage: this.totalValueInEtf > 0 ? value / this.totalValueInEtf : 0, + parents: Object.entries(this.portfolioDetails.holdings) + .map(([symbol, holding]) => { + if (holding.holdings.length > 0) { + const currentParentHolding = holding.holdings.find( + (parentHolding) => { + return parentHolding.name === name; + } + ); + + return currentParentHolding + ? { + allocationInPercentage: + currentParentHolding.valueInBaseCurrency / value, + name: holding.name, + position: holding, + symbol: prettifySymbol(symbol), + valueInBaseCurrency: + currentParentHolding.valueInBaseCurrency + } + : null; + } + + return null; + }) + .filter((item) => { + return item !== null; + }) + .sort((a, b) => { + return b.allocationInPercentage - a.allocationInPercentage; + }), valueInBaseCurrency: value }; }) diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.html b/apps/client/src/app/pages/portfolio/allocations/allocations-page.html index 3431501f5..f2dff76f3 100644 --- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.html +++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.html @@ -347,6 +347,7 @@ [locale]="user?.settings?.locale" [pageSize]="10" [topHoldings]="topHoldings" + (holdingClicked)="onSymbolChartClicked($event)" /> 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 85009a6e8..f52e7d558 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 @@ -11,10 +11,13 @@ import { ToggleOption, User } from '@ghostfolio/common/interfaces'; +import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { DateRange, GroupBy } from '@ghostfolio/common/types'; import { translate } from '@ghostfolio/ui/i18n'; +import { Clipboard } from '@angular/cdk/clipboard'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { SymbolProfile } from '@prisma/client'; import { isNumber, sortBy } from 'lodash'; import { DeviceDetectorService } from 'ngx-device-detector'; @@ -24,7 +27,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; @@ -44,6 +48,7 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { public dividendTimelineDataLabel = $localize`Dividend`; public firstOrderDate: Date; public hasImpersonationId: boolean; + public hasPermissionToReadAiPrompt: boolean; public investments: InvestmentItem[]; public investmentTimelineDataLabel = $localize`Investment`; public investmentsByGroup: InvestmentItem[]; @@ -73,9 +78,11 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { public constructor( private changeDetectorRef: ChangeDetectorRef, + private clipboard: Clipboard, private dataService: DataService, private deviceService: DeviceDetectorService, private impersonationStorageService: ImpersonationStorageService, + private snackBar: MatSnackBar, private userService: UserService ) { const { benchmarks } = this.dataService.fetchInfo(); @@ -113,6 +120,11 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { return id === this.user.settings?.benchmark; }); + this.hasPermissionToReadAiPrompt = hasPermission( + this.user.permissions, + permissions.readAiPrompt + ); + this.update(); } }); @@ -163,6 +175,20 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { this.fetchDividendsAndInvestments(); } + public onCopyPromptToClipboard() { + this.dataService.fetchPrompt().subscribe(({ prompt }) => { + this.clipboard.copy(prompt); + + this.snackBar.open( + '✅ ' + $localize`AI prompt has been copied to the clipboard`, + undefined, + { + duration: 3000 + } + ); + }); + } + public ngOnDestroy() { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete(); diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html index 3dd0b3c10..491551c13 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html @@ -1,5 +1,37 @@

Analysis

+ @if (user?.settings?.isExperimentalFeatures) { +
+
+
+ + + + +
+
+
+ }

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 }} + out of + {{ statistics?.rulesActiveCount }} + rules align with your portfolio. + } +

+

Emergency Fund @if (user?.subscription?.type === 'Basic') { @@ -20,13 +42,18 @@ hasPermissionToUpdateUserSettings && user?.settings?.isExperimentalFeatures " - [isLoading]="isLoadingPortfolioReport" + [isLoading]="isLoading" [rules]="emergencyFundRules" [settings]="user?.settings?.xRayRules" (rulesUpdated)="onRulesUpdated($event)" />

-
+

Currency Cluster Risks @if (user?.subscription?.type === 'Basic') { @@ -39,13 +66,42 @@ hasPermissionToUpdateUserSettings && user?.settings?.isExperimentalFeatures " - [isLoading]="isLoadingPortfolioReport" + [isLoading]="isLoading" [rules]="currencyClusterRiskRules" [settings]="user?.settings?.xRayRules" (rulesUpdated)="onRulesUpdated($event)" />

-
+
+

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

+ +
+

Account Cluster Risks @if (user?.subscription?.type === 'Basic') { @@ -58,13 +114,18 @@ hasPermissionToUpdateUserSettings && user?.settings?.isExperimentalFeatures " - [isLoading]="isLoadingPortfolioReport" + [isLoading]="isLoading" [rules]="accountClusterRiskRules" [settings]="user?.settings?.xRayRules" (rulesUpdated)="onRulesUpdated($event)" />

-
+

Economic Market Cluster Risks @if (user?.subscription?.type === 'Basic') { @@ -77,13 +138,18 @@ hasPermissionToUpdateUserSettings && user?.settings?.isExperimentalFeatures " - [isLoading]="isLoadingPortfolioReport" + [isLoading]="isLoading" [rules]="economicMarketClusterRiskRules" [settings]="user?.settings?.xRayRules" (rulesUpdated)="onRulesUpdated($event)" />

-
+

Fees @if (user?.subscription?.type === 'Basic') { @@ -96,7 +162,7 @@ hasPermissionToUpdateUserSettings && user?.settings?.isExperimentalFeatures " - [isLoading]="isLoadingPortfolioReport" + [isLoading]="isLoading" [rules]="feeRules" [settings]="user?.settings?.xRayRules" (rulesUpdated)="onRulesUpdated($event)" @@ -111,7 +177,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 36f42fc3e..0207545c2 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'; @@ -15,10 +15,12 @@ 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[]; + public assetClassClusterRiskRules: PortfolioReportRule[]; public currencyClusterRiskRules: PortfolioReportRule[]; public economicMarketClusterRiskRules: PortfolioReportRule[]; public emergencyFundRules: PortfolioReportRule[]; @@ -26,7 +28,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 +90,58 @@ 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.assetClassClusterRiskRules = + rules['assetClassClusterRisk']?.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/pages/pricing/pricing-page.component.ts b/apps/client/src/app/pages/pricing/pricing-page.component.ts index f86a75904..62e2bec0b 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; @@ -33,6 +34,7 @@ export class PricingPageComponent implements OnDestroy, OnInit { 'DATA_IMPORT_AND_EXPORT_TOOLTIP_PREMIUM' ); public isLoggedIn: boolean; + public label: string; public price: number; public priceId: string; public professionalDataProviderTooltipPremium = translate( @@ -58,6 +60,7 @@ export class PricingPageComponent implements OnDestroy, OnInit { this.coupon = subscriptionOffers?.default?.coupon; this.durationExtension = subscriptionOffers?.default?.durationExtension; + this.label = subscriptionOffers?.default?.label; this.price = subscriptionOffers?.default?.price; this.userService.stateChanged @@ -79,6 +82,8 @@ export class PricingPageComponent implements OnDestroy, OnInit { subscriptionOffers?.[ this.user?.subscription?.offer ]?.durationExtension; + this.label = + subscriptionOffers?.[this.user?.subscription?.offer]?.label; this.price = subscriptionOffers?.[this.user?.subscription?.offer]?.price; this.priceId = diff --git a/apps/client/src/app/pages/pricing/pricing-page.html b/apps/client/src/app/pages/pricing/pricing-page.html index 605ad5d2e..3124d99b1 100644 --- a/apps/client/src/app/pages/pricing/pricing-page.html +++ b/apps/client/src/app/pages/pricing/pricing-page.html @@ -179,6 +179,11 @@ [ngClass]="{ active: user?.subscription?.type === 'Premium' }" > + @if (label) { +
+ {{ label }} +
+ }

diff --git a/apps/client/src/app/pages/pricing/pricing-page.scss b/apps/client/src/app/pages/pricing/pricing-page.scss index ad8e97b19..c92ca364f 100644 --- a/apps/client/src/app/pages/pricing/pricing-page.scss +++ b/apps/client/src/app/pages/pricing/pricing-page.scss @@ -23,6 +23,12 @@ ion-icon[name='checkmark-circle-outline'] { color: rgba(var(--palette-primary-500), 1); } + + .badge-container { + left: 0; + right: 0; + top: 0; + } } } 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 3dbce23ec..b343a6e01 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 b7e5757c6..86490688b 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 298cd278d..5aacbd457 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 c1a57d4cf..b6749b5cd 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 eebda3103..ddba58e69 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 79c185959..a188e3a94 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 6e7a5e2a8..f95e78a26 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 cadc62563..c9c0aa044 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 39dbc4813..3a0ec4ffb 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 d900a38ad..d0534417d 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 f8d68baa6..d53465faa 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; @@ -42,7 +43,7 @@ export class UserAccountPageComponent implements OnDestroy, OnInit { showCondition: !!this.user?.subscription }, { - iconName: 'share-social-outline', + iconName: 'key-outline', label: $localize`Access`, path: ['/account', 'access'] } 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 41860014a..74631eeca 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' }) @@ -22,7 +21,7 @@ export class GfWebauthnPageComponent implements OnDestroy, OnInit { private unsubscribeSubject = new Subject(); - constructor( + public constructor( private changeDetectorRef: ChangeDetectorRef, private router: Router, private tokenStorageService: TokenStorageService, 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 511e2656d..c39cecccd 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 7e77339f6..2b30d1041 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/app/services/admin.service.ts b/apps/client/src/app/services/admin.service.ts index 8142b5a47..715ec0f78 100644 --- a/apps/client/src/app/services/admin.service.ts +++ b/apps/client/src/app/services/admin.service.ts @@ -1,30 +1,36 @@ 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'; import { UpdateTagDto } from '@ghostfolio/api/app/tag/update-tag.dto'; import { IDataProviderHistoricalResponse } from '@ghostfolio/api/services/interfaces/interfaces'; +import { + HEADER_KEY_SKIP_INTERCEPTOR, + HEADER_KEY_TOKEN, + PROPERTY_API_KEY_GHOSTFOLIO +} from '@ghostfolio/common/config'; +import { DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config'; import { DATE_FORMAT } from '@ghostfolio/common/helper'; import { AssetProfileIdentifier, AdminData, AdminJobs, AdminMarketData, - AdminMarketDataDetails, AdminUsers, + DataProviderGhostfolioStatusResponse, EnhancedSymbolProfile, 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'; import { JobStatus } from 'bull'; -import { format, parseISO } from 'date-fns'; -import { Observable, map } from 'rxjs'; +import { format } from 'date-fns'; +import { switchMap } from 'rxjs'; +import { environment } from '../../environments/environment'; import { DataService } from './data.service'; @Injectable({ @@ -117,23 +123,20 @@ 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 }) => { + 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/v2/data-providers/ghostfolio/status`, + { headers } + ); + }) + ); } public fetchJobs({ status }: { status?: JobStatus[] }) { @@ -156,8 +159,19 @@ export class AdminService { return this.http.get('/api/v1/tag'); } - public fetchUsers() { - return this.http.get('/api/v1/admin/user'); + public fetchUsers({ + skip, + take = DEFAULT_PAGE_SIZE + }: { + skip?: number; + take?: number; + }) { + let params = new HttpParams(); + + params = params.append('skip', skip); + params = params.append('take', take); + + return this.http.get('/api/v1/admin/user', { params }); } public gather7Days() { @@ -267,20 +281,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 ac9772352..d72c02715 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,8 @@ import { Access, AccountBalancesResponse, Accounts, - AdminMarketDataDetails, + AiPromptResponse, + ApiKeyResponse, AssetProfileIdentifier, BenchmarkMarketDataDetails, BenchmarkResponse, @@ -30,13 +32,14 @@ import { ImportResponse, InfoItem, LookupResponse, + MarketDataDetailsResponse, OAuthResponse, PortfolioDetails, PortfolioDividends, PortfolioHoldingsResponse, PortfolioInvestments, PortfolioPerformanceResponse, - PortfolioReport, + PortfolioReportResponse, PublicPortfolioResponse, User } from '@ghostfolio/common/interfaces'; @@ -50,6 +53,7 @@ import { SortDirection } from '@angular/material/sort'; import { AccountBalance, DataSource, + MarketData, Order as OrderModel, Tag } from '@prisma/client'; @@ -289,7 +293,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) { @@ -315,7 +319,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) { @@ -430,6 +434,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, @@ -623,7 +646,11 @@ export class DataService { } public fetchPortfolioReport() { - return this.http.get('/api/v1/portfolio/report'); + return this.http.get('/api/v1/portfolio/report'); + } + + public fetchPrompt() { + return this.http.get('/api/v1/ai/prompt'); } public fetchPublicPortfolio(aAccessId: string) { @@ -647,36 +674,54 @@ 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 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); + 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) { @@ -703,7 +748,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/apps/client/src/assets/images/blog/black-weeks-2024.jpg b/apps/client/src/assets/images/blog/black-weeks-2024.jpg new file mode 100644 index 000000000..c71827c5e Binary files /dev/null and b/apps/client/src/assets/images/blog/black-weeks-2024.jpg differ diff --git a/apps/client/src/assets/oss-friends.json b/apps/client/src/assets/oss-friends.json index 0fe726510..c7d1be3e9 100644 --- a/apps/client/src/assets/oss-friends.json +++ b/apps/client/src/assets/oss-friends.json @@ -1,6 +1,11 @@ { - "createdAt": "2024-08-31T00: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.", @@ -53,7 +58,7 @@ }, { "name": "Formbricks", - "description": "Survey granular user segments at any point in the user journey. Gather up to 6x more insights with targeted micro-surveys. All open-source.", + "description": "Open source survey software and Experience Management Platform. Understand your customers, keep full control over your data.", "href": "https://formbricks.com" }, { @@ -81,6 +86,11 @@ "description": "Open source, end-to-end encrypted platform that lets you securely manage secrets and configs across your team, devices, and infrastructure.", "href": "https://infisical.com" }, + { + "name": "KeepHQ", + "description": "Keep is an open-source AIOps (AI for IT operations) platform", + "href": "https://www.keephq.dev" + }, { "name": "Langfuse", "description": "Open source LLM engineering platform. Debug, analyze and iterate together.", diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index d4260f529..77636d9e8 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -6,7 +6,7 @@ Característiques apps/client/src/app/app-routing.module.ts - 65 + 74 @@ -14,7 +14,7 @@ Internacionalització apps/client/src/app/app-routing.module.ts - 79 + 88 @@ -22,11 +22,11 @@ Iniciar sessió apps/client/src/app/app-routing.module.ts - 141 + 150 apps/client/src/app/components/header/header.component.ts - 229 + 231 @@ -58,7 +58,7 @@ Finances Personals apps/client/src/app/app.component.html - 56 + 57 @@ -66,11 +66,11 @@ Mercats apps/client/src/app/app.component.html - 60 + 61 apps/client/src/app/components/header/header.component.html - 383 + 398 apps/client/src/app/components/home-market/home-market.html @@ -86,7 +86,7 @@ Recursos apps/client/src/app/app.component.html - 63 + 64 apps/client/src/app/components/header/header.component.html @@ -94,7 +94,7 @@ apps/client/src/app/components/header/header.component.html - 286 + 291 apps/client/src/app/pages/resources/overview/resources-overview.component.html @@ -106,15 +106,15 @@ Sobre apps/client/src/app/app.component.html - 69 + 70 apps/client/src/app/components/header/header.component.html - 112 + 117 apps/client/src/app/components/header/header.component.html - 354 + 364 @@ -122,7 +122,7 @@ Blog apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -204,6 +204,10 @@ apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html 187 + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html + 167 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -214,7 +218,7 @@ Registre de canvis apps/client/src/app/app.component.html - 76 + 77 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -226,11 +230,11 @@ Característiques apps/client/src/app/app.component.html - 78 + 79 apps/client/src/app/components/header/header.component.html - 341 + 351 apps/client/src/app/pages/features/features-page.html @@ -242,7 +246,7 @@ Preguntes Freqüents (FAQ) apps/client/src/app/app.component.html - 82 + 83 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -254,7 +258,7 @@ Llicències apps/client/src/app/app.component.html - 87 + 88 apps/client/src/app/pages/about/license/license-page.html @@ -266,19 +270,19 @@ Preu apps/client/src/app/app.component.html - 96 + 97 apps/client/src/app/components/header/header.component.html - 98 + 99 apps/client/src/app/components/header/header.component.html - 297 + 303 apps/client/src/app/components/header/header.component.html - 368 + 379 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html @@ -290,7 +294,7 @@ Política de privacitat apps/client/src/app/app.component.html - 102 + 103 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -302,7 +306,7 @@ Comunitat apps/client/src/app/app.component.html - 120 + 121 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -330,19 +334,23 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 105 + 104 apps/client/src/app/components/user-account-settings/user-account-settings.html - 110 + 108 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 112 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 117 apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -350,7 +358,7 @@ El risc d’assumir pèrdues en les inversions és substancial. No és recomanable invertir diners que pugui necessitar a curt termini. apps/client/src/app/app.component.html - 199 + 205 @@ -359,27 +367,27 @@ snake-case apps/client/src/app/app.component.ts - 63 + 65 apps/client/src/app/app.component.ts - 65 + 67 apps/client/src/app/app.component.ts - 69 + 71 apps/client/src/app/app.component.ts - 73 + 75 apps/client/src/app/components/header/header.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 85 + 87 apps/client/src/app/core/paths.ts @@ -387,59 +395,59 @@ apps/client/src/app/pages/about/about-page.component.ts - 45 + 46 apps/client/src/app/pages/about/about-page.component.ts - 50 + 51 apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 apps/client/src/app/pages/about/about-page.component.ts - 74 + 75 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 + 12 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 23 @@ -448,7 +456,7 @@ snake-case apps/client/src/app/app.component.ts - 70 + 72 apps/client/src/app/core/paths.ts @@ -456,7 +464,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 @@ -465,7 +473,7 @@ snake-case apps/client/src/app/app.component.ts - 74 + 76 apps/client/src/app/core/paths.ts @@ -473,7 +481,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -482,7 +490,7 @@ snake-case apps/client/src/app/app.component.ts - 76 + 78 apps/client/src/app/core/paths.ts @@ -490,23 +498,23 @@ 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 @@ -515,15 +523,15 @@ snake-case apps/client/src/app/app.component.ts - 77 + 79 apps/client/src/app/components/header/header.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 86 + 88 apps/client/src/app/core/paths.ts @@ -531,47 +539,51 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 + 17 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 + 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 - 14 + 15 apps/client/src/app/pages/pricing/pricing-page.component.ts - 39 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 + 24 @@ -580,15 +592,15 @@ snake-case apps/client/src/app/app.component.ts - 78 + 80 apps/client/src/app/components/header/header.component.ts - 82 + 84 apps/client/src/app/components/header/header.component.ts - 87 + 89 apps/client/src/app/core/paths.ts @@ -596,19 +608,19 @@ 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 @@ -621,27 +633,27 @@ snake-case apps/client/src/app/app.component.ts - 79 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 48 + 74 apps/client/src/app/components/header/header.component.ts - 83 + 85 apps/client/src/app/components/header/header.component.ts - 88 + 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 - 38 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -653,39 +665,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 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 + 15 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + 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 - 25 + 30 @@ -694,11 +710,11 @@ snake-case apps/client/src/app/app.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 89 + 91 apps/client/src/app/core/auth.guard.ts @@ -710,19 +726,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 - 40 + 44 @@ -731,15 +747,15 @@ snake-case apps/client/src/app/app.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 84 + 86 apps/client/src/app/components/header/header.component.ts - 90 + 92 apps/client/src/app/core/paths.ts @@ -747,47 +763,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 + 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 - 13 + 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 @@ -867,7 +883,7 @@ Realment vol revocar aquest accés? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 78 @@ -911,7 +927,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 @@ -1003,7 +1019,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 @@ -1039,7 +1055,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 12 + 16 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 88 @@ -1059,11 +1079,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 @@ -1143,7 +1163,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 26 + 25 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 102 @@ -1219,7 +1243,7 @@ Realment vol suprimir aquest compte? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -1271,7 +1295,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 @@ -1295,7 +1319,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 @@ -1386,17 +1410,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 @@ -1409,14 +1429,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 @@ -1425,17 +1445,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 @@ -1469,17 +1489,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 @@ -1495,7 +1515,7 @@ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 83 + 135 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -1509,13 +1529,17 @@ 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 Punts de referència apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -1523,7 +1547,7 @@ Divises apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -1531,7 +1555,7 @@ ETFs sense País apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -1539,7 +1563,7 @@ ETFs sense Sector apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -1547,7 +1571,7 @@ Filtra per... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -1559,11 +1583,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 @@ -1573,6 +1597,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 @@ -1583,11 +1611,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 @@ -1607,7 +1635,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 @@ -1634,8 +1662,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 @@ -1718,8 +1746,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 + 262 @@ -1727,7 +1755,7 @@ El preu de mercat actual és apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 326 @@ -1749,10 +1777,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 @@ -1761,13 +1785,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 @@ -1779,7 +1807,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 @@ -1795,11 +1823,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 @@ -1815,11 +1843,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 @@ -1831,7 +1859,7 @@ Referència apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -1839,7 +1867,7 @@ Mapatge de Símbols apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -1847,7 +1875,7 @@ Configuració del Proveïdor de Dades apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -1855,7 +1883,7 @@ Prova apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -1863,7 +1891,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 @@ -1879,7 +1907,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 @@ -1931,7 +1959,7 @@ Si us plau, afegiu una divisa: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -1939,7 +1967,7 @@ no és una divisa vàlida! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -1947,7 +1975,7 @@ Està segur qeu vol eliminar aquest cupó? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -1955,7 +1983,7 @@ Està segur que vol eliminar aquesta divisa? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -1963,7 +1991,7 @@ Està segur que vol eliminar aquest missatge del sistema? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -1971,7 +1999,7 @@ Està segur que vol depurar el cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -1979,7 +2007,7 @@ Si us plau, afegeixi el seu missatge del sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -2135,7 +2163,7 @@ apps/client/src/app/components/header/header.component.html - 258 + 263 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2145,17 +2173,13 @@ 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? Està segur que vol eliminar aquesta plataforma? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -2179,7 +2203,7 @@ Plataformes apps/client/src/app/components/admin-settings/admin-settings.component.html - 39 + 81 @@ -2187,7 +2211,7 @@ Etiquetes apps/client/src/app/components/admin-settings/admin-settings.component.html - 45 + 87 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2201,10 +2225,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 - 127 - Add Tag @@ -2219,7 +2239,7 @@ Està segur que vol eliminar aquesta etiqueta? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -2243,7 +2263,7 @@ Està segur que vol eliminar aquest usuari? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 139 @@ -2275,7 +2295,7 @@ Última Solicitut apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -2283,7 +2303,7 @@ Actuar com un altre Usuari apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -2291,7 +2311,7 @@ Eliminar Usuari apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -2327,15 +2347,15 @@ 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 - 41 + 46 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2343,7 +2363,7 @@ Punt de Referència apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2363,7 +2383,7 @@ apps/client/src/app/components/header/header.component.html - 240 + 245 @@ -2375,7 +2395,7 @@ apps/client/src/app/components/header/header.component.html - 250 + 255 @@ -2387,7 +2407,7 @@ apps/client/src/app/components/header/header.component.html - 274 + 279 @@ -2395,7 +2415,7 @@ Millora la teva Subscripció apps/client/src/app/components/header/header.component.html - 180 + 185 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html @@ -2403,11 +2423,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html - 278 + 293 @@ -2415,15 +2435,15 @@ Renova la teva Subscripció apps/client/src/app/components/header/header.component.html - 186 + 191 apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 299 @@ -2431,7 +2451,7 @@ Tu apps/client/src/app/components/header/header.component.html - 206 + 211 @@ -2443,7 +2463,7 @@ apps/client/src/app/components/header/header.component.html - 224 + 229 @@ -2451,7 +2471,7 @@ El meu Ghostfolio apps/client/src/app/components/header/header.component.html - 265 + 270 @@ -2459,7 +2479,7 @@ Sobre Ghostfolio apps/client/src/app/components/header/header.component.html - 306 + 316 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -2471,7 +2491,7 @@ Iniciar Sessió apps/client/src/app/components/header/header.component.html - 397 + 412 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2483,7 +2503,7 @@ Primers Passos apps/client/src/app/components/header/header.component.html - 407 + 422 @@ -2491,11 +2511,11 @@ Oooh! El testimoni de seguretat és incorrecte. apps/client/src/app/components/header/header.component.ts - 244 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 159 @@ -2602,8 +2622,8 @@ 84 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 198 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 154 @@ -2627,7 +2647,7 @@ en Actiiu apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -2635,7 +2655,7 @@ Finalitzat apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -2643,7 +2663,7 @@ Taula apps/client/src/app/components/home-holdings/home-holdings.html - 17 + 16 @@ -2651,7 +2671,7 @@ Gràfic apps/client/src/app/components/home-holdings/home-holdings.html - 20 + 19 @@ -2659,7 +2679,7 @@ Gestionar Activitats apps/client/src/app/components/home-holdings/home-holdings.html - 65 + 63 @@ -2667,7 +2687,7 @@ Por apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2679,7 +2699,7 @@ Cobdícia apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2791,7 +2811,7 @@ Total Amount apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -2799,7 +2819,7 @@ Savings Rate apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -2811,7 +2831,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 255 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2821,6 +2841,10 @@ or or + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 36 + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 31 @@ -2883,7 +2907,7 @@ Market data is delayed for apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -2970,8 +2994,8 @@ 89 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 122 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 34 @@ -3042,12 +3066,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 + 64 @@ -3079,7 +3103,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 203 + 218 @@ -3099,7 +3123,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 207 + 222 @@ -3115,7 +3139,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 211 + 226 @@ -3131,7 +3155,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 215 + 230 @@ -3143,7 +3167,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 230 + 245 @@ -3159,7 +3183,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 242 + 257 @@ -3183,11 +3207,11 @@ Today apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 210 + 220 @@ -3195,11 +3219,11 @@ YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -3207,11 +3231,11 @@ 1Y apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -3219,11 +3243,11 @@ 5Y apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 246 + 256 @@ -3231,11 +3255,11 @@ Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 249 + 259 @@ -3243,7 +3267,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 @@ -3279,7 +3303,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 228 @@ -3287,15 +3311,15 @@ Granted Access apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 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 - 115 + 213 @@ -3303,7 +3327,7 @@ Could not redeem coupon code apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 125 + 177 @@ -3311,7 +3335,7 @@ Coupon code has been redeemed apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 137 + 190 @@ -3319,7 +3343,7 @@ Reload apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 191 @@ -3327,11 +3351,11 @@ 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 - 264 + 279 @@ -3339,7 +3363,7 @@ Try Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 41 + 53 @@ -3347,7 +3371,7 @@ Redeem Coupon apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 67 @@ -3355,7 +3379,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -3363,7 +3387,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 174 @@ -3371,7 +3395,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 + 248 @@ -3379,7 +3403,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 302 @@ -3435,7 +3459,7 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 127 @@ -3443,7 +3467,7 @@ Date and number format apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 129 @@ -3451,7 +3475,7 @@ Appearance apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 152 @@ -3459,7 +3483,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 166 @@ -3467,7 +3491,7 @@ Light apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 167 @@ -3475,7 +3499,7 @@ Dark apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 168 @@ -3483,7 +3507,7 @@ Zen Mode apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 apps/client/src/app/pages/features/features-page.html @@ -3495,7 +3519,7 @@ Distraction-free experience for turbulent times apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 178 @@ -3503,7 +3527,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 194 @@ -3511,7 +3535,7 @@ Sign in with fingerprint apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 195 @@ -3519,7 +3543,7 @@ Experimental Features apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 211 @@ -3527,7 +3551,7 @@ Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 212 @@ -3535,7 +3559,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 236 @@ -3543,7 +3567,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 248 @@ -3551,7 +3575,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 283 @@ -3575,7 +3599,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -3595,19 +3619,23 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 Okay Okay + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 152 + apps/client/src/app/core/http-response.interceptor.ts 81 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -3627,7 +3655,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 @@ -3639,7 +3667,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 @@ -3651,7 +3679,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 @@ -3663,7 +3691,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 @@ -3707,7 +3735,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -3775,7 +3803,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -3787,7 +3815,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3799,7 +3827,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 @@ -3807,7 +3835,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -3819,7 +3847,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3827,15 +3855,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 @@ -3843,7 +3871,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -3887,7 +3915,7 @@ General apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -3895,7 +3923,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 @@ -3907,7 +3935,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 @@ -3919,7 +3947,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -4059,7 +4087,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -4067,7 +4095,7 @@ Get Started apps/client/src/app/pages/features/features-page.html - 303 + 304 apps/client/src/app/pages/public/public-page.html @@ -4087,11 +4115,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 @@ -4103,7 +4131,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -4115,7 +4143,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -4127,7 +4155,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -4187,7 +4215,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 306 + 329 @@ -4579,7 +4607,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -4653,6 +4681,10 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Update Cash Balance @@ -4715,7 +4747,7 @@ Import Activities apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -4723,7 +4755,7 @@ Import Dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 @@ -4731,7 +4763,7 @@ Importing data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -4739,7 +4771,7 @@ Import has been completed apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -4747,7 +4779,7 @@ Validating data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -4773,6 +4805,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 32 + + libs/ui/src/lib/assistant/assistant.html + 127 + Load Dividends @@ -4835,7 +4871,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -4975,7 +5011,7 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 88 + 181 @@ -5027,7 +5063,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -5035,7 +5071,7 @@ Dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 41 libs/ui/src/lib/i18n.ts @@ -5047,15 +5083,15 @@ Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -5063,7 +5099,7 @@ Monthly apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 54 @@ -5071,7 +5107,7 @@ Yearly apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 55 @@ -5087,7 +5123,7 @@ Absolute Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -5095,7 +5131,7 @@ Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -5103,7 +5139,7 @@ Absolute Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -5111,7 +5147,7 @@ Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -5119,7 +5155,7 @@ Absolute Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -5127,7 +5163,7 @@ Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -5135,7 +5171,7 @@ Top apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -5143,7 +5179,7 @@ Bottom apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -5151,7 +5187,7 @@ Portfolio Evolution apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -5159,7 +5195,7 @@ Investment Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -5167,7 +5203,7 @@ Current Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -5175,7 +5211,7 @@ Longest Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -5183,15 +5219,7 @@ Dividend Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 - - - - FIRE - FIRE - - apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 13 + 383 @@ -5226,28 +5254,20 @@ 67 - - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 - - Currency Cluster Risks Currency Cluster Risks - apps/client/src/app/pages/portfolio/fire/fire-page.html - 141 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 58 Account Cluster Risks Account Cluster Risks - apps/client/src/app/pages/portfolio/fire/fire-page.html - 160 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 106 @@ -5299,11 +5319,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 129 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 191 + 206 @@ -5315,11 +5335,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 133 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 195 + 210 @@ -5331,11 +5351,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 137 + 142 apps/client/src/app/pages/pricing/pricing-page.html - 199 + 214 @@ -5347,11 +5367,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 141 + 146 apps/client/src/app/pages/pricing/pricing-page.html - 219 + 234 @@ -5379,7 +5399,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 153 + 158 @@ -5387,7 +5407,7 @@ For new investors who are just getting started with trading. apps/client/src/app/pages/pricing/pricing-page.html - 123 + 128 @@ -5395,11 +5415,11 @@ Fully managed Ghostfolio cloud offering. apps/client/src/app/pages/pricing/pricing-page.html - 152 + 157 apps/client/src/app/pages/pricing/pricing-page.html - 251 + 266 @@ -5407,7 +5427,7 @@ For ambitious investors who need the full picture of their financial assets. apps/client/src/app/pages/pricing/pricing-page.html - 184 + 199 @@ -5415,7 +5435,7 @@ Email and Chat Support apps/client/src/app/pages/pricing/pricing-page.html - 247 + 262 @@ -5423,7 +5443,7 @@ One-time payment, no auto-renewal. apps/client/src/app/pages/pricing/pricing-page.html - 288 + 303 @@ -5431,7 +5451,7 @@ It’s free. apps/client/src/app/pages/pricing/pricing-page.html - 309 + 332 @@ -5539,7 +5559,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5587,7 +5607,7 @@ Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5599,7 +5619,7 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5879,7 +5899,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5891,7 +5911,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5931,7 +5951,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6019,7 +6039,7 @@ Do you really want to delete these activities? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -6027,7 +6047,7 @@ Do you really want to delete this activity? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -6035,7 +6055,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 139 + 143 @@ -6043,7 +6063,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6051,7 +6071,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6059,7 +6079,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6067,7 +6087,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6075,7 +6095,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -6083,7 +6103,7 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -6091,7 +6111,7 @@ years libs/ui/src/lib/assistant/assistant.component.ts - 246 + 256 @@ -6122,20 +6142,12 @@ 93 - - Asset Classes - Asset Classes - - libs/ui/src/lib/assistant/assistant.html - 138 - - Reset Filters Reset Filters libs/ui/src/lib/assistant/assistant.html - 157 + 185 @@ -6143,7 +6155,7 @@ Apply Filters libs/ui/src/lib/assistant/assistant.html - 167 + 195 @@ -6239,7 +6251,7 @@ Deposit libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -6247,7 +6259,7 @@ Interest libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -6259,7 +6271,7 @@ Savings libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -6271,7 +6283,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 46 + 40 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 116 @@ -6427,7 +6443,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -6707,15 +6723,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 + 28 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -6731,11 +6751,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 @@ -6743,7 +6763,7 @@ Show more libs/ui/src/lib/top-holdings/top-holdings.component.html - 81 + 174 @@ -6751,7 +6771,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6759,7 +6779,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6767,7 +6787,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6775,7 +6795,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6783,7 +6803,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6791,7 +6811,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6799,7 +6819,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6807,7 +6827,7 @@ Personal Finance apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6815,7 +6835,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6823,7 +6843,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6831,7 +6851,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6839,7 +6859,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6847,7 +6867,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6855,7 +6875,7 @@ Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7007,7 +7027,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 317 @@ -7030,8 +7050,8 @@ Inactive Inactive - apps/client/src/app/pages/portfolio/fire/fire-page.html - 217 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 173 @@ -7095,7 +7115,7 @@ Threshold Min apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 9 + 54 @@ -7103,7 +7123,7 @@ Threshold Max apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 44 + 92 @@ -7111,7 +7131,7 @@ Close apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 77 + 129 @@ -7127,7 +7147,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 62 + 74 @@ -7303,7 +7323,7 @@ Oops! Could not find any assets. libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html - 37 + 40 @@ -7314,20 +7334,12 @@ 4 - - NEW - NEW - - apps/client/src/app/components/admin-settings/admin-settings.component.html - 14 - - - - Set API Key - Set API Key + + Set API key + Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 70 @@ -7338,14 +7350,6 @@ 23 - - Notify me - Notify me - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 32 - - Get access to 100’000+ tickers from over 50 exchanges Get access to 100’000+ tickers from over 50 exchanges @@ -7378,14 +7382,6 @@ 93 - - Allocation Cluster Risks - Allocation Cluster Risks - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 179 - - Glossary Glossary @@ -7395,7 +7391,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7407,7 +7403,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7416,7 +7412,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,13 +7425,245 @@ 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 21 + + Threshold range + Threshold range + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 9 + + + + 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. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 5 + + + + Economic Market Cluster Risks + Economic Market Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 130 + + + + of + of + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 42 + + + + daily requests + daily requests + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 44 + + + + Remove API key + Remove API key + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 58 + + + + Do you really want to delete the API key? + Do you really want to delete the API key? + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 93 + + + + Please enter your Ghostfolio API key: + Please enter your Ghostfolio API key: + + apps/client/src/app/pages/api/api-page.component.ts + 40 + + + + Notify me + Notify me + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 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 + 43 + + + + 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 + 139 + + + + 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 + 154 + + + + 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 + 157 + + + + 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 + 162 + + + + 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 + + + + 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 + + + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 62 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 135 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 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 + + + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + + + Early Access + Early Access + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 16 + + diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 903e82ceb..343ae2f53 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -22,7 +22,7 @@ Das Ausfallrisiko beim Börsenhandel kann erheblich sein. Es ist nicht ratsam, Geld zu investieren, welches du kurzfristig benötigst. apps/client/src/app/app.component.html - 199 + 205 @@ -74,7 +74,7 @@ Möchtest du diese Zugangsberechtigung wirklich widerrufen? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 78 @@ -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 @@ -166,7 +166,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 12 + 16 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 88 @@ -238,7 +242,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 26 + 25 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 102 @@ -314,7 +322,7 @@ Möchtest du dieses Konto wirklich löschen? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -338,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 @@ -362,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 @@ -445,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 @@ -468,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 @@ -484,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 @@ -528,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 @@ -554,7 +558,7 @@ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 83 + 135 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -568,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 @@ -578,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 @@ -605,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 @@ -614,7 +622,7 @@ Bitte Währung hinzufügen: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -622,7 +630,7 @@ Möchtest du diesen Gutscheincode wirklich löschen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -630,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 @@ -638,7 +646,7 @@ Möchtest du den Cache wirklich leeren? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -646,7 +654,7 @@ Bitte gebe deine Systemmeldung ein: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -778,7 +786,7 @@ Möchtest du diesen Benutzer wirklich löschen? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 139 @@ -790,7 +798,7 @@ apps/client/src/app/components/header/header.component.html - 224 + 229 @@ -814,7 +822,7 @@ Letzte Abfrage apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -834,7 +842,7 @@ apps/client/src/app/components/header/header.component.html - 240 + 245 @@ -846,7 +854,7 @@ apps/client/src/app/components/header/header.component.html - 250 + 255 @@ -866,7 +874,7 @@ apps/client/src/app/components/header/header.component.html - 258 + 263 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -876,10 +884,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Admin Control @@ -890,7 +894,7 @@ apps/client/src/app/components/header/header.component.html - 274 + 279 @@ -898,7 +902,7 @@ Ressourcen apps/client/src/app/app.component.html - 63 + 64 apps/client/src/app/components/header/header.component.html @@ -906,7 +910,7 @@ apps/client/src/app/components/header/header.component.html - 286 + 291 apps/client/src/app/pages/resources/overview/resources-overview.component.html @@ -918,19 +922,19 @@ Preise apps/client/src/app/app.component.html - 96 + 97 apps/client/src/app/components/header/header.component.html - 98 + 99 apps/client/src/app/components/header/header.component.html - 297 + 303 apps/client/src/app/components/header/header.component.html - 368 + 379 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html @@ -942,15 +946,15 @@ Über apps/client/src/app/app.component.html - 69 + 70 apps/client/src/app/components/header/header.component.html - 112 + 117 apps/client/src/app/components/header/header.component.html - 354 + 364 @@ -958,7 +962,7 @@ Ich apps/client/src/app/components/header/header.component.html - 206 + 211 @@ -966,7 +970,7 @@ Mein Ghostfolio apps/client/src/app/components/header/header.component.html - 265 + 270 @@ -974,7 +978,7 @@ Über Ghostfolio apps/client/src/app/components/header/header.component.html - 306 + 316 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -986,11 +990,11 @@ Features apps/client/src/app/app.component.html - 78 + 79 apps/client/src/app/components/header/header.component.html - 341 + 351 apps/client/src/app/pages/features/features-page.html @@ -1002,11 +1006,11 @@ Märkte apps/client/src/app/app.component.html - 60 + 61 apps/client/src/app/components/header/header.component.html - 383 + 398 apps/client/src/app/components/home-market/home-market.html @@ -1022,7 +1026,7 @@ Registrieren apps/client/src/app/pages/features/features-page.html - 303 + 304 apps/client/src/app/pages/public/public-page.html @@ -1034,11 +1038,11 @@ Einloggen apps/client/src/app/app-routing.module.ts - 141 + 150 apps/client/src/app/components/header/header.component.ts - 229 + 231 @@ -1046,11 +1050,11 @@ Ups! Falsches Sicherheits-Token. apps/client/src/app/components/header/header.component.ts - 244 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 159 @@ -1058,7 +1062,7 @@ Aktivitäten verwalten apps/client/src/app/components/home-holdings/home-holdings.html - 65 + 63 @@ -1086,7 +1090,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 255 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1096,6 +1100,10 @@ or oder + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 36 + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 31 @@ -1150,7 +1158,7 @@ Einloggen apps/client/src/app/components/header/header.component.html - 397 + 412 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1245,8 +1253,8 @@ 89 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 122 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 34 @@ -1297,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 + 64 @@ -1310,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 @@ -1330,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 @@ -1346,7 +1354,7 @@ Tags apps/client/src/app/components/admin-settings/admin-settings.component.html - 45 + 87 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1360,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 - 127 - Report Data Glitch @@ -1382,7 +1386,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 46 + 40 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 116 @@ -1410,11 +1418,11 @@ Heute apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 210 + 220 @@ -1422,11 +1430,11 @@ YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -1434,11 +1442,11 @@ 1J apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -1446,11 +1454,11 @@ 5J apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 246 + 256 @@ -1458,23 +1466,27 @@ Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 249 + 259 Okay Okay + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 152 + apps/client/src/app/core/http-response.interceptor.ts 81 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -1486,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 @@ -1498,7 +1510,7 @@ Datenschutzbestimmungen apps/client/src/app/app.component.html - 102 + 103 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1510,7 +1522,7 @@ Blog apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1592,6 +1604,10 @@ apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html 187 + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html + 167 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -1602,7 +1618,7 @@ Changelog apps/client/src/app/app.component.html - 76 + 77 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1614,7 +1630,7 @@ Lizenz apps/client/src/app/app.component.html - 87 + 88 apps/client/src/app/pages/about/license/license-page.html @@ -1626,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 @@ -1641,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 - 115 + 213 @@ -1654,7 +1670,7 @@ Gutscheincode konnte nicht eingelöst werden apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 125 + 177 @@ -1662,7 +1678,7 @@ Gutscheincode wurde eingelöst apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 137 + 190 @@ -1670,7 +1686,7 @@ Neu laden apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 191 @@ -1678,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 + 248 @@ -1692,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 @@ -1706,11 +1726,11 @@ 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 - 264 + 279 @@ -1718,7 +1738,7 @@ Premium ausprobieren apps/client/src/app/components/user-account-membership/user-account-membership.html - 41 + 53 @@ -1726,7 +1746,7 @@ Gutschein einlösen apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 67 @@ -1750,7 +1770,7 @@ Lokalität apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 127 @@ -1758,7 +1778,7 @@ Datums- und Zahlenformat apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 129 @@ -1766,7 +1786,7 @@ Zen Modus apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 apps/client/src/app/pages/features/features-page.html @@ -1778,7 +1798,7 @@ Einloggen mit Fingerabdruck apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 195 @@ -1790,15 +1810,15 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 228 Granted Access - Zugangsberechtigung + Gewährte Zugangsberechtigung apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -1858,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 @@ -1962,7 +1982,7 @@ Features apps/client/src/app/app-routing.module.ts - 65 + 74 @@ -1970,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 @@ -1986,7 +2006,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -1998,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 @@ -2010,7 +2030,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -2022,7 +2042,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -2110,7 +2130,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -2126,7 +2146,7 @@ Zeitstrahl der Investitionen apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -2134,7 +2154,7 @@ Gewinner apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -2142,15 +2162,7 @@ Verlierer apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 - - - - FIRE - FIRE - - apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 13 + 246 @@ -2190,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 @@ -2310,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 @@ -2330,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 @@ -2344,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 @@ -2354,7 +2370,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -2362,7 +2378,7 @@ Daten importieren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -2370,7 +2386,7 @@ Der Import wurde abgeschlossen apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -2386,15 +2402,15 @@ 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 - 41 + 46 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2514,7 +2530,7 @@ Aktivitäten importieren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -2562,7 +2578,7 @@ Möchtest du diese Aktivität wirklich löschen? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -2618,7 +2634,7 @@ Registrieren apps/client/src/app/components/header/header.component.html - 407 + 422 @@ -2642,7 +2658,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -2654,7 +2670,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -2698,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 @@ -2718,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 @@ -2730,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 @@ -2790,7 +2806,7 @@ Monatlich apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 54 @@ -2798,7 +2814,7 @@ Einlage libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -2806,7 +2822,7 @@ Verzinsung libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -2818,7 +2834,7 @@ Ersparnisse libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -2842,7 +2858,7 @@ Angst apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2854,7 +2870,7 @@ Gier apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2866,7 +2882,7 @@ Filtern nach... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -2894,7 +2910,7 @@ Experimentelle Funktionen apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 211 @@ -2910,7 +2926,7 @@ Benchmark apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2934,7 +2950,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -2942,7 +2958,7 @@ Aussehen apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 152 @@ -2950,7 +2966,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 166 @@ -2958,7 +2974,7 @@ Hell apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 167 @@ -2966,7 +2982,7 @@ Dunkel apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 168 @@ -2974,7 +2990,7 @@ Gesamtbetrag apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -2982,7 +2998,7 @@ Portfolio Wertentwicklung apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -2990,7 +3006,7 @@ Sparrate apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -3138,7 +3154,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -3146,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 @@ -3226,7 +3242,7 @@ Community apps/client/src/app/app.component.html - 120 + 121 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -3254,19 +3270,23 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 105 + 104 apps/client/src/app/components/user-account-settings/user-account-settings.html - 110 + 108 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 112 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 117 apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -3290,7 +3310,7 @@ Symbol Zuordnung apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -3298,7 +3318,7 @@ Zeitstrahl der Dividenden apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -3306,7 +3326,7 @@ Dividenden apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 41 libs/ui/src/lib/i18n.ts @@ -3334,16 +3354,12 @@ Daten validieren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 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 @@ -3352,6 +3368,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 @@ -3362,7 +3382,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3374,7 +3394,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3386,7 +3406,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3396,6 +3416,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 32 + + libs/ui/src/lib/assistant/assistant.html + 127 + Load Dividends @@ -3410,7 +3434,7 @@ Jährlich apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 55 @@ -3418,15 +3442,19 @@ Dividenden importieren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 Valid until Gültig bis + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 28 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -3490,7 +3518,7 @@ Unbeschwertes Erlebnis für turbulente Zeiten apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 178 @@ -3498,7 +3526,7 @@ Vorschau auf kommende Funktionalität apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 212 @@ -3522,7 +3550,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 203 + 218 @@ -3538,7 +3566,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 211 + 226 @@ -3554,7 +3582,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 215 + 230 @@ -3570,7 +3598,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 242 + 257 @@ -3586,7 +3614,7 @@ Abonnement abschliessen apps/client/src/app/components/header/header.component.html - 180 + 185 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html @@ -3594,11 +3622,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html - 278 + 293 @@ -3618,11 +3646,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 129 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 191 + 206 @@ -3634,11 +3662,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 133 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 195 + 210 @@ -3650,11 +3678,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 137 + 142 apps/client/src/app/pages/pricing/pricing-page.html - 199 + 214 @@ -3674,7 +3702,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 153 + 158 @@ -3682,7 +3710,7 @@ Für Einsteiger, die gerade mit dem Börsenhandel beginnen. apps/client/src/app/pages/pricing/pricing-page.html - 123 + 128 @@ -3690,11 +3718,11 @@ Vollständig verwaltetes Ghostfolio Cloud-Angebot. apps/client/src/app/pages/pricing/pricing-page.html - 152 + 157 apps/client/src/app/pages/pricing/pricing-page.html - 251 + 266 @@ -3702,7 +3730,7 @@ Für ambitionierte Anleger, die den vollständigen Überblick über ihr Anlagevermögen benötigen. apps/client/src/app/pages/pricing/pricing-page.html - 184 + 199 @@ -3710,7 +3738,7 @@ Einmalige Zahlung, keine automatische Erneuerung. apps/client/src/app/pages/pricing/pricing-page.html - 288 + 303 @@ -3726,7 +3754,7 @@ Es ist kostenlos. apps/client/src/app/pages/pricing/pricing-page.html - 309 + 332 @@ -3741,8 +3769,8 @@ 84 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 198 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 154 @@ -3762,7 +3790,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 207 + 222 @@ -3782,11 +3810,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 141 + 146 apps/client/src/app/pages/pricing/pricing-page.html - 219 + 234 @@ -3810,7 +3838,7 @@ E-Mail und Chat Support apps/client/src/app/pages/pricing/pricing-page.html - 247 + 262 @@ -3870,7 +3898,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 230 + 245 @@ -3886,15 +3914,15 @@ Abonnement erneuern apps/client/src/app/components/header/header.component.html - 186 + 191 apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 299 @@ -3910,7 +3938,7 @@ Benutzer verwenden apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -3918,7 +3946,7 @@ Benutzer löschen apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -3926,7 +3954,7 @@ Möchtest du diese Aktivitäten wirklich löschen? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3958,7 +3986,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 @@ -3974,7 +4002,7 @@ Möchtest du diese Plattform wirklich löschen? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -3982,7 +4010,7 @@ Plattformen apps/client/src/app/components/admin-settings/admin-settings.component.html - 39 + 81 @@ -4034,7 +4062,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 @@ -4042,7 +4070,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -4130,7 +4158,7 @@ Private Finanzen apps/client/src/app/app.component.html - 56 + 57 @@ -4138,7 +4166,7 @@ Häufig gestellte Fragen (FAQ) apps/client/src/app/app.component.html - 82 + 83 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -4150,7 +4178,7 @@ Aktueller Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4158,7 +4186,7 @@ Längster Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4210,7 +4238,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 @@ -4222,7 +4250,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 @@ -4330,7 +4358,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -4346,7 +4374,7 @@ Scraper Konfiguration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -4590,7 +4618,7 @@ ETFs ohne Länder apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -4598,7 +4626,7 @@ ETFs ohne Sektoren apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -4714,7 +4742,7 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 88 + 181 @@ -4738,7 +4766,7 @@ Biometrische Authentifizierung apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 194 @@ -4822,7 +4850,7 @@ Daten exportieren apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 236 @@ -4830,7 +4858,7 @@ Währungen apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -4922,7 +4950,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 306 + 329 @@ -5191,7 +5219,7 @@ snake-case apps/client/src/app/app.component.ts - 76 + 78 apps/client/src/app/core/paths.ts @@ -5199,23 +5227,23 @@ 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 @@ -5224,15 +5252,15 @@ snake-case apps/client/src/app/app.component.ts - 77 + 79 apps/client/src/app/components/header/header.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 86 + 88 apps/client/src/app/core/paths.ts @@ -5240,47 +5268,51 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 + 17 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 + 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 - 14 + 15 apps/client/src/app/pages/pricing/pricing-page.component.ts - 39 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 + 24 @@ -5289,27 +5321,27 @@ snake-case apps/client/src/app/app.component.ts - 63 + 65 apps/client/src/app/app.component.ts - 65 + 67 apps/client/src/app/app.component.ts - 69 + 71 apps/client/src/app/app.component.ts - 73 + 75 apps/client/src/app/components/header/header.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 85 + 87 apps/client/src/app/core/paths.ts @@ -5317,59 +5349,59 @@ apps/client/src/app/pages/about/about-page.component.ts - 45 + 46 apps/client/src/app/pages/about/about-page.component.ts - 50 + 51 apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 apps/client/src/app/pages/about/about-page.component.ts - 74 + 75 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 + 12 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 23 @@ -5378,7 +5410,7 @@ snake-case apps/client/src/app/app.component.ts - 74 + 76 apps/client/src/app/core/paths.ts @@ -5386,7 +5418,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -5395,7 +5427,7 @@ snake-case apps/client/src/app/app.component.ts - 70 + 72 apps/client/src/app/core/paths.ts @@ -5403,7 +5435,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 @@ -5412,15 +5444,15 @@ snake-case apps/client/src/app/app.component.ts - 78 + 80 apps/client/src/app/components/header/header.component.ts - 82 + 84 apps/client/src/app/components/header/header.component.ts - 87 + 89 apps/client/src/app/core/paths.ts @@ -5428,19 +5460,19 @@ 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 @@ -5453,27 +5485,27 @@ snake-case apps/client/src/app/app.component.ts - 79 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 48 + 74 apps/client/src/app/components/header/header.component.ts - 83 + 85 apps/client/src/app/components/header/header.component.ts - 88 + 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 - 38 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -5485,39 +5517,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 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 + 15 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + 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 - 25 + 30 @@ -5526,11 +5562,11 @@ snake-case apps/client/src/app/app.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 89 + 91 apps/client/src/app/core/auth.guard.ts @@ -5542,19 +5578,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 - 40 + 44 @@ -5563,15 +5599,15 @@ snake-case apps/client/src/app/app.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 84 + 86 apps/client/src/app/components/header/header.component.ts - 90 + 92 apps/client/src/app/core/paths.ts @@ -5579,47 +5615,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 + 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 - 13 + 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 @@ -5695,7 +5731,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5727,7 +5763,7 @@ Schweiz apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5739,7 +5775,7 @@ Weltweit apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5851,7 +5887,7 @@ Möchtest du diesen Tag wirklich löschen? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5870,28 +5906,20 @@ 10 - - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - Ghostfolio X-ray nutzt statische Analysen, um potenzielle Probleme und Risiken in deinem Portfolio zu identifizieren. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 - - Currency Cluster Risks Währungsklumpenrisiken - apps/client/src/app/pages/portfolio/fire/fire-page.html - 141 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 58 Account Cluster Risks Kontoklumpenrisiken - apps/client/src/app/pages/portfolio/fire/fire-page.html - 160 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 106 @@ -5911,7 +5939,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -5963,7 +5991,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5975,7 +6003,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5983,7 +6011,7 @@ Finde Position... libs/ui/src/lib/assistant/assistant.component.ts - 139 + 143 @@ -6083,7 +6111,7 @@ Ups, der Cash-Bestand Transfer ist fehlgeschlagen. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6114,8 +6142,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 + 262 @@ -6123,7 +6151,7 @@ Möchtest du diese Systemmeldung wirklich löschen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6179,7 +6207,7 @@ Möchtest du diesen Cash-Bestand wirklich löschen? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6187,7 +6215,7 @@ ist eine ungültige Währung! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6203,7 +6231,7 @@ Der aktuelle Marktpreis ist apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 326 @@ -6211,7 +6239,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6251,7 +6279,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 @@ -6271,7 +6299,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6279,7 +6307,7 @@ Die Marktdaten sind verzögert für apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6287,15 +6315,15 @@ Einlage apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6303,7 +6331,7 @@ Absolute Anlage Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6311,7 +6339,7 @@ Anlage Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6319,7 +6347,7 @@ Absolute Währungsperformance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6327,7 +6355,7 @@ Währungsperformance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6335,7 +6363,7 @@ Absolute Netto Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6343,7 +6371,7 @@ Netto Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6351,7 +6379,7 @@ Seit Wochenbeginn libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6359,7 +6387,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6367,7 +6395,7 @@ Seit Monatsbeginn libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6375,7 +6403,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6383,7 +6411,7 @@ Seit Jahresbeginn libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -6419,7 +6447,7 @@ Filter zurücksetzen libs/ui/src/lib/assistant/assistant.html - 157 + 185 @@ -6427,7 +6455,7 @@ Jahr libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -6435,15 +6463,7 @@ Jahre libs/ui/src/lib/assistant/assistant.component.ts - 246 - - - - Asset Classes - Anlageklassen - - libs/ui/src/lib/assistant/assistant.html - 138 + 256 @@ -6451,7 +6471,7 @@ Filter anwenden libs/ui/src/lib/assistant/assistant.html - 167 + 195 @@ -6467,7 +6487,7 @@ Allgemein apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6475,7 +6495,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 @@ -6487,7 +6507,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 @@ -6499,7 +6519,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6535,7 +6555,7 @@ Aktiv apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6543,7 +6563,7 @@ Abgeschlossen apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6623,7 +6643,7 @@ Internationalisierung apps/client/src/app/app-routing.module.ts - 79 + 88 @@ -6631,7 +6651,7 @@ Möchtest du dieses Ghostfolio Konto wirklich schliessen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 174 @@ -6639,7 +6659,7 @@ Gefahrenzone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 248 @@ -6647,7 +6667,7 @@ Konto schliessen apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 283 @@ -6679,7 +6699,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 + 302 @@ -6687,7 +6707,7 @@ Mehr anzeigen libs/ui/src/lib/top-holdings/top-holdings.component.html - 81 + 174 @@ -6695,7 +6715,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6727,7 +6747,7 @@ Tabelle apps/client/src/app/components/home-holdings/home-holdings.html - 17 + 16 @@ -6735,7 +6755,7 @@ Diagramm apps/client/src/app/components/home-holdings/home-holdings.html - 20 + 19 @@ -6751,7 +6771,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6759,7 +6779,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6767,7 +6787,7 @@ Budgetierung apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6775,7 +6795,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6783,7 +6803,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6791,7 +6811,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6799,7 +6819,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6807,7 +6827,7 @@ Persönliche Finanzen apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6815,7 +6835,7 @@ Datenschutz apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6823,7 +6843,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6831,7 +6851,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6839,7 +6859,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6847,7 +6867,7 @@ Vermögen apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6855,7 +6875,7 @@ Vermögensverwaltung apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7007,7 +7027,7 @@ Fehler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 317 @@ -7030,8 +7050,8 @@ Inactive Inaktiv - apps/client/src/app/pages/portfolio/fire/fire-page.html - 217 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 173 @@ -7076,7 +7096,7 @@ Change with currency effect Change - Änderung mit Währungseffekt Change + Änderung mit Währungseffekt Änderung apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 50 @@ -7092,18 +7112,18 @@ Threshold Min - Threshold Min + Schwellenwert (Minimum) apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 9 + 54 Threshold Max - Threshold Max + Schwellenwert (Maximum) apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 44 + 92 @@ -7111,7 +7131,7 @@ Schliessen apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 77 + 129 @@ -7127,7 +7147,7 @@ Keine automatische Erneuerung. apps/client/src/app/components/user-account-membership/user-account-membership.html - 62 + 74 @@ -7303,7 +7323,7 @@ Ups! Es konnten leider keine Assets gefunden werden. libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html - 37 + 40 @@ -7314,20 +7334,12 @@ 4 - - NEW - NEU - - apps/client/src/app/components/admin-settings/admin-settings.component.html - 14 - - - - Set API Key + + Set API key API-Schlüssel setzen apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 70 @@ -7338,14 +7350,6 @@ 23 - - Notify me - Benachrichtige mich - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 32 - - Get access to 100’000+ tickers from over 50 exchanges Erhalte Zugang zu 100’000+ Tickern von über 50 Handelsplätzen @@ -7378,14 +7382,6 @@ 93 - - Allocation Cluster Risks - Allokationsklumpenrisiken - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 179 - - Glossary Lexikon @@ -7395,7 +7391,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7407,7 +7403,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7416,7 +7412,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,13 +7425,245 @@ 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 21 + + Threshold range + Schwellenwertbereich + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 9 + + + + 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 nutzt statische Analysen, um potenzielle Probleme und Risiken in deinem Portfolio aufzudecken. Passe die untenstehenden Regeln an und lege individuelle Schwellenwerte fest, um sie mit deiner persönlichen Anlagestrategie abzustimmen. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 5 + + + + Economic Market Cluster Risks + Wirtschaftsraumklumpenrisiken + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 130 + + + + of + von + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 42 + + + + daily requests + täglichen Anfragen + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 44 + + + + Remove API key + API-Schlüssel löschen + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 58 + + + + Do you really want to delete the API key? + Möchtest du den API-Schlüssel wirklich löschen? + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 93 + + + + Please enter your Ghostfolio API key: + Bitte gib den API-Schlüssel ein: + + apps/client/src/app/pages/api/api-page.component.ts + 40 + + + + Notify me + Benachrichtige mich + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 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 + 43 + + + + 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 + 139 + + + + 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 + 154 + + + + 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 + 157 + + + + 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 + 162 + + + + 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 + + + + 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 + + + + Save + Speichern + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 62 + + + + Asset Class Cluster Risks + Anlageklasseklumpenrisiken + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + + + Me + Ich + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 135 + + + + Received Access + Erhaltene Zugangsberechtigung + + apps/client/src/app/components/user-account-access/user-account-access.html + 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 + + + + AI prompt has been copied to the clipboard + KI-Anweisung wurde in die Zwischenablage kopiert + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Kopiere KI-Anweisung die Zwischenablage + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link wurde in die Zwischenablage kopiert + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + + + Early Access + Early Access + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 16 + + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 746647823..f3ea374e3 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -23,7 +23,7 @@ El riesgo de pérdida en trading puede ser sustancial. No es aconsejable invertir dinero que puedas necesitar a corto plazo. apps/client/src/app/app.component.html - 199 + 205 @@ -75,7 +75,7 @@ ¿Quieres revocar el acceso concedido? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 78 @@ -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 @@ -167,7 +167,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 12 + 16 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 88 @@ -239,7 +243,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 26 + 25 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 102 @@ -315,7 +323,7 @@ ¿Estás seguro de eliminar esta cuenta? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -339,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 @@ -363,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 @@ -446,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 @@ -469,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 @@ -485,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 @@ -529,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 @@ -555,7 +559,7 @@ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 83 + 135 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -569,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 @@ -579,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 @@ -606,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 @@ -615,7 +623,7 @@ Por favor, añade una divisa: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -623,7 +631,7 @@ ¿Estás seguro de eliminar este cupón? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -631,7 +639,7 @@ ¿Estás seguro de eliminar esta divisa? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -639,7 +647,7 @@ ¿Estás seguro de limpiar la caché? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -647,7 +655,7 @@ Por favor, establece tu mensaje del sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -779,7 +787,7 @@ ¿Estás seguro de eliminar este usuario? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 139 @@ -791,7 +799,7 @@ apps/client/src/app/components/header/header.component.html - 224 + 229 @@ -815,7 +823,7 @@ Última petición apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -835,7 +843,7 @@ apps/client/src/app/components/header/header.component.html - 240 + 245 @@ -847,7 +855,7 @@ apps/client/src/app/components/header/header.component.html - 250 + 255 @@ -867,7 +875,7 @@ apps/client/src/app/components/header/header.component.html - 258 + 263 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -877,10 +885,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Admin Control @@ -891,7 +895,7 @@ apps/client/src/app/components/header/header.component.html - 274 + 279 @@ -899,7 +903,7 @@ Recursos apps/client/src/app/app.component.html - 63 + 64 apps/client/src/app/components/header/header.component.html @@ -907,7 +911,7 @@ apps/client/src/app/components/header/header.component.html - 286 + 291 apps/client/src/app/pages/resources/overview/resources-overview.component.html @@ -919,19 +923,19 @@ Precios apps/client/src/app/app.component.html - 96 + 97 apps/client/src/app/components/header/header.component.html - 98 + 99 apps/client/src/app/components/header/header.component.html - 297 + 303 apps/client/src/app/components/header/header.component.html - 368 + 379 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html @@ -943,15 +947,15 @@ Sobre apps/client/src/app/app.component.html - 69 + 70 apps/client/src/app/components/header/header.component.html - 112 + 117 apps/client/src/app/components/header/header.component.html - 354 + 364 @@ -959,7 +963,7 @@ apps/client/src/app/components/header/header.component.html - 206 + 211 @@ -967,7 +971,7 @@ Mi Ghostfolio apps/client/src/app/components/header/header.component.html - 265 + 270 @@ -975,7 +979,7 @@ Sobre Ghostfolio apps/client/src/app/components/header/header.component.html - 306 + 316 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -987,11 +991,11 @@ Funcionalidades apps/client/src/app/app.component.html - 78 + 79 apps/client/src/app/components/header/header.component.html - 341 + 351 apps/client/src/app/pages/features/features-page.html @@ -1003,11 +1007,11 @@ Mercados apps/client/src/app/app.component.html - 60 + 61 apps/client/src/app/components/header/header.component.html - 383 + 398 apps/client/src/app/components/home-market/home-market.html @@ -1023,7 +1027,7 @@ Empezar apps/client/src/app/pages/features/features-page.html - 303 + 304 apps/client/src/app/pages/public/public-page.html @@ -1035,11 +1039,11 @@ Iniciar sesión apps/client/src/app/app-routing.module.ts - 141 + 150 apps/client/src/app/components/header/header.component.ts - 229 + 231 @@ -1047,11 +1051,11 @@ Vaya! Token de seguridad incorrecto. apps/client/src/app/components/header/header.component.ts - 244 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 159 @@ -1059,7 +1063,7 @@ Gestión de las operaciones apps/client/src/app/components/home-holdings/home-holdings.html - 65 + 63 @@ -1087,7 +1091,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 255 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1097,6 +1101,10 @@ or o + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 36 + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 31 @@ -1151,7 +1159,7 @@ Iniciar sesión apps/client/src/app/components/header/header.component.html - 397 + 412 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1246,8 +1254,8 @@ 89 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 122 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 34 @@ -1298,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 + 64 @@ -1311,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 @@ -1331,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 @@ -1347,7 +1355,7 @@ Etiquetas apps/client/src/app/components/admin-settings/admin-settings.component.html - 45 + 87 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1361,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 - 127 - Report Data Glitch @@ -1383,7 +1387,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 46 + 40 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 116 @@ -1411,11 +1419,11 @@ Hoy apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 210 + 220 @@ -1423,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 - 220 + 230 @@ -1435,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 - 224 + 234 @@ -1447,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 - 246 + 256 @@ -1459,23 +1467,27 @@ Máximo apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 249 + 259 Okay De acuerdo + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 152 + apps/client/src/app/core/http-response.interceptor.ts 81 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -1487,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 @@ -1499,7 +1511,7 @@ Política de privacidad apps/client/src/app/app.component.html - 102 + 103 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1511,7 +1523,7 @@ Blog apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1593,6 +1605,10 @@ apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html 187 + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html + 167 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -1603,7 +1619,7 @@ Registro de cambios apps/client/src/app/app.component.html - 76 + 77 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1615,7 +1631,7 @@ Licencia de uso apps/client/src/app/app.component.html - 87 + 88 apps/client/src/app/pages/about/license/license-page.html @@ -1627,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 @@ -1642,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 - 115 + 213 @@ -1655,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 - 125 + 177 @@ -1663,7 +1679,7 @@ El codigo de cupón ha sido canjeado apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 137 + 190 @@ -1671,7 +1687,7 @@ Refrescar apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 191 @@ -1679,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 + 248 @@ -1693,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 @@ -1707,11 +1727,11 @@ 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 - 264 + 279 @@ -1719,7 +1739,7 @@ Prueba Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 41 + 53 @@ -1727,7 +1747,7 @@ Canjea el cupón apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 67 @@ -1751,7 +1771,7 @@ Ubicación apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 127 @@ -1759,7 +1779,7 @@ Formato de fecha y número apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 129 @@ -1767,7 +1787,7 @@ Modo Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 apps/client/src/app/pages/features/features-page.html @@ -1779,7 +1799,7 @@ Iniciar sesión con huella digital apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 195 @@ -1791,7 +1811,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 228 @@ -1799,7 +1819,7 @@ Acceso concedido apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -1859,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 @@ -1963,7 +1983,7 @@ Funcionalidades apps/client/src/app/app-routing.module.ts - 65 + 74 @@ -1971,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 @@ -1987,7 +2007,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -1999,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 @@ -2011,7 +2031,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -2023,7 +2043,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -2111,7 +2131,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -2127,7 +2147,7 @@ Cronología de la inversión apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -2135,7 +2155,7 @@ Lo mejor apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -2143,15 +2163,7 @@ Lo peor apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 - - - - FIRE - FIRE - - apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 13 + 246 @@ -2191,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 @@ -2311,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 @@ -2331,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 @@ -2345,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 @@ -2355,7 +2371,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -2363,7 +2379,7 @@ Importando datos... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -2371,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 @@ -2387,15 +2403,15 @@ 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 - 41 + 46 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2515,7 +2531,7 @@ Importar operaciones apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -2563,7 +2579,7 @@ ¿Estás seguro de eliminar esta operación? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -2619,7 +2635,7 @@ Comenzar apps/client/src/app/components/header/header.component.html - 407 + 422 @@ -2639,7 +2655,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -2655,7 +2671,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -2687,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 @@ -2747,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 @@ -2759,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 @@ -2791,7 +2807,7 @@ Ahorros libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -2799,7 +2815,7 @@ Interés libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -2811,7 +2827,7 @@ Depósito libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -2819,7 +2835,7 @@ Mensual apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 54 @@ -2843,7 +2859,7 @@ Miedo apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2855,7 +2871,7 @@ Codicia apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2867,7 +2883,7 @@ Filtrar por... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -2895,7 +2911,7 @@ Funcionalidades experimentales apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 211 @@ -2903,7 +2919,7 @@ Benchmark apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2935,7 +2951,7 @@ Automático apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -2943,7 +2959,7 @@ Apariencia apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 152 @@ -2951,7 +2967,7 @@ Automático apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 166 @@ -2959,7 +2975,7 @@ Claro apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 167 @@ -2967,7 +2983,7 @@ Oscuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 168 @@ -2975,7 +2991,7 @@ Importe total apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -2983,7 +2999,7 @@ Evolución cartera apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -2991,7 +3007,7 @@ Tasa de ahorro apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -3139,7 +3155,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -3147,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 @@ -3227,7 +3243,7 @@ Comunidad apps/client/src/app/app.component.html - 120 + 121 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -3255,19 +3271,23 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 105 + 104 apps/client/src/app/components/user-account-settings/user-account-settings.html - 110 + 108 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 112 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 117 apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -3291,7 +3311,7 @@ Mapeo de símbolos apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -3299,7 +3319,7 @@ Dividendo apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 41 libs/ui/src/lib/i18n.ts @@ -3311,7 +3331,7 @@ Calendario de dividendos apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -3335,16 +3355,12 @@ Validando datos... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 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 @@ -3353,6 +3369,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 @@ -3363,7 +3383,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3375,7 +3395,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3387,7 +3407,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3397,6 +3417,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 32 + + libs/ui/src/lib/assistant/assistant.html + 127 + Load Dividends @@ -3411,7 +3435,7 @@ Anual apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 55 @@ -3419,15 +3443,19 @@ Importar Dividendos apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 Valid until Válido hasta + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 28 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -3491,7 +3519,7 @@ Experiencia sin distracciones para tiempos turbulentos apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 178 @@ -3499,7 +3527,7 @@ Un adelanto de las próximas funciones apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 212 @@ -3523,7 +3551,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 203 + 218 @@ -3539,7 +3567,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 211 + 226 @@ -3555,7 +3583,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 215 + 230 @@ -3571,7 +3599,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 242 + 257 @@ -3587,7 +3615,7 @@ Mejorar plan apps/client/src/app/components/header/header.component.html - 180 + 185 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html @@ -3595,11 +3623,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html - 278 + 293 @@ -3619,11 +3647,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 129 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 191 + 206 @@ -3635,11 +3663,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 133 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 195 + 210 @@ -3651,11 +3679,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 137 + 142 apps/client/src/app/pages/pricing/pricing-page.html - 199 + 214 @@ -3675,7 +3703,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 153 + 158 @@ -3683,7 +3711,7 @@ Para nuevos inversores que estan empezando con el trading. apps/client/src/app/pages/pricing/pricing-page.html - 123 + 128 @@ -3691,11 +3719,11 @@ Oferta en la nube de Ghostfolio totalmente administrada. apps/client/src/app/pages/pricing/pricing-page.html - 152 + 157 apps/client/src/app/pages/pricing/pricing-page.html - 251 + 266 @@ -3703,7 +3731,7 @@ Para inversores ambiciosos que necesitan una visión completa de sus activos financieros apps/client/src/app/pages/pricing/pricing-page.html - 184 + 199 @@ -3711,7 +3739,7 @@ Pago único, sin renovación automática. apps/client/src/app/pages/pricing/pricing-page.html - 288 + 303 @@ -3727,7 +3755,7 @@ Es gratis. apps/client/src/app/pages/pricing/pricing-page.html - 309 + 332 @@ -3742,8 +3770,8 @@ 84 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 198 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 154 @@ -3763,7 +3791,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 207 + 222 @@ -3783,11 +3811,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 141 + 146 apps/client/src/app/pages/pricing/pricing-page.html - 219 + 234 @@ -3811,7 +3839,7 @@ Soporte a Traves de Email y Chat apps/client/src/app/pages/pricing/pricing-page.html - 247 + 262 @@ -3871,7 +3899,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 230 + 245 @@ -3887,15 +3915,15 @@ Renovar Plan apps/client/src/app/components/header/header.component.html - 186 + 191 apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 299 @@ -3911,7 +3939,7 @@ Impersonate User apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -3919,7 +3947,7 @@ Delete User apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -3927,7 +3955,7 @@ Do you really want to delete these activities? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3959,7 +3987,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 @@ -3975,7 +4003,7 @@ Do you really want to delete this platform? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -3983,7 +4011,7 @@ Platforms apps/client/src/app/components/admin-settings/admin-settings.component.html - 39 + 81 @@ -4035,7 +4063,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 @@ -4043,7 +4071,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -4131,7 +4159,7 @@ Personal Finance apps/client/src/app/app.component.html - 56 + 57 @@ -4139,7 +4167,7 @@ Frequently Asked Questions (FAQ) apps/client/src/app/app.component.html - 82 + 83 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -4151,7 +4179,7 @@ Current Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4159,7 +4187,7 @@ Longest Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4211,7 +4239,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 @@ -4223,7 +4251,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 @@ -4331,7 +4359,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -4347,7 +4375,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -4591,7 +4619,7 @@ ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -4599,7 +4627,7 @@ ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -4715,7 +4743,7 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 88 + 181 @@ -4739,7 +4767,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 194 @@ -4823,7 +4851,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 236 @@ -4831,7 +4859,7 @@ Currencies apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -4923,7 +4951,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 306 + 329 @@ -5192,7 +5220,7 @@ snake-case apps/client/src/app/app.component.ts - 76 + 78 apps/client/src/app/core/paths.ts @@ -5200,23 +5228,23 @@ 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 @@ -5225,15 +5253,15 @@ snake-case apps/client/src/app/app.component.ts - 77 + 79 apps/client/src/app/components/header/header.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 86 + 88 apps/client/src/app/core/paths.ts @@ -5241,47 +5269,51 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 + 17 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 + 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 - 14 + 15 apps/client/src/app/pages/pricing/pricing-page.component.ts - 39 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 + 24 @@ -5290,27 +5322,27 @@ snake-case apps/client/src/app/app.component.ts - 63 + 65 apps/client/src/app/app.component.ts - 65 + 67 apps/client/src/app/app.component.ts - 69 + 71 apps/client/src/app/app.component.ts - 73 + 75 apps/client/src/app/components/header/header.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 85 + 87 apps/client/src/app/core/paths.ts @@ -5318,59 +5350,59 @@ apps/client/src/app/pages/about/about-page.component.ts - 45 + 46 apps/client/src/app/pages/about/about-page.component.ts - 50 + 51 apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 apps/client/src/app/pages/about/about-page.component.ts - 74 + 75 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 + 12 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 23 @@ -5379,7 +5411,7 @@ snake-case apps/client/src/app/app.component.ts - 74 + 76 apps/client/src/app/core/paths.ts @@ -5387,7 +5419,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -5396,7 +5428,7 @@ snake-case apps/client/src/app/app.component.ts - 70 + 72 apps/client/src/app/core/paths.ts @@ -5404,7 +5436,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 @@ -5413,15 +5445,15 @@ snake-case apps/client/src/app/app.component.ts - 78 + 80 apps/client/src/app/components/header/header.component.ts - 82 + 84 apps/client/src/app/components/header/header.component.ts - 87 + 89 apps/client/src/app/core/paths.ts @@ -5429,19 +5461,19 @@ 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 @@ -5454,27 +5486,27 @@ snake-case apps/client/src/app/app.component.ts - 79 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 48 + 74 apps/client/src/app/components/header/header.component.ts - 83 + 85 apps/client/src/app/components/header/header.component.ts - 88 + 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 - 38 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -5486,39 +5518,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 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 + 15 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + 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 - 25 + 30 @@ -5527,11 +5563,11 @@ snake-case apps/client/src/app/app.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 89 + 91 apps/client/src/app/core/auth.guard.ts @@ -5543,19 +5579,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 - 40 + 44 @@ -5564,15 +5600,15 @@ snake-case apps/client/src/app/app.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 84 + 86 apps/client/src/app/components/header/header.component.ts - 90 + 92 apps/client/src/app/core/paths.ts @@ -5580,47 +5616,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 + 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 - 13 + 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 @@ -5696,7 +5732,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5728,7 +5764,7 @@ Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5740,7 +5776,7 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5852,7 +5888,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5871,28 +5907,20 @@ 10 - - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 - - Currency Cluster Risks Currency Cluster Risks - apps/client/src/app/pages/portfolio/fire/fire-page.html - 141 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 58 Account Cluster Risks Account Cluster Risks - apps/client/src/app/pages/portfolio/fire/fire-page.html - 160 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 106 @@ -5912,7 +5940,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -5964,7 +5992,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5976,7 +6004,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5984,7 +6012,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 139 + 143 @@ -6084,7 +6112,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6115,8 +6143,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 + 262 @@ -6124,7 +6152,7 @@ Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6180,7 +6208,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6188,7 +6216,7 @@ is an invalid currency! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6204,7 +6232,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 326 @@ -6212,7 +6240,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6252,7 +6280,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 @@ -6272,7 +6300,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6280,7 +6308,7 @@ Market data is delayed for apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6288,15 +6316,15 @@ Inversión apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6304,7 +6332,7 @@ Absolute Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6312,7 +6340,7 @@ Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6320,7 +6348,7 @@ Absolute Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6328,7 +6356,7 @@ Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6336,7 +6364,7 @@ Absolute Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6344,7 +6372,7 @@ Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6352,7 +6380,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6360,7 +6388,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6368,7 +6396,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6376,7 +6404,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6384,7 +6412,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -6420,7 +6448,7 @@ Reiniciar filtros libs/ui/src/lib/assistant/assistant.html - 157 + 185 @@ -6428,7 +6456,7 @@ año libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -6436,15 +6464,7 @@ años libs/ui/src/lib/assistant/assistant.component.ts - 246 - - - - Asset Classes - Asset Classes - - libs/ui/src/lib/assistant/assistant.html - 138 + 256 @@ -6452,7 +6472,7 @@ Aplicar filtros libs/ui/src/lib/assistant/assistant.html - 167 + 195 @@ -6468,7 +6488,7 @@ General apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6476,7 +6496,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 @@ -6488,7 +6508,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 @@ -6500,7 +6520,7 @@ auto alojado apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6536,7 +6556,7 @@ Activo apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6544,7 +6564,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6624,7 +6644,7 @@ Internacionalización apps/client/src/app/app-routing.module.ts - 79 + 88 @@ -6632,7 +6652,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 + 174 @@ -6640,7 +6660,7 @@ Zona peligrosa apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 248 @@ -6648,7 +6668,7 @@ Eliminar cuenta apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 283 @@ -6680,7 +6700,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 302 @@ -6688,7 +6708,7 @@ Mostrar más libs/ui/src/lib/top-holdings/top-holdings.component.html - 81 + 174 @@ -6696,7 +6716,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6728,7 +6748,7 @@ Tabla apps/client/src/app/components/home-holdings/home-holdings.html - 17 + 16 @@ -6736,7 +6756,7 @@ Grafico apps/client/src/app/components/home-holdings/home-holdings.html - 20 + 19 @@ -6752,7 +6772,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6760,7 +6780,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6768,7 +6788,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6776,7 +6796,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6784,7 +6804,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6792,7 +6812,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6800,7 +6820,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6808,7 +6828,7 @@ Personal Finance apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6816,7 +6836,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6824,7 +6844,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6832,7 +6852,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6840,7 +6860,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6848,7 +6868,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6856,7 +6876,7 @@ Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7008,7 +7028,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 317 @@ -7031,8 +7051,8 @@ Inactive Inactive - apps/client/src/app/pages/portfolio/fire/fire-page.html - 217 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 173 @@ -7096,7 +7116,7 @@ Threshold Min apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 9 + 54 @@ -7104,7 +7124,7 @@ Threshold Max apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 44 + 92 @@ -7112,7 +7132,7 @@ Close apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 77 + 129 @@ -7128,7 +7148,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 62 + 74 @@ -7304,7 +7324,7 @@ Oops! Could not find any assets. libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html - 37 + 40 @@ -7315,20 +7335,12 @@ 4 - - NEW - NEW + + Set API key + Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 14 - - - - Set API Key - Set API Key - - apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 70 @@ -7339,14 +7351,6 @@ 23 - - Notify me - Notify me - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 32 - - Get access to 100’000+ tickers from over 50 exchanges Get access to 100’000+ tickers from over 50 exchanges @@ -7379,14 +7383,6 @@ 93 - - Allocation Cluster Risks - Allocation Cluster Risks - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 179 - - Glossary Glossary @@ -7396,7 +7392,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7408,7 +7404,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7417,7 +7413,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,13 +7426,245 @@ 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 21 + + Threshold range + Threshold range + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 9 + + + + 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. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 5 + + + + Economic Market Cluster Risks + Economic Market Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 130 + + + + of + of + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 42 + + + + daily requests + daily requests + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 44 + + + + Remove API key + Remove API key + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 58 + + + + Do you really want to delete the API key? + Do you really want to delete the API key? + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 93 + + + + Please enter your Ghostfolio API key: + Please enter your Ghostfolio API key: + + apps/client/src/app/pages/api/api-page.component.ts + 40 + + + + Notify me + Notify me + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 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 + 43 + + + + 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 + 139 + + + + 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 + 154 + + + + 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 + 157 + + + + 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 + 162 + + + + 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 + + + + 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 + + + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 62 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 135 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 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 + + + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + + + Early Access + Early Access + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 16 + + diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index bf8efff8f..c2ea4d6f7 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -6,7 +6,7 @@ Le risque de perte en investissant peut être important. Il est déconseillé d’investir de l’argent dont vous pourriez avoir besoin à court terme. apps/client/src/app/app.component.html - 199 + 205 @@ -70,7 +70,7 @@ Voulez-vous vraiment révoquer cet accès ? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 78 @@ -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 @@ -178,7 +178,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 12 + 16 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 88 @@ -198,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 @@ -298,7 +302,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 26 + 25 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 102 @@ -374,7 +382,7 @@ Voulez-vous vraiment supprimer ce compte ? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -390,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 @@ -414,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 @@ -505,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 @@ -528,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 @@ -544,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 @@ -588,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 @@ -614,7 +618,7 @@ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 83 + 135 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -628,13 +632,17 @@ 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... Filtrer par... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -646,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 @@ -660,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 @@ -670,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 @@ -694,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 @@ -721,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 @@ -782,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 @@ -794,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 @@ -810,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 @@ -830,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 @@ -846,7 +858,7 @@ Équivalence de Symboles apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -854,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 @@ -870,7 +882,7 @@ Veuillez ajouter une devise : apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -878,7 +890,7 @@ Voulez-vous vraiment supprimer ce code promotionnel ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -886,7 +898,7 @@ Voulez-vous vraiment supprimer cette devise ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -894,7 +906,7 @@ Voulez-vous vraiment vider le cache ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -902,7 +914,7 @@ Veuillez définir votre message système : apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -954,7 +966,7 @@ Étiquettes apps/client/src/app/components/admin-settings/admin-settings.component.html - 45 + 87 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -968,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 - 127 - User Signup @@ -1046,7 +1054,7 @@ Voulez-vous vraiment supprimer cet·te utilisateur·rice ? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 139 @@ -1058,7 +1066,7 @@ apps/client/src/app/components/header/header.component.html - 224 + 229 @@ -1086,7 +1094,7 @@ apps/client/src/app/components/header/header.component.html - 258 + 263 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1096,10 +1104,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Engagement per Day @@ -1114,7 +1118,7 @@ Dernière Requête apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -1142,15 +1146,15 @@ 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 - 41 + 46 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -1158,7 +1162,7 @@ Référence apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -1178,7 +1182,7 @@ apps/client/src/app/components/header/header.component.html - 240 + 245 @@ -1190,7 +1194,7 @@ apps/client/src/app/components/header/header.component.html - 250 + 255 @@ -1202,7 +1206,7 @@ apps/client/src/app/components/header/header.component.html - 274 + 279 @@ -1210,7 +1214,7 @@ Ressources apps/client/src/app/app.component.html - 63 + 64 apps/client/src/app/components/header/header.component.html @@ -1218,7 +1222,7 @@ apps/client/src/app/components/header/header.component.html - 286 + 291 apps/client/src/app/pages/resources/overview/resources-overview.component.html @@ -1230,19 +1234,19 @@ Prix apps/client/src/app/app.component.html - 96 + 97 apps/client/src/app/components/header/header.component.html - 98 + 99 apps/client/src/app/components/header/header.component.html - 297 + 303 apps/client/src/app/components/header/header.component.html - 368 + 379 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html @@ -1254,15 +1258,15 @@ À propos apps/client/src/app/app.component.html - 69 + 70 apps/client/src/app/components/header/header.component.html - 112 + 117 apps/client/src/app/components/header/header.component.html - 354 + 364 @@ -1270,7 +1274,7 @@ Moi apps/client/src/app/components/header/header.component.html - 206 + 211 @@ -1278,7 +1282,7 @@ Mon Ghostfolio apps/client/src/app/components/header/header.component.html - 265 + 270 @@ -1286,7 +1290,7 @@ À propos de Ghostfolio apps/client/src/app/components/header/header.component.html - 306 + 316 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -1298,11 +1302,11 @@ Fonctionnalités apps/client/src/app/app.component.html - 78 + 79 apps/client/src/app/components/header/header.component.html - 341 + 351 apps/client/src/app/pages/features/features-page.html @@ -1314,11 +1318,11 @@ Marchés apps/client/src/app/app.component.html - 60 + 61 apps/client/src/app/components/header/header.component.html - 383 + 398 apps/client/src/app/components/home-market/home-market.html @@ -1334,7 +1338,7 @@ Se connecter apps/client/src/app/components/header/header.component.html - 397 + 412 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1346,7 +1350,7 @@ Démarrer apps/client/src/app/components/header/header.component.html - 407 + 422 @@ -1354,11 +1358,11 @@ Se connecter apps/client/src/app/app-routing.module.ts - 141 + 150 apps/client/src/app/components/header/header.component.ts - 229 + 231 @@ -1366,11 +1370,11 @@ Oups! Jeton de Sécurité Incorrect. apps/client/src/app/components/header/header.component.ts - 244 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 159 @@ -1378,7 +1382,7 @@ Gérer les Activités apps/client/src/app/components/home-holdings/home-holdings.html - 65 + 63 @@ -1386,7 +1390,7 @@ Peur apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -1398,7 +1402,7 @@ Avidité apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -1426,7 +1430,7 @@ Montant Total apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -1434,7 +1438,7 @@ Taux d’Épargne apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -1446,7 +1450,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 255 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1456,6 +1460,10 @@ or ou + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 36 + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 31 @@ -1593,8 +1601,8 @@ 89 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 122 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 34 @@ -1653,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 + 64 @@ -1722,11 +1730,11 @@ Aujourd’hui apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 210 + 220 @@ -1734,11 +1742,11 @@ CDA apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -1746,11 +1754,11 @@ 1A apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -1758,11 +1766,11 @@ 5A apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 246 + 256 @@ -1770,11 +1778,11 @@ Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 249 + 259 @@ -1798,7 +1806,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -1810,19 +1818,23 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 Okay D’accord + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 152 + apps/client/src/app/core/http-response.interceptor.ts 81 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -1834,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 @@ -1846,7 +1858,7 @@ Historique des modifications apps/client/src/app/app.component.html - 76 + 77 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1858,7 +1870,7 @@ License apps/client/src/app/app.component.html - 87 + 88 apps/client/src/app/pages/about/license/license-page.html @@ -1870,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 @@ -1882,7 +1894,7 @@ Politique de Vie Privée apps/client/src/app/app.component.html - 102 + 103 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1902,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 - 115 + 213 @@ -1918,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 - 125 + 177 @@ -1926,7 +1938,7 @@ Le code promotionnel a été appliqué apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 137 + 190 @@ -1934,7 +1946,7 @@ Rafraîchir apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 191 @@ -1942,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 + 248 @@ -1956,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 @@ -1970,11 +1986,11 @@ 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 - 264 + 279 @@ -1982,7 +1998,7 @@ Essayer Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 41 + 53 @@ -1990,7 +2006,7 @@ Utiliser un Code Promotionnel apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 67 @@ -2022,7 +2038,7 @@ Communauté apps/client/src/app/app.component.html - 120 + 121 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -2050,19 +2066,23 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 105 + 104 apps/client/src/app/components/user-account-settings/user-account-settings.html - 110 + 108 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 112 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 117 apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -2070,7 +2090,7 @@ Paramètres régionaux apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 127 @@ -2078,7 +2098,7 @@ Format de date et d’heure apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 129 @@ -2086,7 +2106,7 @@ Apparence apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 152 @@ -2094,7 +2114,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 166 @@ -2102,7 +2122,7 @@ Clair apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 167 @@ -2110,7 +2130,7 @@ Sombre apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 168 @@ -2118,7 +2138,7 @@ Mode Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 apps/client/src/app/pages/features/features-page.html @@ -2130,7 +2150,7 @@ Se connecter avec empreinte apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 195 @@ -2138,7 +2158,7 @@ Fonctionnalités expérimentales apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 211 @@ -2150,7 +2170,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 228 @@ -2158,7 +2178,7 @@ Accès donné apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -2226,7 +2246,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -2246,7 +2266,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -2262,7 +2282,7 @@ Blog apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -2344,6 +2364,10 @@ apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html 187 + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html + 167 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -2374,7 +2398,7 @@ Fonctionnalités apps/client/src/app/app-routing.module.ts - 65 + 74 @@ -2390,11 +2414,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 @@ -2406,7 +2430,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -2418,7 +2442,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2430,7 +2454,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -2442,7 +2466,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -2522,7 +2546,7 @@ Import des données... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -2530,7 +2554,7 @@ L’import est terminé apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -2538,7 +2562,7 @@ Validation des données... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -2564,10 +2588,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 @@ -2576,6 +2596,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 @@ -2586,7 +2610,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -2718,7 +2742,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -2726,7 +2750,7 @@ Dividende apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 41 libs/ui/src/lib/i18n.ts @@ -2738,7 +2762,7 @@ Dépôt libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -2746,7 +2770,7 @@ Mensuel apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 54 @@ -2762,7 +2786,7 @@ Haut apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -2770,7 +2794,7 @@ Bas apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -2778,7 +2802,7 @@ Évolution du Portefeuille apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -2786,7 +2810,7 @@ Historique des Investissements apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -2794,15 +2818,7 @@ Historique des Dividendes apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 - - - - FIRE - FIRE - - apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 13 + 383 @@ -2894,7 +2910,7 @@ Démarrer apps/client/src/app/pages/features/features-page.html - 303 + 304 apps/client/src/app/pages/public/public-page.html @@ -3002,15 +3018,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 @@ -3018,7 +3034,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -3034,7 +3050,7 @@ Importer Activités apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -3082,7 +3098,7 @@ Voulez-vous vraiment supprimer cette activité ? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -3130,7 +3146,7 @@ Intérêt libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -3142,7 +3158,7 @@ Épargne libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -3154,7 +3170,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 46 + 40 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 116 @@ -3206,7 +3226,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -3382,11 +3402,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 @@ -3396,6 +3416,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 32 + + libs/ui/src/lib/assistant/assistant.html + 127 + Load Dividends @@ -3410,7 +3434,7 @@ Annuel apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 55 @@ -3418,15 +3442,19 @@ Importer Dividendes apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 Valid until Valide jusqu’au + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 28 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -3490,7 +3518,7 @@ Expérience sans distraction pour les périodes tumultueuses apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 178 @@ -3498,7 +3526,7 @@ Avant-première de fonctionnalités futures apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 212 @@ -3522,7 +3550,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 203 + 218 @@ -3538,7 +3566,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 211 + 226 @@ -3554,7 +3582,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 215 + 230 @@ -3570,7 +3598,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 242 + 257 @@ -3586,7 +3614,7 @@ Mettre à niveau l’Abonnement apps/client/src/app/components/header/header.component.html - 180 + 185 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html @@ -3594,11 +3622,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html - 278 + 293 @@ -3618,11 +3646,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 129 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 191 + 206 @@ -3634,11 +3662,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 133 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 195 + 210 @@ -3650,11 +3678,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 137 + 142 apps/client/src/app/pages/pricing/pricing-page.html - 199 + 214 @@ -3674,7 +3702,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 153 + 158 @@ -3682,7 +3710,7 @@ Pour les nouveaux investisseurs qui débutent en Bourse. apps/client/src/app/pages/pricing/pricing-page.html - 123 + 128 @@ -3690,11 +3718,11 @@ Offre Ghostfolio cloud complètement administrée. apps/client/src/app/pages/pricing/pricing-page.html - 152 + 157 apps/client/src/app/pages/pricing/pricing-page.html - 251 + 266 @@ -3702,7 +3730,7 @@ Pour les investisseurs ambitieux qui ont besoin d’une vue complète de leurs actifs financiers. apps/client/src/app/pages/pricing/pricing-page.html - 184 + 199 @@ -3710,7 +3738,7 @@ Paiement unique, sans auto-renouvellement. apps/client/src/app/pages/pricing/pricing-page.html - 288 + 303 @@ -3726,7 +3754,7 @@ C’est gratuit. apps/client/src/app/pages/pricing/pricing-page.html - 309 + 332 @@ -3741,8 +3769,8 @@ 84 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 198 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 154 @@ -3762,7 +3790,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 207 + 222 @@ -3782,11 +3810,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 141 + 146 apps/client/src/app/pages/pricing/pricing-page.html - 219 + 234 @@ -3810,7 +3838,7 @@ Support par E-mail et Tchat apps/client/src/app/pages/pricing/pricing-page.html - 247 + 262 @@ -3870,7 +3898,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 230 + 245 @@ -3886,15 +3914,15 @@ Renouveler l’Abonnement apps/client/src/app/components/header/header.component.html - 186 + 191 apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 299 @@ -3910,7 +3938,7 @@ Voir en tant que ... apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -3918,7 +3946,7 @@ Supprimer l’Utilisateur apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -3926,7 +3954,7 @@ Voulez-vous vraiment supprimer toutes vos activités ? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3958,7 +3986,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 @@ -3974,7 +4002,7 @@ Voulez-vous vraiment supprimer cette plateforme ? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -3982,7 +4010,7 @@ Platformes apps/client/src/app/components/admin-settings/admin-settings.component.html - 39 + 81 @@ -4034,7 +4062,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 @@ -4042,7 +4070,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -4130,7 +4158,7 @@ Finance Personnelle apps/client/src/app/app.component.html - 56 + 57 @@ -4138,7 +4166,7 @@ Questions Fréquentes (FAQ) apps/client/src/app/app.component.html - 82 + 83 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -4150,7 +4178,7 @@ Série en cours apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4158,7 +4186,7 @@ Série la plus longue apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4210,7 +4238,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 @@ -4222,7 +4250,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 @@ -4330,7 +4358,7 @@ Logiciel Open Source apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -4346,7 +4374,7 @@ Configuration du Scraper apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -4590,7 +4618,7 @@ ETF sans Pays apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -4598,7 +4626,7 @@ ETF sans Secteurs apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -4714,7 +4742,7 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 88 + 181 @@ -4738,7 +4766,7 @@ Authentication biométrique apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 194 @@ -4822,7 +4850,7 @@ Exporter les Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 236 @@ -4830,7 +4858,7 @@ Devises apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -4922,7 +4950,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 306 + 329 @@ -5191,7 +5219,7 @@ snake-case apps/client/src/app/app.component.ts - 76 + 78 apps/client/src/app/core/paths.ts @@ -5199,23 +5227,23 @@ 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 @@ -5224,15 +5252,15 @@ snake-case apps/client/src/app/app.component.ts - 77 + 79 apps/client/src/app/components/header/header.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 86 + 88 apps/client/src/app/core/paths.ts @@ -5240,47 +5268,51 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 + 17 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 + 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 - 14 + 15 apps/client/src/app/pages/pricing/pricing-page.component.ts - 39 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 + 24 @@ -5289,27 +5321,27 @@ snake-case apps/client/src/app/app.component.ts - 63 + 65 apps/client/src/app/app.component.ts - 65 + 67 apps/client/src/app/app.component.ts - 69 + 71 apps/client/src/app/app.component.ts - 73 + 75 apps/client/src/app/components/header/header.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 85 + 87 apps/client/src/app/core/paths.ts @@ -5317,59 +5349,59 @@ apps/client/src/app/pages/about/about-page.component.ts - 45 + 46 apps/client/src/app/pages/about/about-page.component.ts - 50 + 51 apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 apps/client/src/app/pages/about/about-page.component.ts - 74 + 75 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 + 12 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 23 @@ -5378,7 +5410,7 @@ snake-case apps/client/src/app/app.component.ts - 74 + 76 apps/client/src/app/core/paths.ts @@ -5386,7 +5418,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -5395,7 +5427,7 @@ snake-case apps/client/src/app/app.component.ts - 70 + 72 apps/client/src/app/core/paths.ts @@ -5403,7 +5435,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 @@ -5412,15 +5444,15 @@ snake-case apps/client/src/app/app.component.ts - 78 + 80 apps/client/src/app/components/header/header.component.ts - 82 + 84 apps/client/src/app/components/header/header.component.ts - 87 + 89 apps/client/src/app/core/paths.ts @@ -5428,19 +5460,19 @@ 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 @@ -5453,27 +5485,27 @@ snake-case apps/client/src/app/app.component.ts - 79 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 48 + 74 apps/client/src/app/components/header/header.component.ts - 83 + 85 apps/client/src/app/components/header/header.component.ts - 88 + 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 - 38 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -5485,39 +5517,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 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 + 15 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + 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 - 25 + 30 @@ -5526,11 +5562,11 @@ snake-case apps/client/src/app/app.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 89 + 91 apps/client/src/app/core/auth.guard.ts @@ -5542,19 +5578,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 - 40 + 44 @@ -5563,15 +5599,15 @@ snake-case apps/client/src/app/app.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 84 + 86 apps/client/src/app/components/header/header.component.ts - 90 + 92 apps/client/src/app/core/paths.ts @@ -5579,47 +5615,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 + 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 - 13 + 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 @@ -5695,7 +5731,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5727,7 +5763,7 @@ Suisse apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5739,7 +5775,7 @@ Mondial apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5851,7 +5887,7 @@ Confirmez la suppression de ce tag ? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5870,28 +5906,20 @@ 10 - - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - Ghostfolio X-ray utilise l'analyse statique pour identifier de potentiels problèmes et risques dans votre portefeuille. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 - - Currency Cluster Risks Risques de change - apps/client/src/app/pages/portfolio/fire/fire-page.html - 141 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 58 Account Cluster Risks Risques liés aux regroupements de comptes - apps/client/src/app/pages/portfolio/fire/fire-page.html - 160 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 106 @@ -5911,7 +5939,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -5963,7 +5991,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5975,7 +6003,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5983,7 +6011,7 @@ Chercher un actif... libs/ui/src/lib/assistant/assistant.component.ts - 139 + 143 @@ -6083,7 +6111,7 @@ Oops, échec du transfert de la cash balance. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6114,8 +6142,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 + 262 @@ -6123,7 +6151,7 @@ Confirmer la suppresion de ce message système? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6179,7 +6207,7 @@ Voulez-vous vraiment supprimer ce solde de compte ? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6187,7 +6215,7 @@ est une devise non valide ! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6203,7 +6231,7 @@ Le prix actuel du marché est apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 326 @@ -6211,7 +6239,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6251,7 +6279,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 @@ -6271,7 +6299,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6279,7 +6307,7 @@ Les données du marché sont retardées de apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6287,15 +6315,15 @@ Investissement apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6303,7 +6331,7 @@ Performance des Actifs en valeur absolue apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6311,7 +6339,7 @@ Performance des Actifs apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6319,7 +6347,7 @@ Performance des devises en valeur absolue apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6327,7 +6355,7 @@ Performance des devises apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6335,7 +6363,7 @@ Performance nette absolue apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6343,7 +6371,7 @@ Performance nette apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6351,7 +6379,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6359,7 +6387,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6367,7 +6395,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6375,7 +6403,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6383,7 +6411,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -6419,7 +6447,7 @@ Réinitialiser les Filtres libs/ui/src/lib/assistant/assistant.html - 157 + 185 @@ -6427,7 +6455,7 @@ année libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -6435,15 +6463,7 @@ années libs/ui/src/lib/assistant/assistant.component.ts - 246 - - - - Asset Classes - Types d'Actifs - - libs/ui/src/lib/assistant/assistant.html - 138 + 256 @@ -6451,7 +6471,7 @@ Appliquer les Filtres libs/ui/src/lib/assistant/assistant.html - 167 + 195 @@ -6467,7 +6487,7 @@ Général apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6475,7 +6495,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 @@ -6487,7 +6507,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 @@ -6499,7 +6519,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6535,7 +6555,7 @@ Actif apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6543,7 +6563,7 @@ Clôturé apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6623,7 +6643,7 @@ Internationalisation apps/client/src/app/app-routing.module.ts - 79 + 88 @@ -6631,7 +6651,7 @@ Confirmer la suppresion de votre compte Ghostfolio ? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 174 @@ -6639,7 +6659,7 @@ Zone de danger apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 248 @@ -6647,7 +6667,7 @@ Supprimer le compte apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 283 @@ -6679,7 +6699,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 + 302 @@ -6687,7 +6707,7 @@ Voir plus libs/ui/src/lib/top-holdings/top-holdings.component.html - 81 + 174 @@ -6695,7 +6715,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6727,7 +6747,7 @@ Table apps/client/src/app/components/home-holdings/home-holdings.html - 17 + 16 @@ -6735,7 +6755,7 @@ Tableau apps/client/src/app/components/home-holdings/home-holdings.html - 20 + 19 @@ -6751,7 +6771,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6759,7 +6779,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6767,7 +6787,7 @@ Budget apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6775,7 +6795,7 @@ Communauté apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6783,7 +6803,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6791,7 +6811,7 @@ Investisseur apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6799,7 +6819,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6807,7 +6827,7 @@ Gestion de Patrimoine apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6815,7 +6835,7 @@ Confidentialité apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6823,7 +6843,7 @@ Logiciels apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6831,7 +6851,7 @@ Outils apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6839,7 +6859,7 @@ Expérience Utilisateur apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6847,7 +6867,7 @@ Patrimoine apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6855,7 +6875,7 @@ Gestion de Patrimoine apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7007,7 +7027,7 @@ Erreur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 317 @@ -7030,8 +7050,8 @@ Inactive Inactif - apps/client/src/app/pages/portfolio/fire/fire-page.html - 217 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 173 @@ -7095,7 +7115,7 @@ Threshold Min apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 9 + 54 @@ -7103,7 +7123,7 @@ Threshold Max apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 44 + 92 @@ -7111,7 +7131,7 @@ Close apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 77 + 129 @@ -7127,7 +7147,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 62 + 74 @@ -7303,7 +7323,7 @@ Oops! Could not find any assets. libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html - 37 + 40 @@ -7314,20 +7334,12 @@ 4 - - NEW - NEW + + Set API key + Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 14 - - - - Set API Key - Set API Key - - apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 70 @@ -7338,14 +7350,6 @@ 23 - - Notify me - Notify me - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 32 - - Get access to 100’000+ tickers from over 50 exchanges Get access to 100’000+ tickers from over 50 exchanges @@ -7378,14 +7382,6 @@ 93 - - Allocation Cluster Risks - Allocation Cluster Risks - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 179 - - Glossary Glossary @@ -7395,7 +7391,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7407,7 +7403,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7416,7 +7412,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,13 +7425,245 @@ 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 21 + + Threshold range + Threshold range + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 9 + + + + 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. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 5 + + + + Economic Market Cluster Risks + Economic Market Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 130 + + + + of + of + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 42 + + + + daily requests + daily requests + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 44 + + + + Remove API key + Remove API key + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 58 + + + + Do you really want to delete the API key? + Do you really want to delete the API key? + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 93 + + + + Please enter your Ghostfolio API key: + Please enter your Ghostfolio API key: + + apps/client/src/app/pages/api/api-page.component.ts + 40 + + + + Notify me + Notify me + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 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 + 43 + + + + 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 + 139 + + + + 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 + 154 + + + + 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 + 157 + + + + 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 + 162 + + + + 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 + + + + 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 + + + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 62 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 135 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 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 + + + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + + + Early Access + Early Access + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 16 + + diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 9654329eb..3000c791a 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -23,7 +23,7 @@ Il rischio di perdita nel trading può essere notevole. Non è consigliabile investire denaro di cui potresti avere bisogno a breve termine. apps/client/src/app/app.component.html - 199 + 205 @@ -75,7 +75,7 @@ Vuoi davvero revocare l’accesso concesso? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 78 @@ -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 @@ -167,7 +167,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 12 + 16 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 88 @@ -239,7 +243,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 26 + 25 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 102 @@ -315,7 +323,7 @@ Vuoi davvero eliminare questo account? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -339,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 @@ -363,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 @@ -446,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 @@ -469,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 @@ -485,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 @@ -529,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 @@ -555,7 +559,7 @@ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 83 + 135 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -569,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 @@ -579,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 @@ -606,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 @@ -615,7 +623,7 @@ Aggiungi una valuta: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -623,7 +631,7 @@ Vuoi davvero eliminare questo buono? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -631,7 +639,7 @@ Vuoi davvero eliminare questa valuta? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -639,7 +647,7 @@ Vuoi davvero svuotare la cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -647,7 +655,7 @@ Imposta il messaggio di sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -779,7 +787,7 @@ Vuoi davvero eliminare questo utente? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 139 @@ -791,7 +799,7 @@ apps/client/src/app/components/header/header.component.html - 224 + 229 @@ -815,7 +823,7 @@ Ultima richiesta apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -835,7 +843,7 @@ apps/client/src/app/components/header/header.component.html - 240 + 245 @@ -847,7 +855,7 @@ apps/client/src/app/components/header/header.component.html - 250 + 255 @@ -867,7 +875,7 @@ apps/client/src/app/components/header/header.component.html - 258 + 263 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -877,10 +885,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Admin Control @@ -891,7 +895,7 @@ apps/client/src/app/components/header/header.component.html - 274 + 279 @@ -899,7 +903,7 @@ Risorse apps/client/src/app/app.component.html - 63 + 64 apps/client/src/app/components/header/header.component.html @@ -907,7 +911,7 @@ apps/client/src/app/components/header/header.component.html - 286 + 291 apps/client/src/app/pages/resources/overview/resources-overview.component.html @@ -919,19 +923,19 @@ Prezzi apps/client/src/app/app.component.html - 96 + 97 apps/client/src/app/components/header/header.component.html - 98 + 99 apps/client/src/app/components/header/header.component.html - 297 + 303 apps/client/src/app/components/header/header.component.html - 368 + 379 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html @@ -943,15 +947,15 @@ Informazioni su apps/client/src/app/app.component.html - 69 + 70 apps/client/src/app/components/header/header.component.html - 112 + 117 apps/client/src/app/components/header/header.component.html - 354 + 364 @@ -959,7 +963,7 @@ Io apps/client/src/app/components/header/header.component.html - 206 + 211 @@ -967,7 +971,7 @@ Il mio Ghostfolio apps/client/src/app/components/header/header.component.html - 265 + 270 @@ -975,7 +979,7 @@ Informazioni su Ghostfolio apps/client/src/app/components/header/header.component.html - 306 + 316 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -987,11 +991,11 @@ Funzionalità apps/client/src/app/app.component.html - 78 + 79 apps/client/src/app/components/header/header.component.html - 341 + 351 apps/client/src/app/pages/features/features-page.html @@ -1003,11 +1007,11 @@ Mercati apps/client/src/app/app.component.html - 60 + 61 apps/client/src/app/components/header/header.component.html - 383 + 398 apps/client/src/app/components/home-market/home-market.html @@ -1023,7 +1027,7 @@ Inizia apps/client/src/app/pages/features/features-page.html - 303 + 304 apps/client/src/app/pages/public/public-page.html @@ -1035,11 +1039,11 @@ Accedi apps/client/src/app/app-routing.module.ts - 141 + 150 apps/client/src/app/components/header/header.component.ts - 229 + 231 @@ -1047,11 +1051,11 @@ Ops! Token di sicurezza errato. apps/client/src/app/components/header/header.component.ts - 244 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 159 @@ -1059,7 +1063,7 @@ Gestione delle attività apps/client/src/app/components/home-holdings/home-holdings.html - 65 + 63 @@ -1087,7 +1091,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 255 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1097,6 +1101,10 @@ or oppure + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 36 + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 31 @@ -1151,7 +1159,7 @@ Accedi apps/client/src/app/components/header/header.component.html - 397 + 412 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1246,8 +1254,8 @@ 89 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 122 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 34 @@ -1298,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 + 64 @@ -1311,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 @@ -1331,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 @@ -1347,7 +1355,7 @@ Tag apps/client/src/app/components/admin-settings/admin-settings.component.html - 45 + 87 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1361,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 - 127 - Report Data Glitch @@ -1383,7 +1387,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 46 + 40 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 116 @@ -1411,11 +1419,11 @@ Oggi apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 210 + 220 @@ -1423,11 +1431,11 @@ anno corrente apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -1435,11 +1443,11 @@ 1 anno apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -1447,11 +1455,11 @@ 5 anni apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 246 + 256 @@ -1459,23 +1467,27 @@ Massimo apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 249 + 259 Okay Bene + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 152 + apps/client/src/app/core/http-response.interceptor.ts 81 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -1487,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 @@ -1499,7 +1511,7 @@ Informativa sulla privacy apps/client/src/app/app.component.html - 102 + 103 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1511,7 +1523,7 @@ Blog apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1593,6 +1605,10 @@ apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html 187 + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html + 167 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -1603,7 +1619,7 @@ Registro delle modifiche apps/client/src/app/app.component.html - 76 + 77 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1615,7 +1631,7 @@ Licenza d’uso apps/client/src/app/app.component.html - 87 + 88 apps/client/src/app/pages/about/license/license-page.html @@ -1627,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 @@ -1642,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 - 115 + 213 @@ -1655,7 +1671,7 @@ Impossibile riscattare il codice del buono apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 125 + 177 @@ -1663,7 +1679,7 @@ Il codice del buono è stato riscattato apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 137 + 190 @@ -1671,7 +1687,7 @@ Ricarica apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 191 @@ -1679,7 +1695,7 @@ Vuoi davvero rimuovere questo metodo di accesso? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 248 @@ -1693,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 @@ -1707,11 +1727,11 @@ 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 - 264 + 279 @@ -1719,7 +1739,7 @@ Prova Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 41 + 53 @@ -1727,7 +1747,7 @@ Riscatta il buono apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 67 @@ -1751,7 +1771,7 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 127 @@ -1759,7 +1779,7 @@ Formato data e numero apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 129 @@ -1767,7 +1787,7 @@ Modalità Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 apps/client/src/app/pages/features/features-page.html @@ -1779,7 +1799,7 @@ Accesso con impronta digitale apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 195 @@ -1791,7 +1811,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 228 @@ -1799,7 +1819,7 @@ Accesso concesso apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -1859,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 @@ -1963,7 +1983,7 @@ Funzionalità apps/client/src/app/app-routing.module.ts - 65 + 74 @@ -1971,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 @@ -1987,7 +2007,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -1999,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 @@ -2011,7 +2031,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -2023,7 +2043,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -2111,7 +2131,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -2127,7 +2147,7 @@ Cronologia degli investimenti apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -2135,7 +2155,7 @@ In alto apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -2143,15 +2163,7 @@ In basso apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 - - - - FIRE - FIRE - - apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 13 + 246 @@ -2191,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 @@ -2311,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 @@ -2331,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 @@ -2345,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 @@ -2355,7 +2371,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -2363,7 +2379,7 @@ Importazione dei dati... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -2371,7 +2387,7 @@ L’importazione è stata completata apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -2387,15 +2403,15 @@ 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 - 41 + 46 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2515,7 +2531,7 @@ Importa le attività apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -2563,7 +2579,7 @@ Vuoi davvero eliminare questa attività? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -2619,7 +2635,7 @@ Inizia apps/client/src/app/components/header/header.component.html - 407 + 422 @@ -2639,7 +2655,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -2655,7 +2671,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -2687,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 @@ -2747,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 @@ -2759,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 @@ -2791,7 +2807,7 @@ Risparmio libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -2799,7 +2815,7 @@ Interesse libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -2811,7 +2827,7 @@ Deposito libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -2819,7 +2835,7 @@ Mensile apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 54 @@ -2843,7 +2859,7 @@ Paura apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2855,7 +2871,7 @@ Avidità apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2867,7 +2883,7 @@ Filtra per... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -2895,7 +2911,7 @@ Funzionalità sperimentali apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 211 @@ -2903,7 +2919,7 @@ Benchmark apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2935,7 +2951,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -2943,7 +2959,7 @@ Aspetto apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 152 @@ -2951,7 +2967,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 166 @@ -2959,7 +2975,7 @@ Chiaro apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 167 @@ -2967,7 +2983,7 @@ Scuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 168 @@ -2975,7 +2991,7 @@ Importo totale apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -2983,7 +2999,7 @@ Evoluzione del portafoglio apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -2991,7 +3007,7 @@ Tasso di risparmio apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -3139,7 +3155,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -3147,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 @@ -3227,7 +3243,7 @@ Comunità apps/client/src/app/app.component.html - 120 + 121 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -3255,19 +3271,23 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 105 + 104 apps/client/src/app/components/user-account-settings/user-account-settings.html - 110 + 108 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 112 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 117 apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -3291,7 +3311,7 @@ Mappatura dei simboli apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -3299,7 +3319,7 @@ Dividendi apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 41 libs/ui/src/lib/i18n.ts @@ -3311,7 +3331,7 @@ Cronologia dei dividendi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -3335,16 +3355,12 @@ Convalida dei dati... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 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 @@ -3353,6 +3369,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 @@ -3363,7 +3383,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3375,7 +3395,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3387,7 +3407,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3397,6 +3417,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 32 + + libs/ui/src/lib/assistant/assistant.html + 127 + Load Dividends @@ -3411,7 +3435,7 @@ Annuale apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 55 @@ -3419,15 +3443,19 @@ Importa i dividendi apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 Valid until Valido fino a + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 28 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -3491,7 +3519,7 @@ Esperienza priva di distrazioni per i periodi più turbolenti apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 178 @@ -3499,7 +3527,7 @@ Un’anteprima delle funzionalità in arrivo apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 212 @@ -3523,7 +3551,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 203 + 218 @@ -3539,7 +3567,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 211 + 226 @@ -3555,7 +3583,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 215 + 230 @@ -3571,7 +3599,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 242 + 257 @@ -3587,7 +3615,7 @@ Aggiorna il piano apps/client/src/app/components/header/header.component.html - 180 + 185 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html @@ -3595,11 +3623,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html - 278 + 293 @@ -3619,11 +3647,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 129 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 191 + 206 @@ -3635,11 +3663,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 133 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 195 + 210 @@ -3651,11 +3679,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 137 + 142 apps/client/src/app/pages/pricing/pricing-page.html - 199 + 214 @@ -3675,7 +3703,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 153 + 158 @@ -3683,7 +3711,7 @@ Per i nuovi investitori che hanno appena iniziato a fare trading. apps/client/src/app/pages/pricing/pricing-page.html - 123 + 128 @@ -3691,11 +3719,11 @@ Offerta cloud Ghostfolio completamente gestita. apps/client/src/app/pages/pricing/pricing-page.html - 152 + 157 apps/client/src/app/pages/pricing/pricing-page.html - 251 + 266 @@ -3703,7 +3731,7 @@ Per gli investitori ambiziosi che hanno bisogno di un quadro completo dei propri asset finanziari. apps/client/src/app/pages/pricing/pricing-page.html - 184 + 199 @@ -3711,7 +3739,7 @@ Pagamento una tantum, senza rinnovo automatico. apps/client/src/app/pages/pricing/pricing-page.html - 288 + 303 @@ -3727,7 +3755,7 @@ È gratuito. apps/client/src/app/pages/pricing/pricing-page.html - 309 + 332 @@ -3742,8 +3770,8 @@ 84 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 198 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 154 @@ -3763,7 +3791,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 207 + 222 @@ -3783,11 +3811,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 141 + 146 apps/client/src/app/pages/pricing/pricing-page.html - 219 + 234 @@ -3811,7 +3839,7 @@ Supporto via email e chat apps/client/src/app/pages/pricing/pricing-page.html - 247 + 262 @@ -3871,7 +3899,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 230 + 245 @@ -3887,15 +3915,15 @@ Rinnova il piano apps/client/src/app/components/header/header.component.html - 186 + 191 apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 299 @@ -3911,7 +3939,7 @@ Imita l’utente apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -3919,7 +3947,7 @@ Elimina l’utente apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -3927,7 +3955,7 @@ Vuoi davvero eliminare tutte le tue attività? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3959,7 +3987,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 @@ -3975,7 +4003,7 @@ Vuoi davvero eliminare questa piattaforma? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -3983,7 +4011,7 @@ Piattaforme apps/client/src/app/components/admin-settings/admin-settings.component.html - 39 + 81 @@ -4035,7 +4063,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 @@ -4043,7 +4071,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -4131,7 +4159,7 @@ Finanza personale apps/client/src/app/app.component.html - 56 + 57 @@ -4139,7 +4167,7 @@ Domande più frequenti (FAQ) apps/client/src/app/app.component.html - 82 + 83 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -4151,7 +4179,7 @@ Serie attuale apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4159,7 +4187,7 @@ Serie più lunga apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4211,7 +4239,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 @@ -4223,7 +4251,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 @@ -4331,7 +4359,7 @@ Software open source apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -4347,7 +4375,7 @@ Configurazione dello scraper apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -4591,7 +4619,7 @@ ETF senza paesi apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -4599,7 +4627,7 @@ ETF senza settori apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -4715,7 +4743,7 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 88 + 181 @@ -4739,7 +4767,7 @@ Autenticazione biometrica apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 194 @@ -4823,7 +4851,7 @@ Esporta dati apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 236 @@ -4831,7 +4859,7 @@ Valute apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -4923,7 +4951,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 306 + 329 @@ -5192,7 +5220,7 @@ snake-case apps/client/src/app/app.component.ts - 76 + 78 apps/client/src/app/core/paths.ts @@ -5200,23 +5228,23 @@ 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 @@ -5225,15 +5253,15 @@ snake-case apps/client/src/app/app.component.ts - 77 + 79 apps/client/src/app/components/header/header.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 86 + 88 apps/client/src/app/core/paths.ts @@ -5241,47 +5269,51 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 + 17 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 + 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 - 14 + 15 apps/client/src/app/pages/pricing/pricing-page.component.ts - 39 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 + 24 @@ -5290,27 +5322,27 @@ snake-case apps/client/src/app/app.component.ts - 63 + 65 apps/client/src/app/app.component.ts - 65 + 67 apps/client/src/app/app.component.ts - 69 + 71 apps/client/src/app/app.component.ts - 73 + 75 apps/client/src/app/components/header/header.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 85 + 87 apps/client/src/app/core/paths.ts @@ -5318,59 +5350,59 @@ apps/client/src/app/pages/about/about-page.component.ts - 45 + 46 apps/client/src/app/pages/about/about-page.component.ts - 50 + 51 apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 apps/client/src/app/pages/about/about-page.component.ts - 74 + 75 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 + 12 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 23 @@ -5379,7 +5411,7 @@ snake-case apps/client/src/app/app.component.ts - 74 + 76 apps/client/src/app/core/paths.ts @@ -5387,7 +5419,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -5396,7 +5428,7 @@ snake-case apps/client/src/app/app.component.ts - 70 + 72 apps/client/src/app/core/paths.ts @@ -5404,7 +5436,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 @@ -5413,15 +5445,15 @@ snake-case apps/client/src/app/app.component.ts - 78 + 80 apps/client/src/app/components/header/header.component.ts - 82 + 84 apps/client/src/app/components/header/header.component.ts - 87 + 89 apps/client/src/app/core/paths.ts @@ -5429,19 +5461,19 @@ 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 @@ -5454,27 +5486,27 @@ snake-case apps/client/src/app/app.component.ts - 79 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 48 + 74 apps/client/src/app/components/header/header.component.ts - 83 + 85 apps/client/src/app/components/header/header.component.ts - 88 + 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 - 38 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -5486,39 +5518,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 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 + 15 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + 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 - 25 + 30 @@ -5527,11 +5563,11 @@ snake-case apps/client/src/app/app.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 89 + 91 apps/client/src/app/core/auth.guard.ts @@ -5543,19 +5579,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 - 40 + 44 @@ -5564,15 +5600,15 @@ snake-case apps/client/src/app/app.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 84 + 86 apps/client/src/app/components/header/header.component.ts - 90 + 92 apps/client/src/app/core/paths.ts @@ -5580,47 +5616,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 + 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 - 13 + 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 @@ -5696,7 +5732,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5728,7 +5764,7 @@ Svizzera apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5740,7 +5776,7 @@ Globale apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5852,7 +5888,7 @@ Sei sicuro di voler eliminare questo tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5871,28 +5907,20 @@ 10 - - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - Ghostfolio X-ray usa l'analisi statica per identificare potenziali problemi e rischi del tuo portafoglio. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 - - Currency Cluster Risks Rischio di Concentrazione Valutario - apps/client/src/app/pages/portfolio/fire/fire-page.html - 141 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 58 Account Cluster Risks Rischi di Concentrazione dei Conti - apps/client/src/app/pages/portfolio/fire/fire-page.html - 160 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 106 @@ -5912,7 +5940,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -5964,7 +5992,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5976,7 +6004,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5984,7 +6012,7 @@ Trova possedimenti... libs/ui/src/lib/assistant/assistant.component.ts - 139 + 143 @@ -6084,7 +6112,7 @@ Ops, il trasferimento del saldo di cassa è fallito. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6115,8 +6143,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 + 262 @@ -6124,7 +6152,7 @@ Confermi di voler cancellare questo messaggio di sistema? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6180,7 +6208,7 @@ Vuoi veramente elimnare il saldo di questo conto? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6188,7 +6216,7 @@ non è una valuta valida! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6204,7 +6232,7 @@ L'attuale prezzo di mercato è apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 326 @@ -6212,7 +6240,7 @@ Prova apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6252,7 +6280,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 @@ -6272,7 +6300,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6280,7 +6308,7 @@ I dati di mercato sono ritardati di apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6288,15 +6316,15 @@ Investimento apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6304,7 +6332,7 @@ Rendimento assoluto dell'Asset apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6312,7 +6340,7 @@ Rendimento dell'Asset apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6320,7 +6348,7 @@ Rendimento assoluto della Valuta apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6328,7 +6356,7 @@ Rendimento della Valuta apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6336,7 +6364,7 @@ Rendimento assoluto della Valuta apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6344,7 +6372,7 @@ Rendimento Netto apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6352,7 +6380,7 @@ Da inizio settimana libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6360,7 +6388,7 @@ Settimana corrente libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6368,7 +6396,7 @@ Da inizio mese libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6376,7 +6404,7 @@ Mese corrente libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6384,7 +6412,7 @@ Da inizio anno libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -6420,7 +6448,7 @@ Reset Filtri libs/ui/src/lib/assistant/assistant.html - 157 + 185 @@ -6428,7 +6456,7 @@ anno libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -6436,15 +6464,7 @@ anni libs/ui/src/lib/assistant/assistant.component.ts - 246 - - - - Asset Classes - classi degli Asset - - libs/ui/src/lib/assistant/assistant.html - 138 + 256 @@ -6452,7 +6472,7 @@ Applica i Filtri libs/ui/src/lib/assistant/assistant.html - 167 + 195 @@ -6468,7 +6488,7 @@ Generale apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6476,7 +6496,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 @@ -6488,7 +6508,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 @@ -6500,7 +6520,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6536,7 +6556,7 @@ Attivo apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6544,7 +6564,7 @@ Chiuso apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6597,7 +6617,7 @@ {VAR_PLURAL, plural, =1 {activity} other {activities}} - {VAR_PLURAL, plural, =1 {attività} other {attività}} + {VAR_PLURAL, plural, =1 {attività} other {attività}} apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 14 @@ -6624,7 +6644,7 @@ Internazionalizzazione apps/client/src/app/app-routing.module.ts - 79 + 88 @@ -6632,7 +6652,7 @@ Confermi di voler chiudere il tuo account Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 174 @@ -6640,7 +6660,7 @@ Zona di Pericolo apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 248 @@ -6648,7 +6668,7 @@ Chiudi l'account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 283 @@ -6680,7 +6700,7 @@ Ops! C'è stato un errore impostando l'autenticazione biometrica. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 302 @@ -6688,7 +6708,7 @@ Visualizza di più libs/ui/src/lib/top-holdings/top-holdings.component.html - 81 + 174 @@ -6696,7 +6716,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6728,7 +6748,7 @@ Tabella apps/client/src/app/components/home-holdings/home-holdings.html - 17 + 16 @@ -6736,7 +6756,7 @@ Grafico apps/client/src/app/components/home-holdings/home-holdings.html - 20 + 19 @@ -6752,7 +6772,7 @@ Alternativa apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6760,7 +6780,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6768,7 +6788,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6776,7 +6796,7 @@ Comunità apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6784,7 +6804,7 @@ Ufficio familiare apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6792,7 +6812,7 @@ Investitore apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6800,7 +6820,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6808,7 +6828,7 @@ Finanza Personale apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6816,7 +6836,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6824,7 +6844,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6832,7 +6852,7 @@ Strumento apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6840,7 +6860,7 @@ Esperienza Utente apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6848,7 +6868,7 @@ Ricchezza apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6856,7 +6876,7 @@ Gestione Patrimoniale apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7008,7 +7028,7 @@ Errore apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 317 @@ -7031,8 +7051,8 @@ Inactive Inattivo - apps/client/src/app/pages/portfolio/fire/fire-page.html - 217 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 173 @@ -7077,7 +7097,7 @@ Change with currency effect Change - Cambio con effetto valuta Cambia + Cambio con effetto valuta Cambia apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 50 @@ -7085,7 +7105,7 @@ Performance with currency effect Performance - Prestazioni con effetto valuta Prestazioni + Prestazioni con effetto valuta Prestazioni apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 69 @@ -7096,7 +7116,7 @@ Soglia Minima apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 9 + 54 @@ -7104,7 +7124,7 @@ Soglia Massima apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 44 + 92 @@ -7112,7 +7132,7 @@ Chiudi apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 77 + 129 @@ -7128,7 +7148,7 @@ No rinnovo automatico. apps/client/src/app/components/user-account-membership/user-account-membership.html - 62 + 74 @@ -7149,7 +7169,7 @@ From the beginning - Dall'inizio + Dall'inizio apps/client/src/app/pages/public/public-page.html 60 @@ -7205,7 +7225,7 @@ can be self-hosted - può essere ospitato in proprio + può essere ospitato in proprio apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 178 @@ -7213,7 +7233,7 @@ cannot be self-hosted - non può essere ospitato in proprio + non può essere ospitato in proprio apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 185 @@ -7221,7 +7241,7 @@ can be self-hosted - può essere ospitato in proprio + può essere ospitato in proprio apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 195 @@ -7229,7 +7249,7 @@ cannot be self-hosted - non può essere ospitato in proprio + non può essere ospitato in proprio apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 202 @@ -7237,7 +7257,7 @@ can be used anonymously - può essere usato anonimamente + può essere usato anonimamente apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 217 @@ -7245,7 +7265,7 @@ cannot be used anonymously - non può essere usato anonimamente + non può essere usato anonimamente apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 224 @@ -7253,7 +7273,7 @@ can be used anonymously - può essere usato anonimamente + può essere usato anonimamente apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 234 @@ -7261,7 +7281,7 @@ cannot be used anonymously - non può essere usato anonimamente + non può essere usato anonimamente apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 241 @@ -7304,7 +7324,7 @@ Oops! Non ho trovato alcun asset. libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html - 37 + 40 @@ -7315,20 +7335,12 @@ 4 - - NEW - NUOVO + + Set API key + Imposta API Key apps/client/src/app/components/admin-settings/admin-settings.component.html - 14 - - - - Set API Key - Imposta API Key - - apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 70 @@ -7339,14 +7351,6 @@ 23 - - Notify me - Notificami - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 32 - - Get access to 100’000+ tickers from over 50 exchanges Ottieni accesso a oltre 100’000+ titoli da oltre 50 borse @@ -7379,14 +7383,6 @@ 93 - - Allocation Cluster Risks - Rischi di allocazione dei Conti - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 179 - - Glossary Glossario @@ -7396,7 +7392,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7408,7 +7404,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7417,7 +7413,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,13 +7426,245 @@ 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 21 + + Threshold range + Threshold range + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 9 + + + + 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. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 5 + + + + Economic Market Cluster Risks + Economic Market Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 130 + + + + of + of + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 42 + + + + daily requests + daily requests + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 44 + + + + Remove API key + Remove API key + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 58 + + + + Do you really want to delete the API key? + Do you really want to delete the API key? + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 93 + + + + Please enter your Ghostfolio API key: + Please enter your Ghostfolio API key: + + apps/client/src/app/pages/api/api-page.component.ts + 40 + + + + Notify me + Notify me + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 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 + 43 + + + + 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 + 139 + + + + 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 + 154 + + + + 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 + 157 + + + + 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 + 162 + + + + 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 + + + + 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 + + + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 62 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 135 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 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 + + + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + + + Early Access + Early Access + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 16 + + \ No newline at end of file diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 9a12eb0f4..18cf83bb3 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -22,7 +22,7 @@ Het risico op verlies bij handelen kan aanzienlijk zijn. Het is niet aan te raden om geld te investeren dat je misschien op korte termijn nodig heeft. apps/client/src/app/app.component.html - 199 + 205 @@ -74,7 +74,7 @@ Wil je deze verleende toegang echt intrekken? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 78 @@ -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 @@ -166,7 +166,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 12 + 16 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 88 @@ -238,7 +242,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 26 + 25 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 102 @@ -314,7 +322,7 @@ Wil je deze rekening echt verwijderen? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -338,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 @@ -362,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 @@ -445,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 @@ -468,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 @@ -484,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 @@ -528,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 @@ -554,7 +558,7 @@ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 83 + 135 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -568,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 @@ -578,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 @@ -605,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 @@ -614,7 +622,7 @@ Voeg een valuta toe: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -622,7 +630,7 @@ Wil je deze coupon echt verwijderen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -630,7 +638,7 @@ Wil je deze valuta echt verwijderen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -638,7 +646,7 @@ Wil je echt de cache legen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -646,7 +654,7 @@ Stel je systeemboodschap in: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -778,7 +786,7 @@ Wilt je deze gebruiker echt verwijderen? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 139 @@ -790,7 +798,7 @@ apps/client/src/app/components/header/header.component.html - 224 + 229 @@ -814,7 +822,7 @@ Laatste verzoek apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -834,7 +842,7 @@ apps/client/src/app/components/header/header.component.html - 240 + 245 @@ -846,7 +854,7 @@ apps/client/src/app/components/header/header.component.html - 250 + 255 @@ -866,7 +874,7 @@ apps/client/src/app/components/header/header.component.html - 258 + 263 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -876,10 +884,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Admin Control @@ -890,7 +894,7 @@ apps/client/src/app/components/header/header.component.html - 274 + 279 @@ -898,7 +902,7 @@ Middelen apps/client/src/app/app.component.html - 63 + 64 apps/client/src/app/components/header/header.component.html @@ -906,7 +910,7 @@ apps/client/src/app/components/header/header.component.html - 286 + 291 apps/client/src/app/pages/resources/overview/resources-overview.component.html @@ -918,19 +922,19 @@ Prijzen apps/client/src/app/app.component.html - 96 + 97 apps/client/src/app/components/header/header.component.html - 98 + 99 apps/client/src/app/components/header/header.component.html - 297 + 303 apps/client/src/app/components/header/header.component.html - 368 + 379 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html @@ -942,15 +946,15 @@ Over apps/client/src/app/app.component.html - 69 + 70 apps/client/src/app/components/header/header.component.html - 112 + 117 apps/client/src/app/components/header/header.component.html - 354 + 364 @@ -958,7 +962,7 @@ Ik apps/client/src/app/components/header/header.component.html - 206 + 211 @@ -966,7 +970,7 @@ Mijn Ghostfolio apps/client/src/app/components/header/header.component.html - 265 + 270 @@ -974,7 +978,7 @@ Over Ghostfolio apps/client/src/app/components/header/header.component.html - 306 + 316 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -986,11 +990,11 @@ Functionaliteiten apps/client/src/app/app.component.html - 78 + 79 apps/client/src/app/components/header/header.component.html - 341 + 351 apps/client/src/app/pages/features/features-page.html @@ -1002,11 +1006,11 @@ Markten apps/client/src/app/app.component.html - 60 + 61 apps/client/src/app/components/header/header.component.html - 383 + 398 apps/client/src/app/components/home-market/home-market.html @@ -1022,7 +1026,7 @@ Aan de slag apps/client/src/app/pages/features/features-page.html - 303 + 304 apps/client/src/app/pages/public/public-page.html @@ -1034,11 +1038,11 @@ Aanmelden apps/client/src/app/app-routing.module.ts - 141 + 150 apps/client/src/app/components/header/header.component.ts - 229 + 231 @@ -1046,11 +1050,11 @@ Oeps! Onjuiste beveiligingstoken. apps/client/src/app/components/header/header.component.ts - 244 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 159 @@ -1058,7 +1062,7 @@ Activiteiten beheren apps/client/src/app/components/home-holdings/home-holdings.html - 65 + 63 @@ -1086,7 +1090,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 255 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1096,6 +1100,10 @@ or of + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 36 + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 31 @@ -1150,7 +1158,7 @@ Aanmelden apps/client/src/app/components/header/header.component.html - 397 + 412 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1245,8 +1253,8 @@ 89 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 122 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 34 @@ -1297,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 + 64 @@ -1310,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 @@ -1330,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 @@ -1346,7 +1354,7 @@ Tags apps/client/src/app/components/admin-settings/admin-settings.component.html - 45 + 87 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1360,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 - 127 - Report Data Glitch @@ -1382,7 +1386,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 46 + 40 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 116 @@ -1410,11 +1418,11 @@ Vandaag apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 210 + 220 @@ -1422,11 +1430,11 @@ YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -1434,11 +1442,11 @@ 1J apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -1446,11 +1454,11 @@ 5J apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 246 + 256 @@ -1458,23 +1466,27 @@ Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 249 + 259 Okay Oké + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 152 + apps/client/src/app/core/http-response.interceptor.ts 81 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -1486,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 @@ -1498,7 +1510,7 @@ Privacybeleid apps/client/src/app/app.component.html - 102 + 103 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1510,7 +1522,7 @@ Blog apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1592,6 +1604,10 @@ apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html 187 + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html + 167 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -1602,7 +1618,7 @@ Changelog apps/client/src/app/app.component.html - 76 + 77 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1614,7 +1630,7 @@ Licentie apps/client/src/app/app.component.html - 87 + 88 apps/client/src/app/pages/about/license/license-page.html @@ -1626,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 @@ -1641,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 - 115 + 213 @@ -1654,7 +1670,7 @@ Kon je kortingscode niet inwisselen apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 125 + 177 @@ -1662,7 +1678,7 @@ Je couponcode is ingewisseld apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 137 + 190 @@ -1670,7 +1686,7 @@ Herladen apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 191 @@ -1678,7 +1694,7 @@ Wil je deze aanmeldingsmethode echt verwijderen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 248 @@ -1692,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 @@ -1706,11 +1726,11 @@ 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 - 264 + 279 @@ -1718,7 +1738,7 @@ Probeer Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 41 + 53 @@ -1726,7 +1746,7 @@ Coupon inwisselen apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 67 @@ -1750,7 +1770,7 @@ Locatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 127 @@ -1758,7 +1778,7 @@ Datum- en getalnotatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 129 @@ -1766,7 +1786,7 @@ Zen-modus apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 apps/client/src/app/pages/features/features-page.html @@ -1778,7 +1798,7 @@ Aanmelden met vingerafdruk apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 195 @@ -1790,7 +1810,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 228 @@ -1798,7 +1818,7 @@ Verleende toegang apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -1858,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 @@ -1962,7 +1982,7 @@ Functionaliteiten apps/client/src/app/app-routing.module.ts - 65 + 74 @@ -1970,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 @@ -1986,7 +2006,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -1998,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 @@ -2010,7 +2030,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -2022,7 +2042,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -2110,7 +2130,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -2126,7 +2146,7 @@ Tijdlijn investeringen apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -2134,7 +2154,7 @@ Winnaars apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -2142,15 +2162,7 @@ Verliezers apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 - - - - FIRE - FIRE - - apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 13 + 246 @@ -2190,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 @@ -2310,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 @@ -2330,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 @@ -2344,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 @@ -2354,7 +2370,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -2362,7 +2378,7 @@ Gegevens importeren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -2370,7 +2386,7 @@ Importeren is voltooid apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -2386,15 +2402,15 @@ 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 - 41 + 46 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2514,7 +2530,7 @@ Activiteiten importeren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -2562,7 +2578,7 @@ Wil je deze activiteit echt verwijderen? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -2618,7 +2634,7 @@ Aan de slag apps/client/src/app/components/header/header.component.html - 407 + 422 @@ -2638,7 +2654,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -2654,7 +2670,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -2686,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 @@ -2746,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 @@ -2758,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 @@ -2790,7 +2806,7 @@ Besparingen libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -2798,7 +2814,7 @@ Rente libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -2810,7 +2826,7 @@ Storting libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -2818,7 +2834,7 @@ Maandelijks apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 54 @@ -2842,7 +2858,7 @@ Angst apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2854,7 +2870,7 @@ Hebzucht apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2866,7 +2882,7 @@ Filter op... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -2894,7 +2910,7 @@ Experimentele functies apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 211 @@ -2902,7 +2918,7 @@ Benchmark apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2934,7 +2950,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -2942,7 +2958,7 @@ Weergave apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 152 @@ -2950,7 +2966,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 166 @@ -2958,7 +2974,7 @@ Licht apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 167 @@ -2966,7 +2982,7 @@ Donker apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 168 @@ -2974,7 +2990,7 @@ Totaalbedrag apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -2982,7 +2998,7 @@ Waardeontwikkeling van portefeuille apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -2990,7 +3006,7 @@ Spaarrente apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -3138,7 +3154,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -3146,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 @@ -3226,7 +3242,7 @@ Gemeenschap apps/client/src/app/app.component.html - 120 + 121 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -3254,19 +3270,23 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 105 + 104 apps/client/src/app/components/user-account-settings/user-account-settings.html - 110 + 108 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 112 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 117 apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -3290,7 +3310,7 @@ Symbool toewijzen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -3298,7 +3318,7 @@ Dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 41 libs/ui/src/lib/i18n.ts @@ -3310,7 +3330,7 @@ Tijdlijn dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -3334,16 +3354,12 @@ Gegevens valideren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 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 @@ -3352,6 +3368,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 @@ -3362,7 +3382,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3374,7 +3394,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3386,7 +3406,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3396,6 +3416,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 32 + + libs/ui/src/lib/assistant/assistant.html + 127 + Load Dividends @@ -3410,7 +3434,7 @@ Jaarlijks apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 55 @@ -3418,15 +3442,19 @@ Importeer dividenden apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 Valid until Geldig tot + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 28 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -3490,7 +3518,7 @@ Afleidingsvrije ervaring voor roerige tijden apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 178 @@ -3498,7 +3526,7 @@ Voorproefje van nieuwe functionaliteit apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 212 @@ -3522,7 +3550,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 203 + 218 @@ -3538,7 +3566,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 211 + 226 @@ -3554,7 +3582,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 215 + 230 @@ -3570,7 +3598,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 242 + 257 @@ -3586,7 +3614,7 @@ Abonnement uitbreiden apps/client/src/app/components/header/header.component.html - 180 + 185 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html @@ -3594,11 +3622,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html - 278 + 293 @@ -3618,11 +3646,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 129 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 191 + 206 @@ -3634,11 +3662,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 133 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 195 + 210 @@ -3650,11 +3678,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 137 + 142 apps/client/src/app/pages/pricing/pricing-page.html - 199 + 214 @@ -3674,7 +3702,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 153 + 158 @@ -3682,7 +3710,7 @@ Voor nieuwe beleggers die net beginnen met handelen. apps/client/src/app/pages/pricing/pricing-page.html - 123 + 128 @@ -3690,11 +3718,11 @@ Volledig beheerd Ghostfolio cloud-aanbod. apps/client/src/app/pages/pricing/pricing-page.html - 152 + 157 apps/client/src/app/pages/pricing/pricing-page.html - 251 + 266 @@ -3702,7 +3730,7 @@ Voor ambitieuze beleggers die een volledig beeld willen hebben van hun financiële assets. apps/client/src/app/pages/pricing/pricing-page.html - 184 + 199 @@ -3710,7 +3738,7 @@ Eenmalige betaling, geen automatische verlenging. apps/client/src/app/pages/pricing/pricing-page.html - 288 + 303 @@ -3726,7 +3754,7 @@ Het is gratis. apps/client/src/app/pages/pricing/pricing-page.html - 309 + 332 @@ -3741,8 +3769,8 @@ 84 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 198 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 154 @@ -3762,7 +3790,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 207 + 222 @@ -3782,11 +3810,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 141 + 146 apps/client/src/app/pages/pricing/pricing-page.html - 219 + 234 @@ -3810,7 +3838,7 @@ Ondersteuning via e-mail en chat apps/client/src/app/pages/pricing/pricing-page.html - 247 + 262 @@ -3870,7 +3898,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 230 + 245 @@ -3886,15 +3914,15 @@ Abonnement Vernieuwen apps/client/src/app/components/header/header.component.html - 186 + 191 apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 299 @@ -3910,7 +3938,7 @@ Gebruiker nadoen apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -3918,7 +3946,7 @@ Gebruiker verwijderen apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -3926,7 +3954,7 @@ Wil je echt al je activiteiten verwijderen? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3958,7 +3986,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 @@ -3974,7 +4002,7 @@ Wil je dit platform echt verwijderen? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -3982,7 +4010,7 @@ Platforms apps/client/src/app/components/admin-settings/admin-settings.component.html - 39 + 81 @@ -4034,7 +4062,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 @@ -4042,7 +4070,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -4130,7 +4158,7 @@ Persoonlijke financiën apps/client/src/app/app.component.html - 56 + 57 @@ -4138,7 +4166,7 @@ Veelgestelde Vragen apps/client/src/app/app.component.html - 82 + 83 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -4150,7 +4178,7 @@ Huidige reeks apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4158,7 +4186,7 @@ Langste reeks apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4210,7 +4238,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 @@ -4222,7 +4250,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 @@ -4330,7 +4358,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -4346,7 +4374,7 @@ Scraper instellingen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -4590,7 +4618,7 @@ ETF’s zonder Landen apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -4598,7 +4626,7 @@ ETF’s zonder Sectoren apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -4714,7 +4742,7 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 88 + 181 @@ -4738,7 +4766,7 @@ Biometrische authenticatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 194 @@ -4822,7 +4850,7 @@ Exporteer Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 236 @@ -4830,7 +4858,7 @@ Valuta apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -4922,7 +4950,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 306 + 329 @@ -5191,7 +5219,7 @@ snake-case apps/client/src/app/app.component.ts - 76 + 78 apps/client/src/app/core/paths.ts @@ -5199,23 +5227,23 @@ 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 @@ -5224,15 +5252,15 @@ snake-case apps/client/src/app/app.component.ts - 77 + 79 apps/client/src/app/components/header/header.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 86 + 88 apps/client/src/app/core/paths.ts @@ -5240,47 +5268,51 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 + 17 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 + 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 - 14 + 15 apps/client/src/app/pages/pricing/pricing-page.component.ts - 39 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 + 24 @@ -5289,27 +5321,27 @@ snake-case apps/client/src/app/app.component.ts - 63 + 65 apps/client/src/app/app.component.ts - 65 + 67 apps/client/src/app/app.component.ts - 69 + 71 apps/client/src/app/app.component.ts - 73 + 75 apps/client/src/app/components/header/header.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 85 + 87 apps/client/src/app/core/paths.ts @@ -5317,59 +5349,59 @@ apps/client/src/app/pages/about/about-page.component.ts - 45 + 46 apps/client/src/app/pages/about/about-page.component.ts - 50 + 51 apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 apps/client/src/app/pages/about/about-page.component.ts - 74 + 75 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 + 12 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 23 @@ -5378,7 +5410,7 @@ snake-case apps/client/src/app/app.component.ts - 74 + 76 apps/client/src/app/core/paths.ts @@ -5386,7 +5418,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -5395,7 +5427,7 @@ snake-case apps/client/src/app/app.component.ts - 70 + 72 apps/client/src/app/core/paths.ts @@ -5403,7 +5435,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 @@ -5412,15 +5444,15 @@ snake-case apps/client/src/app/app.component.ts - 78 + 80 apps/client/src/app/components/header/header.component.ts - 82 + 84 apps/client/src/app/components/header/header.component.ts - 87 + 89 apps/client/src/app/core/paths.ts @@ -5428,19 +5460,19 @@ 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 @@ -5453,27 +5485,27 @@ snake-case apps/client/src/app/app.component.ts - 79 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 48 + 74 apps/client/src/app/components/header/header.component.ts - 83 + 85 apps/client/src/app/components/header/header.component.ts - 88 + 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 - 38 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -5485,39 +5517,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 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 + 15 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + 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 - 25 + 30 @@ -5526,11 +5562,11 @@ snake-case apps/client/src/app/app.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 89 + 91 apps/client/src/app/core/auth.guard.ts @@ -5542,19 +5578,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 - 40 + 44 @@ -5563,15 +5599,15 @@ snake-case apps/client/src/app/app.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 84 + 86 apps/client/src/app/components/header/header.component.ts - 90 + 92 apps/client/src/app/core/paths.ts @@ -5579,47 +5615,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 + 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 - 13 + 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 @@ -5695,7 +5731,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5727,7 +5763,7 @@ Zwitserland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5739,7 +5775,7 @@ Wereldwijd apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5851,7 +5887,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5870,28 +5906,20 @@ 10 - - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 - - Currency Cluster Risks Currency Cluster Risks - apps/client/src/app/pages/portfolio/fire/fire-page.html - 141 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 58 Account Cluster Risks Account Cluster Risks - apps/client/src/app/pages/portfolio/fire/fire-page.html - 160 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 106 @@ -5911,7 +5939,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -5963,7 +5991,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5975,7 +6003,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5983,7 +6011,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 139 + 143 @@ -6083,7 +6111,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6114,8 +6142,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 + 262 @@ -6123,7 +6151,7 @@ Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6179,7 +6207,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6187,7 +6215,7 @@ is an invalid currency! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6203,7 +6231,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 326 @@ -6211,7 +6239,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6251,7 +6279,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 @@ -6271,7 +6299,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6279,7 +6307,7 @@ Market data is delayed for apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6287,15 +6315,15 @@ Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6303,7 +6331,7 @@ Absolute Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6311,7 +6339,7 @@ Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6319,7 +6347,7 @@ Absolute Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6327,7 +6355,7 @@ Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6335,7 +6363,7 @@ Absolute Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6343,7 +6371,7 @@ Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6351,7 +6379,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6359,7 +6387,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6367,7 +6395,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6375,7 +6403,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6383,7 +6411,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -6419,7 +6447,7 @@ Reset Filters libs/ui/src/lib/assistant/assistant.html - 157 + 185 @@ -6427,7 +6455,7 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -6435,15 +6463,7 @@ years libs/ui/src/lib/assistant/assistant.component.ts - 246 - - - - Asset Classes - Asset Classes - - libs/ui/src/lib/assistant/assistant.html - 138 + 256 @@ -6451,7 +6471,7 @@ Apply Filters libs/ui/src/lib/assistant/assistant.html - 167 + 195 @@ -6467,7 +6487,7 @@ General apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6475,7 +6495,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 @@ -6487,7 +6507,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 @@ -6499,7 +6519,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6535,7 +6555,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6543,7 +6563,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6623,7 +6643,7 @@ Internationalization apps/client/src/app/app-routing.module.ts - 79 + 88 @@ -6631,7 +6651,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 174 @@ -6639,7 +6659,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 248 @@ -6647,7 +6667,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 283 @@ -6679,7 +6699,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 302 @@ -6687,7 +6707,7 @@ Show more libs/ui/src/lib/top-holdings/top-holdings.component.html - 81 + 174 @@ -6695,7 +6715,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6727,7 +6747,7 @@ Table apps/client/src/app/components/home-holdings/home-holdings.html - 17 + 16 @@ -6735,7 +6755,7 @@ Chart apps/client/src/app/components/home-holdings/home-holdings.html - 20 + 19 @@ -6751,7 +6771,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6759,7 +6779,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6767,7 +6787,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6775,7 +6795,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6783,7 +6803,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6791,7 +6811,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6799,7 +6819,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6807,7 +6827,7 @@ Personal Finance apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6815,7 +6835,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6823,7 +6843,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6831,7 +6851,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6839,7 +6859,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6847,7 +6867,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6855,7 +6875,7 @@ Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7007,7 +7027,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 317 @@ -7030,8 +7050,8 @@ Inactive Inactive - apps/client/src/app/pages/portfolio/fire/fire-page.html - 217 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 173 @@ -7095,7 +7115,7 @@ Threshold Min apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 9 + 54 @@ -7103,7 +7123,7 @@ Threshold Max apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 44 + 92 @@ -7111,7 +7131,7 @@ Close apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 77 + 129 @@ -7127,7 +7147,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 62 + 74 @@ -7303,7 +7323,7 @@ Oops! Could not find any assets. libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html - 37 + 40 @@ -7314,20 +7334,12 @@ 4 - - NEW - NEW + + Set API key + Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 14 - - - - Set API Key - Set API Key - - apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 70 @@ -7338,14 +7350,6 @@ 23 - - Notify me - Notify me - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 32 - - Get access to 100’000+ tickers from over 50 exchanges Get access to 100’000+ tickers from over 50 exchanges @@ -7378,14 +7382,6 @@ 93 - - Allocation Cluster Risks - Allocation Cluster Risks - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 179 - - Glossary Glossary @@ -7395,7 +7391,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7407,7 +7403,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7416,7 +7412,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,13 +7425,245 @@ 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 21 + + Threshold range + Threshold range + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 9 + + + + 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. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 5 + + + + Economic Market Cluster Risks + Economic Market Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 130 + + + + of + of + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 42 + + + + daily requests + daily requests + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 44 + + + + Remove API key + Remove API key + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 58 + + + + Do you really want to delete the API key? + Do you really want to delete the API key? + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 93 + + + + Please enter your Ghostfolio API key: + Please enter your Ghostfolio API key: + + apps/client/src/app/pages/api/api-page.component.ts + 40 + + + + Notify me + Notify me + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 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 + 43 + + + + 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 + 139 + + + + 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 + 154 + + + + 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 + 157 + + + + 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 + 162 + + + + 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 + + + + 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 + + + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 62 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 135 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 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 + + + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + + + Early Access + Early Access + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 16 + + diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 3a183045b..38b8fe231 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -7,27 +7,27 @@ snake-case apps/client/src/app/app.component.ts - 63 + 65 apps/client/src/app/app.component.ts - 65 + 67 apps/client/src/app/app.component.ts - 69 + 71 apps/client/src/app/app.component.ts - 73 + 75 apps/client/src/app/components/header/header.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 85 + 87 apps/client/src/app/core/paths.ts @@ -35,59 +35,59 @@ apps/client/src/app/pages/about/about-page.component.ts - 45 + 46 apps/client/src/app/pages/about/about-page.component.ts - 50 + 51 apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 apps/client/src/app/pages/about/about-page.component.ts - 74 + 75 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 + 12 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 23 @@ -96,7 +96,7 @@ snake-case apps/client/src/app/app.component.ts - 76 + 78 apps/client/src/app/core/paths.ts @@ -104,23 +104,23 @@ 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 @@ -129,15 +129,15 @@ snake-case apps/client/src/app/app.component.ts - 77 + 79 apps/client/src/app/components/header/header.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 86 + 88 apps/client/src/app/core/paths.ts @@ -145,47 +145,51 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 + 17 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 + 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 - 14 + 15 apps/client/src/app/pages/pricing/pricing-page.component.ts - 39 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 + 24 @@ -194,7 +198,7 @@ snake-case apps/client/src/app/app.component.ts - 70 + 72 apps/client/src/app/core/paths.ts @@ -202,7 +206,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 @@ -211,15 +215,15 @@ snake-case apps/client/src/app/app.component.ts - 78 + 80 apps/client/src/app/components/header/header.component.ts - 82 + 84 apps/client/src/app/components/header/header.component.ts - 87 + 89 apps/client/src/app/core/paths.ts @@ -227,19 +231,19 @@ 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 @@ -252,27 +256,27 @@ snake-case apps/client/src/app/app.component.ts - 79 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 48 + 74 apps/client/src/app/components/header/header.component.ts - 83 + 85 apps/client/src/app/components/header/header.component.ts - 88 + 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 - 38 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -284,39 +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 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 + 15 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + 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 - 25 + 30 @@ -325,7 +333,7 @@ snake-case apps/client/src/app/app.component.ts - 74 + 76 apps/client/src/app/core/paths.ts @@ -333,7 +341,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -342,11 +350,11 @@ snake-case apps/client/src/app/app.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 89 + 91 apps/client/src/app/core/auth.guard.ts @@ -358,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 - 40 + 44 @@ -379,15 +387,15 @@ snake-case apps/client/src/app/app.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 84 + 86 apps/client/src/app/components/header/header.component.ts - 90 + 92 apps/client/src/app/core/paths.ts @@ -395,47 +403,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 + 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 - 13 + 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 @@ -467,7 +475,7 @@ Finanse Osobiste apps/client/src/app/app.component.html - 56 + 57 @@ -475,11 +483,11 @@ Rynki apps/client/src/app/app.component.html - 60 + 61 apps/client/src/app/components/header/header.component.html - 383 + 398 apps/client/src/app/components/home-market/home-market.html @@ -495,7 +503,7 @@ Zasoby apps/client/src/app/app.component.html - 63 + 64 apps/client/src/app/components/header/header.component.html @@ -503,7 +511,7 @@ apps/client/src/app/components/header/header.component.html - 286 + 291 apps/client/src/app/pages/resources/overview/resources-overview.component.html @@ -515,15 +523,15 @@ O programie apps/client/src/app/app.component.html - 69 + 70 apps/client/src/app/components/header/header.component.html - 112 + 117 apps/client/src/app/components/header/header.component.html - 354 + 364 @@ -531,7 +539,7 @@ Blog apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -613,6 +621,10 @@ apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html 187 + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html + 167 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -623,7 +635,7 @@ Dziennik Zmian apps/client/src/app/app.component.html - 76 + 77 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -635,11 +647,11 @@ Funkcje apps/client/src/app/app.component.html - 78 + 79 apps/client/src/app/components/header/header.component.html - 341 + 351 apps/client/src/app/pages/features/features-page.html @@ -651,7 +663,7 @@ Często Zadawane Pytania (FAQ) apps/client/src/app/app.component.html - 82 + 83 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -663,7 +675,7 @@ Licencja apps/client/src/app/app.component.html - 87 + 88 apps/client/src/app/pages/about/license/license-page.html @@ -675,19 +687,19 @@ Cennik apps/client/src/app/app.component.html - 96 + 97 apps/client/src/app/components/header/header.component.html - 98 + 99 apps/client/src/app/components/header/header.component.html - 297 + 303 apps/client/src/app/components/header/header.component.html - 368 + 379 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html @@ -699,7 +711,7 @@ Polityka Prywatności apps/client/src/app/app.component.html - 102 + 103 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -711,7 +723,7 @@ Społeczność apps/client/src/app/app.component.html - 120 + 121 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -739,19 +751,23 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 105 + 104 apps/client/src/app/components/user-account-settings/user-account-settings.html - 110 + 108 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 112 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 117 apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -759,7 +775,7 @@ Ryzyko strat na rynku może być znaczne. Nie jest zalecane inwestowanie pieniędzy, które mogą być potrzebne w krótkim okresie. apps/client/src/app/app.component.html - 199 + 205 @@ -823,7 +839,7 @@ Czy na pewno chcesz cofnąć przyznany dostęp? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 78 @@ -867,7 +883,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 @@ -931,7 +947,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,7 +983,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 12 + 16 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 88 @@ -987,11 +1007,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 @@ -1071,7 +1091,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 26 + 25 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 102 @@ -1147,7 +1171,7 @@ Czy na pewno chcesz usunąć to konto? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -1179,7 +1203,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 @@ -1203,7 +1227,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 @@ -1278,17 +1302,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 @@ -1301,14 +1321,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 - - - Market Price - Cena Rynkowa - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 + 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/admin-market-data.html 104 @@ -1317,17 +1337,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 @@ -1361,17 +1381,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 @@ -1387,7 +1407,7 @@ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 83 + 135 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -1401,13 +1421,17 @@ 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 Waluty apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -1415,7 +1439,7 @@ ETF-y bez Krajów apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -1423,7 +1447,7 @@ ETF-y bez Sektorów apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -1439,7 +1463,7 @@ Filtruj według... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -1451,11 +1475,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 @@ -1465,6 +1489,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 @@ -1475,11 +1503,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 @@ -1499,7 +1527,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 @@ -1526,8 +1554,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 @@ -1578,8 +1606,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 + 262 @@ -1601,10 +1629,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 @@ -1613,13 +1637,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 @@ -1631,7 +1659,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 @@ -1647,11 +1675,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 @@ -1667,11 +1695,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 @@ -1683,7 +1711,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -1691,7 +1719,7 @@ Mapowanie Symboli apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -1699,7 +1727,7 @@ Konfiguracja Scrapera apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -1707,7 +1735,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 @@ -1759,7 +1787,7 @@ Proszę dodać walutę: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -1767,7 +1795,7 @@ Czy naprawdę chcesz usunąć ten kupon? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -1775,7 +1803,7 @@ Czy naprawdę chcesz usunąć tę walutę? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -1783,7 +1811,7 @@ Czy naprawdę chcesz usunąć tę wiadomość systemową? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -1791,7 +1819,7 @@ Czy naprawdę chcesz wyczyścić pamięć podręczną? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -1799,7 +1827,7 @@ Proszę ustawić swoją wiadomość systemową: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -1935,7 +1963,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 @@ -1963,7 +1991,7 @@ apps/client/src/app/components/header/header.component.html - 258 + 263 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1973,17 +2001,13 @@ 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? Czy naprawdę chcesz usunąć tę platformę? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -2007,7 +2031,7 @@ Platformy apps/client/src/app/components/admin-settings/admin-settings.component.html - 39 + 81 @@ -2015,7 +2039,7 @@ Tagi apps/client/src/app/components/admin-settings/admin-settings.component.html - 45 + 87 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2029,10 +2053,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 - 127 - Add Tag @@ -2047,7 +2067,7 @@ Czy naprawdę chcesz usunąć ten tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -2071,7 +2091,7 @@ Czy na pewno chcesz usunąć tego użytkownika? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 139 @@ -2103,7 +2123,7 @@ Ostatnie Żądanie apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -2111,7 +2131,7 @@ Wciel się w Użytkownika apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -2119,7 +2139,7 @@ Usuń Użytkownika apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -2155,15 +2175,15 @@ 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 - 41 + 46 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2171,7 +2191,7 @@ Poziom Odniesienia (Benchmark) apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2191,7 +2211,7 @@ apps/client/src/app/components/header/header.component.html - 240 + 245 @@ -2203,7 +2223,7 @@ apps/client/src/app/components/header/header.component.html - 250 + 255 @@ -2215,7 +2235,7 @@ apps/client/src/app/components/header/header.component.html - 274 + 279 @@ -2223,7 +2243,7 @@ Ja apps/client/src/app/components/header/header.component.html - 206 + 211 @@ -2235,7 +2255,7 @@ apps/client/src/app/components/header/header.component.html - 224 + 229 @@ -2243,7 +2263,7 @@ Moje Ghostfolio apps/client/src/app/components/header/header.component.html - 265 + 270 @@ -2251,7 +2271,7 @@ O Ghostfolio apps/client/src/app/components/header/header.component.html - 306 + 316 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -2263,7 +2283,7 @@ Zaloguj się apps/client/src/app/components/header/header.component.html - 397 + 412 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2275,7 +2295,7 @@ Rozpocznij apps/client/src/app/components/header/header.component.html - 407 + 422 @@ -2283,11 +2303,11 @@ Zaloguj się apps/client/src/app/app-routing.module.ts - 141 + 150 apps/client/src/app/components/header/header.component.ts - 229 + 231 @@ -2295,11 +2315,11 @@ Ups! Nieprawidłowy token bezpieczeństwa. apps/client/src/app/components/header/header.component.ts - 244 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 159 @@ -2307,7 +2327,7 @@ Zarządzaj Aktywnościami apps/client/src/app/components/home-holdings/home-holdings.html - 65 + 63 @@ -2315,7 +2335,7 @@ Zagrożenie apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2327,7 +2347,7 @@ Zachłanność apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2439,7 +2459,7 @@ Całkowita Kwota apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -2447,7 +2467,7 @@ Stopa Oszczędności apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -2459,7 +2479,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 255 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2469,6 +2489,10 @@ or lub + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 36 + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 31 @@ -2574,8 +2598,8 @@ 84 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 198 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 154 @@ -2622,8 +2646,8 @@ 89 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 122 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 34 @@ -2718,12 +2742,12 @@ 271 - - Please enter the amount of your emergency fund: - Proszę wprowadzić wysokość funduszu rezerwowego: + + Please set the amount of your emergency fund. + Wprowadź wysokość funduszu rezerwowego: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 53 + 64 @@ -2811,12 +2835,12 @@ apps/client/src/app/pages/pricing/pricing-page.html - 203 + 218 Portfolio Allocations - Alokacja portfela + Podział portfela apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 28 @@ -2831,7 +2855,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 207 + 222 @@ -2847,7 +2871,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 211 + 226 @@ -2863,7 +2887,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 215 + 230 @@ -2875,7 +2899,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 230 + 245 @@ -2891,7 +2915,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 242 + 257 @@ -2915,7 +2939,7 @@ Ulepsz Plan apps/client/src/app/components/header/header.component.html - 180 + 185 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html @@ -2923,11 +2947,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html - 278 + 293 @@ -2935,59 +2959,59 @@ Dziś apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 210 + 220 YTD - YTD + 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 - 220 + 230 1Y - 1Y + 1 rok apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 5Y - 5Y + 5 lat apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 246 + 256 Max - Max + Maksimum apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 249 + 259 @@ -3011,15 +3035,15 @@ Przyznano dostęp apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 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 - 115 + 213 @@ -3027,7 +3051,7 @@ Nie udało się zrealizować kodu kuponu apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 125 + 177 @@ -3035,7 +3059,7 @@ Kupon został zrealizowany apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 137 + 190 @@ -3043,7 +3067,7 @@ Odśwież apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 191 @@ -3051,11 +3075,11 @@ rocznie apps/client/src/app/components/user-account-membership/user-account-membership.html - 34 + 36 apps/client/src/app/pages/pricing/pricing-page.html - 264 + 279 @@ -3063,7 +3087,7 @@ Wypróbuj Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 41 + 53 @@ -3071,15 +3095,15 @@ Wykorzystaj kupon apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 67 Auto - Auto + Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -3087,7 +3111,7 @@ Czy na pewno chcesz usunąć tą metode logowania? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 248 @@ -3135,7 +3159,7 @@ Ustawienia Regionalne apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 127 @@ -3143,7 +3167,7 @@ Format daty i liczb apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 129 @@ -3151,7 +3175,7 @@ Wygląd (tryb) apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 152 @@ -3159,7 +3183,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 166 @@ -3167,7 +3191,7 @@ Jasny apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 167 @@ -3175,7 +3199,7 @@ Ciemny apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 168 @@ -3183,7 +3207,7 @@ Tryb Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 apps/client/src/app/pages/features/features-page.html @@ -3195,7 +3219,7 @@ Doświadczenie bez zakłóceń w niespokojnych czasach apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 178 @@ -3203,7 +3227,7 @@ Uwierzytelnianie Biometryczne apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 194 @@ -3211,7 +3235,7 @@ Logowanie za pomocą linii papilarnych apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 195 @@ -3219,7 +3243,7 @@ Funkcje Eksperymentalne apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 211 @@ -3227,7 +3251,7 @@ Podgląd nadchodzących funkcjonalności apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 212 @@ -3239,7 +3263,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 228 @@ -3247,7 +3271,7 @@ Eksportuj Dane apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 236 @@ -3271,7 +3295,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -3283,31 +3307,35 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 Okay Okej + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 152 + apps/client/src/app/core/http-response.interceptor.ts 81 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 About - About + O Ghostfolio apps/client/src/app/pages/about/about-page-routing.module.ts 51 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 @@ -3319,7 +3347,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 @@ -3331,7 +3359,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 @@ -3343,7 +3371,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 @@ -3376,7 +3404,7 @@ Accounts - Accounts + Konta apps/client/src/app/pages/accounts/accounts-page-routing.module.ts 13 @@ -3387,7 +3415,7 @@ Ups, transfer salda nie powiódł się. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -3455,7 +3483,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3467,7 +3495,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 @@ -3475,7 +3503,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -3487,7 +3515,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3495,15 +3523,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 @@ -3511,7 +3539,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -3571,7 +3599,7 @@ Funkcje apps/client/src/app/app-routing.module.ts - 65 + 74 @@ -3683,7 +3711,7 @@ Oprogramowanie Open Source apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -3691,7 +3719,7 @@ Rozpocznij apps/client/src/app/pages/features/features-page.html - 303 + 304 apps/client/src/app/pages/public/public-page.html @@ -3700,7 +3728,7 @@ Holdings - Holdings + Inwestycje apps/client/src/app/pages/home/home-page-routing.module.ts 23 @@ -3711,23 +3739,23 @@ apps/client/src/app/pages/home/home-page.component.ts - 42 + 43 apps/client/src/app/pages/zen/zen-page.component.ts - 39 + 40 Summary - Summary + Podsumowanie apps/client/src/app/pages/home/home-page-routing.module.ts 33 apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3739,7 +3767,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3751,12 +3779,12 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 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 @@ -3764,7 +3792,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 @@ -3772,7 +3800,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 @@ -3780,7 +3808,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 @@ -3788,7 +3816,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 @@ -3796,19 +3824,19 @@ Get Started - Get Started + Rozpocznij apps/client/src/app/pages/landing/landing-page.html 41 apps/client/src/app/pages/pricing/pricing-page.html - 306 + 329 Live Demo - Live Demo + Live Demo apps/client/src/app/pages/landing/landing-page.html 49 @@ -3820,7 +3848,7 @@ Monthly Active Users - Monthly Active Users + Aktywni Użytkownicy w Miesiącu apps/client/src/app/pages/landing/landing-page.html 70 @@ -3828,7 +3856,7 @@ Stars on GitHub - Stars on GitHub + Gwiazdki na GitHubie apps/client/src/app/pages/landing/landing-page.html 88 @@ -3840,7 +3868,7 @@ Pulls on Docker Hub - Pulls on Docker Hub + Pobrania na Docker Hub apps/client/src/app/pages/landing/landing-page.html 106 @@ -3852,7 +3880,7 @@ As seen in - As seen in + Dostrzegli Nas apps/client/src/app/pages/landing/landing-page.html 115 @@ -3860,7 +3888,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 @@ -3868,7 +3896,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 @@ -3876,7 +3904,7 @@ 360° View - 360° View + Widok 360° apps/client/src/app/pages/landing/landing-page.html 240 @@ -3884,7 +3912,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 @@ -3892,7 +3920,7 @@ Web3 Ready - Web3 Ready + Gotowy na Web3 apps/client/src/app/pages/landing/landing-page.html 251 @@ -3900,7 +3928,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 @@ -3908,7 +3936,7 @@ Open Source - Open Source + Otwarty Kod Źródłowy apps/client/src/app/pages/landing/landing-page.html 261 @@ -3916,7 +3944,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 @@ -3924,7 +3952,7 @@ Why Ghostfolio? - Why Ghostfolio? + Dlaczego Ghostfolio? apps/client/src/app/pages/landing/landing-page.html 272 @@ -3932,7 +3960,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 @@ -3940,7 +3968,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 @@ -3948,7 +3976,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 @@ -3956,7 +3984,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 @@ -3964,7 +3992,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 @@ -3972,7 +4000,7 @@ into minimalism - into minimalism + lubisz minimalizm apps/client/src/app/pages/landing/landing-page.html 299 @@ -3980,7 +4008,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 @@ -3988,7 +4016,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 @@ -3996,7 +4024,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 @@ -4004,7 +4032,7 @@ still reading this list - still reading this list + nadal czytasz tę listę apps/client/src/app/pages/landing/landing-page.html 314 @@ -4012,7 +4040,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 @@ -4020,7 +4048,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 @@ -4028,7 +4056,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 @@ -4036,7 +4064,7 @@ How does Ghostfolio work? - How does Ghostfolio work? + Jak działa Ghostfolio ? apps/client/src/app/pages/landing/landing-page.html 383 @@ -4044,7 +4072,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 @@ -4052,7 +4080,7 @@ Sign up anonymously* - Sign up anonymously* + Zarejestruj się anonimowo* apps/client/src/app/pages/landing/landing-page.html 392 @@ -4060,7 +4088,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 @@ -4068,7 +4096,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 @@ -4076,7 +4104,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 @@ -4092,7 +4120,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 @@ -4140,7 +4168,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 @@ -4148,7 +4176,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 @@ -4164,7 +4192,7 @@ Uptime - Uptime + Czas Sprawności apps/client/src/app/pages/open/open-page.html 132 @@ -4172,27 +4200,27 @@ Activities - Activities + Aktywności apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 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 + 218 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 @@ -4200,7 +4228,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 @@ -4212,7 +4240,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 @@ -4220,7 +4248,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 @@ -4228,7 +4256,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 @@ -4236,7 +4264,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 @@ -4244,7 +4272,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 @@ -4252,7 +4280,7 @@ Account - Account + Konto apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 85 @@ -4261,10 +4289,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + 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 @@ -4272,7 +4304,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 @@ -4296,7 +4328,7 @@ Fee - Fee + Opłata apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 306 @@ -4320,47 +4352,47 @@ Import Activities - Import Activities + Importuj Aktywności apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 Import Dividends - Import Dividends + Impotruj Dywidendy apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 Importing data... - Importing data... + Importowanie danych... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 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 + 133 Validating data... - Validating data... + Weryfikacja danych... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 Select Holding - Select Holding + Wybierz Inwestycje apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 20 @@ -4368,7 +4400,7 @@ Select File - Select File + Wybierz plik apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 22 @@ -4376,15 +4408,19 @@ Holding - Holding + Inwestycja apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 32 + + libs/ui/src/lib/assistant/assistant.html + 127 + Load Dividends - Load Dividends + Załaduj dywidendy apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 68 @@ -4392,7 +4428,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 @@ -4400,7 +4436,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 @@ -4408,7 +4444,7 @@ Select Dividends - Select Dividends + Wybierz dywidendy apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 113 @@ -4416,7 +4452,7 @@ Select Activities - Select Activities + Wybór działań apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 115 @@ -4424,7 +4460,7 @@ Back - Back + Wróc apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 144 @@ -4436,19 +4472,19 @@ Allocations - Allocations + Podziały apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 Allocations - Allocations + Podziały apps/client/src/app/pages/portfolio/allocations/allocations-page.html 4 @@ -4456,7 +4492,7 @@ Proportion of Net Worth - Proportion of Net Worth + Proporcja wartości netto apps/client/src/app/pages/portfolio/allocations/allocations-page.html 12 @@ -4464,7 +4500,7 @@ By Platform - By Platform + Wg. platformy apps/client/src/app/pages/portfolio/allocations/allocations-page.html 44 @@ -4472,7 +4508,7 @@ By Currency - By Currency + Wg. waluty apps/client/src/app/pages/portfolio/allocations/allocations-page.html 63 @@ -4480,7 +4516,7 @@ By Asset Class - By Asset Class + Wg. klasy aktywów apps/client/src/app/pages/portfolio/allocations/allocations-page.html 85 @@ -4488,7 +4524,7 @@ By Holding - By Holding + Wg. inwestycji apps/client/src/app/pages/portfolio/allocations/allocations-page.html 107 @@ -4496,7 +4532,7 @@ By Sector - By Sector + Wg. sektora apps/client/src/app/pages/portfolio/allocations/allocations-page.html 130 @@ -4504,7 +4540,7 @@ By Continent - By Continent + Wg. kontynentu apps/client/src/app/pages/portfolio/allocations/allocations-page.html 153 @@ -4512,7 +4548,7 @@ By Market - By Market + Wg. rynku apps/client/src/app/pages/portfolio/allocations/allocations-page.html 175 @@ -4520,7 +4556,7 @@ Regions - Regions + Regiony apps/client/src/app/pages/portfolio/allocations/allocations-page.html 198 @@ -4583,12 +4619,12 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 88 + 181 By Account - By Account + Wg. kont apps/client/src/app/pages/portfolio/allocations/allocations-page.html 286 @@ -4596,7 +4632,7 @@ By ETF Provider - By ETF Provider + Wg. Dostawcy ETF apps/client/src/app/pages/portfolio/allocations/allocations-page.html 306 @@ -4604,7 +4640,7 @@ By Country - By Country + Wg. kraju apps/client/src/app/pages/portfolio/allocations/allocations-page.html 264 @@ -4612,22 +4648,22 @@ Analysis - Analysis + Analiza apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 Dividend - Dividend + Dywidenda apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 41 libs/ui/src/lib/i18n.ts @@ -4636,10 +4672,10 @@ Deposit - Deposit + Depozyt libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -4647,15 +4683,15 @@ Miesięcznie apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 54 Yearly - Corocznie + Rocznie apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 55 @@ -4668,71 +4704,63 @@ Top - Top + Największe wzrosty apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 Bottom - Bottom + Największy spadek apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 Portfolio Evolution - Portfolio Evolution + Rozwój portfela apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 Investment Timeline - Investment Timeline + Oś czasu inwestycji apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 Current Streak - Current Streak + Obecna passa apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 Longest Streak - Longest Streak + Najdłuższa passa apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 Dividend Timeline - Dividend Timeline + Oś czasu dywidend apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 - - - - FIRE - FIRE - - apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 13 + 383 FIRE - FIRE + F.I.R.E. apps/client/src/app/pages/portfolio/fire/fire-page.html 4 @@ -4754,33 +4782,25 @@ 40 - - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - Ghostfolio X-ray wykorzystuje analizę statyczną do identyfikacji potencjalnych problemów i zagrożeń w Twoim portfelu. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 - - Currency Cluster Risks - Currency Cluster Risks + Ryzyko związane z klastrem walutowym - apps/client/src/app/pages/portfolio/fire/fire-page.html - 141 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 58 Account Cluster Risks - Account Cluster Risks + Ryzyko związane z klastrem kont - apps/client/src/app/pages/portfolio/fire/fire-page.html - 160 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 106 Holdings - Holdings + Inwestycje apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html 79 @@ -4847,11 +4867,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 129 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 191 + 206 @@ -4863,27 +4883,27 @@ apps/client/src/app/pages/pricing/pricing-page.html - 133 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 195 + 210 Portfolio Performance - Efektywność Portfela + Wyniki portfela apps/client/src/app/pages/pricing/pricing-page.html 53 apps/client/src/app/pages/pricing/pricing-page.html - 137 + 142 apps/client/src/app/pages/pricing/pricing-page.html - 199 + 214 @@ -4895,11 +4915,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 141 + 146 apps/client/src/app/pages/pricing/pricing-page.html - 219 + 234 @@ -4927,7 +4947,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 153 + 158 @@ -4935,7 +4955,7 @@ Dla początkujących inwestorów, którzy dopiero zaczynają swoją przygodę z tradingiem. apps/client/src/app/pages/pricing/pricing-page.html - 123 + 128 @@ -4943,11 +4963,11 @@ W pełni zarządzana oferta Ghostfolio w chmurze. apps/client/src/app/pages/pricing/pricing-page.html - 152 + 157 apps/client/src/app/pages/pricing/pricing-page.html - 251 + 266 @@ -4955,7 +4975,7 @@ Dla ambitnych inwestorów, którzy potrzebują pełnego obrazu swoich aktywów finansowych. apps/client/src/app/pages/pricing/pricing-page.html - 184 + 199 @@ -4963,7 +4983,7 @@ Wsparcie przez E-mail i Czat apps/client/src/app/pages/pricing/pricing-page.html - 247 + 262 @@ -4971,15 +4991,15 @@ Odnów Plan apps/client/src/app/components/header/header.component.html - 186 + 191 apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 299 @@ -4987,12 +5007,12 @@ Płatność jednorazowa, bez automatycznego odnawiania. apps/client/src/app/pages/pricing/pricing-page.html - 288 + 303 Get Started - Get Started + Rozpocznij apps/client/src/app/pages/landing/landing-page.html 446 @@ -5000,15 +5020,15 @@ It’s free. - It’s free. + Jest bezpłatny. apps/client/src/app/pages/pricing/pricing-page.html - 309 + 332 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 @@ -5016,7 +5036,7 @@ Currencies - Currencies + Waluty apps/client/src/app/pages/public/public-page.html 88 @@ -5024,7 +5044,7 @@ Continents - Continents + Kontynenty apps/client/src/app/pages/public/public-page.html 124 @@ -5032,7 +5052,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 @@ -5040,7 +5060,7 @@ Registration - Registration + Rejestracja apps/client/src/app/pages/register/register-page-routing.module.ts 13 @@ -5048,7 +5068,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 @@ -5056,7 +5076,7 @@ Continue with Google - Continue with Google + Zaloguj z Google apps/client/src/app/pages/register/register-page.html 53 @@ -5064,7 +5084,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 @@ -5072,7 +5092,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 @@ -5080,7 +5100,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 @@ -5088,7 +5108,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 @@ -5103,7 +5123,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5308,7 +5328,7 @@ Free Plan - Darmowy Plan + Plan Darmowy apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 248 @@ -5316,7 +5336,7 @@ Notes - Notes + Notatki apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 302 @@ -5367,7 +5387,7 @@ Szwajcaria apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5379,7 +5399,7 @@ Globalny apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5419,7 +5439,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5431,7 +5451,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5543,7 +5563,7 @@ Czy na pewno chcesz usunąć tę działalność? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -5551,7 +5571,7 @@ Znajdź portfel akcji... libs/ui/src/lib/assistant/assistant.component.ts - 139 + 143 @@ -5568,7 +5588,7 @@ Asset Profiles - Asset Profiles + Profile aktywów libs/ui/src/lib/assistant/assistant.html 67 @@ -5600,7 +5620,7 @@ from ATH - from ATH + od ATH libs/ui/src/lib/benchmark/benchmark.component.html 83 @@ -5616,7 +5636,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 @@ -5632,7 +5652,7 @@ Retirement Date - Retirement Date + Data przejścia na emeryturę libs/ui/src/lib/fire-calculator/fire-calculator.component.html 32 @@ -5651,7 +5671,7 @@ Udział libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -5663,19 +5683,23 @@ Oszczędności libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 Allocation - Allocation + Podział libs/ui/src/lib/holdings-table/holdings-table.component.html 98 libs/ui/src/lib/top-holdings/top-holdings.component.html - 46 + 40 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 116 @@ -5720,7 +5744,7 @@ Core - Core + Główny libs/ui/src/lib/i18n.ts 10 @@ -5800,7 +5824,7 @@ Month - Month + Miesiąc libs/ui/src/lib/i18n.ts 21 @@ -5808,7 +5832,7 @@ Months - Months + Miesiące libs/ui/src/lib/i18n.ts 22 @@ -5816,14 +5840,14 @@ Other - Other + Inne libs/ui/src/lib/i18n.ts 23 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -5852,7 +5876,7 @@ Symbol - Symbol + Symbol libs/ui/src/lib/i18n.ts 28 @@ -5860,7 +5884,7 @@ Tag - Tag + Tag libs/ui/src/lib/i18n.ts 29 @@ -5868,7 +5892,7 @@ Year - Year + Rok libs/ui/src/lib/i18n.ts 30 @@ -5876,7 +5900,7 @@ Years - Years + Lata libs/ui/src/lib/i18n.ts 31 @@ -5900,7 +5924,7 @@ Valuable - Valuable + Kosztowności libs/ui/src/lib/i18n.ts 39 @@ -5908,7 +5932,7 @@ Liability - Liability + Zobowiązanie libs/ui/src/lib/i18n.ts 40 @@ -5916,7 +5940,7 @@ Sell - Sell + Sprzedaj libs/ui/src/lib/i18n.ts 41 @@ -6012,7 +6036,7 @@ Stock - Stock + Akcje libs/ui/src/lib/i18n.ts 58 @@ -6068,7 +6092,7 @@ Extreme Fear - Extreme Fear + Skrajny Strach libs/ui/src/lib/i18n.ts 96 @@ -6076,7 +6100,7 @@ Extreme Greed - Extreme Greed + Skrajna Zachłanność libs/ui/src/lib/i18n.ts 97 @@ -6084,7 +6108,7 @@ Neutral - Neutral + Neutralny libs/ui/src/lib/i18n.ts 100 @@ -6095,15 +6119,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 + 28 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -6119,11 +6147,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 @@ -6152,7 +6180,7 @@ Starting from - Starting from + Począwszy od apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 289 @@ -6164,7 +6192,7 @@ year - year + rok apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 290 @@ -6179,7 +6207,7 @@ Czy na pewno chcesz usunąć saldo tego konta? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6187,7 +6215,7 @@ to nieprawidłowa waluta! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6203,7 +6231,7 @@ Obecna cena rynkowa wynosi apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 326 @@ -6211,7 +6239,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6251,12 +6279,12 @@ 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 Private - Private + Prywatny apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html 24 @@ -6271,7 +6299,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6279,79 +6307,79 @@ Dane rynkowe są opóźnione o apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 Investment - Investment + Inwestycje apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 Absolute Asset Performance - Absolute Asset Performance + Łączny wynik aktywów apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 Asset Performance - Asset Performance + Wyniki aktywów apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 Absolute Currency Performance - Absolute Currency Performance + Łączny wynik walut apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 Currency Performance - Currency Performance + Wynik walut apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 Absolute Net Performance - Absolute Net Performance + Łączna wartość netto apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 Net Performance - Net Performance + Wynik netto apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 Week to date - Week to date + Dotychczasowy tydzień libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6359,15 +6387,15 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 Month to date - Month to date + Od początku miesiąca libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6375,15 +6403,15 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 Year to date - Year to date + Od początku roku libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -6419,31 +6447,23 @@ Resetuj Filtry libs/ui/src/lib/assistant/assistant.html - 157 + 185 year - year + rok libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 years - years + lata libs/ui/src/lib/assistant/assistant.component.ts - 246 - - - - Asset Classes - Klasy Aktywów - - libs/ui/src/lib/assistant/assistant.html - 138 + 256 @@ -6451,7 +6471,7 @@ Zastosuj Filtry libs/ui/src/lib/assistant/assistant.html - 167 + 195 @@ -6467,7 +6487,7 @@ Informacje Ogólne apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6475,7 +6495,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 @@ -6487,7 +6507,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 @@ -6499,7 +6519,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6532,23 +6552,23 @@ Active - Active + Antywne apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 Closed - Closed + Zamknięte apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 Activity - Activity + Aktywność apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 207 @@ -6612,7 +6632,7 @@ Delete Activities - Delete Activities + Usuń aktywności libs/ui/src/lib/activities-table/activities-table.component.html 67 @@ -6623,7 +6643,7 @@ Internacjonalizacja apps/client/src/app/app-routing.module.ts - 79 + 88 @@ -6631,7 +6651,7 @@ Czy na pewno chcesz zamknąć swoje konto Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 174 @@ -6639,7 +6659,7 @@ Strefa Zagrożenia apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 248 @@ -6647,12 +6667,12 @@ Zamknij Konto apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 283 By ETF Holding - By ETF Holding + Wg. Holdingu ETF apps/client/src/app/pages/portfolio/allocations/allocations-page.html 333 @@ -6679,7 +6699,7 @@ Ups! Wystąpił błąd podczas konfigurowania uwierzytelniania biometrycznego. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 302 @@ -6687,7 +6707,7 @@ Pokaż więcej libs/ui/src/lib/top-holdings/top-holdings.component.html - 81 + 174 @@ -6695,7 +6715,7 @@ Punkty Odniesienia apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6727,7 +6747,7 @@ Tabela apps/client/src/app/components/home-holdings/home-holdings.html - 17 + 16 @@ -6735,7 +6755,7 @@ Wykres apps/client/src/app/components/home-holdings/home-holdings.html - 20 + 19 @@ -6751,7 +6771,7 @@ Alternatywa apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6759,7 +6779,7 @@ Aplikacja apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6767,7 +6787,7 @@ Budżetowanie apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6775,7 +6795,7 @@ Społeczność apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6783,7 +6803,7 @@ Biuro Rodzinne apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6791,7 +6811,7 @@ Inwestor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6799,7 +6819,7 @@ Otwarty Kod Źródłowy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6807,7 +6827,7 @@ Finanse Osobiste apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6815,7 +6835,7 @@ Prywatność apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6823,7 +6843,7 @@ Oprogramowanie apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6831,7 +6851,7 @@ Narzędzie apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6839,7 +6859,7 @@ Doświadczenie Użytkownika apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6847,7 +6867,7 @@ Majątek apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6855,7 +6875,7 @@ Zarządzanie Majątkiem apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7007,7 +7027,7 @@ Błąd apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 317 @@ -7030,8 +7050,8 @@ Inactive Nieaktywny - apps/client/src/app/pages/portfolio/fire/fire-page.html - 217 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 173 @@ -7060,7 +7080,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 @@ -7068,7 +7088,7 @@ Portfolio Snapshot - Portfolio Snapshot + Przegląd portfela apps/client/src/app/components/admin-jobs/admin-jobs.html 39 @@ -7092,31 +7112,31 @@ Threshold Min - Threshold Min + Próg minimalny apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 9 + 54 Threshold Max - Threshold Max + Próg maksymalny apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 44 + 92 Close - Close + Zamknij apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 77 + 129 Customize - Customize + Dostosuj apps/client/src/app/components/rule/rule.component.html 67 @@ -7124,15 +7144,15 @@ No auto-renewal. - No auto-renewal. + Bez automatycznego odnawiania. apps/client/src/app/components/user-account-membership/user-account-membership.html - 62 + 74 Today - Today + Dzisiaj apps/client/src/app/pages/public/public-page.html 24 @@ -7140,7 +7160,7 @@ This year - This year + W tym roku apps/client/src/app/pages/public/public-page.html 42 @@ -7148,7 +7168,7 @@ From the beginning - From the beginning + Od samego początku apps/client/src/app/pages/public/public-page.html 60 @@ -7156,7 +7176,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 @@ -7164,7 +7184,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 @@ -7172,7 +7192,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 @@ -7180,7 +7200,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 @@ -7188,7 +7208,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 @@ -7196,7 +7216,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 @@ -7204,7 +7224,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 @@ -7212,7 +7232,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 @@ -7220,7 +7240,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 @@ -7228,7 +7248,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 @@ -7236,7 +7256,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 @@ -7244,7 +7264,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 @@ -7252,7 +7272,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 @@ -7260,7 +7280,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 @@ -7268,7 +7288,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 @@ -7276,7 +7296,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 @@ -7284,7 +7304,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 @@ -7292,7 +7312,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 @@ -7300,55 +7320,39 @@ 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 - 37 + 40 Data Providers - Data Providers + Dostawcy danych apps/client/src/app/components/admin-settings/admin-settings.component.html 4 - - NEW - NEW + + Set API key + Skonfiguruj klucz API apps/client/src/app/components/admin-settings/admin-settings.component.html - 14 - - - - Set API Key - Set API Key - - apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 70 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 - - Notify me - Notify me - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 32 - - 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 @@ -7356,7 +7360,7 @@ Ukraine - Ukraine + Ukraina libs/ui/src/lib/i18n.ts 92 @@ -7364,7 +7368,7 @@ Skip - Skip + Pomiń apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 83 @@ -7372,51 +7376,43 @@ Join now - Join now + Dołącz teraz apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 93 - - Allocation Cluster Risks - Allocation Cluster Risks - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 179 - - Glossary - Glossary + Słowniczek apps/client/src/app/pages/resources/glossary/resources-glossary-routing.module.ts 10 apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 Guides - Guides + Poradniki apps/client/src/app/pages/resources/guides/resources-guides-routing.module.ts 10 apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 guides - guides + poradniki 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 @@ -7425,17 +7421,249 @@ glossary - glossary + slowniczek 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 21 + + Threshold range + Zakres progów + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 9 + + + + 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 + + + + 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 + + + + of + z + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 42 + + + + daily requests + codzienne żądania + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 44 + + + + Remove API key + Usuń klucz API + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 58 + + + + 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 + 93 + + + + Please enter your Ghostfolio API key: + Wprowadź swój klucz API konta Ghostfolio: + + apps/client/src/app/pages/api/api-page.component.ts + 40 + + + + Notify me + Powiadom mnie + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 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 + 43 + + + + API Requests Today + Dzisiejsze Zapytania API + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + 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 + 139 + + + + 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 + 154 + + + + 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 + 157 + + + + 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 + 162 + + + + Tag + Tag + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + API Key + Klucz API + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + 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 + + + + out of + poza + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + + + rules align with your portfolio. + zasady zgodne z Twoim portfelem. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + + + Save + Zapisz + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 62 + + + + Asset Class Cluster Risks + Ryzyko klastra klasy aktywów + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 135 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 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 + + + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + + + Early Access + Early Access + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 16 + + diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 39404bbfd..61ff18a29 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -6,7 +6,7 @@ O risco de perda em investimentos pode ser substancial. Não é aconselhável investir dinheiro que possa vir a precisar a curto prazo. apps/client/src/app/app.component.html - 199 + 205 @@ -70,7 +70,7 @@ Pretende realmente revogar este acesso concedido? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 78 @@ -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 @@ -178,7 +178,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 12 + 16 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 88 @@ -198,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 @@ -298,7 +302,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 26 + 25 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 102 @@ -374,7 +382,7 @@ Pretende realmente eliminar esta conta? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -390,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 @@ -414,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 @@ -505,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 @@ -528,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 @@ -544,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 @@ -588,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 @@ -614,7 +618,7 @@ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 83 + 135 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -628,13 +632,17 @@ 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... Filtrar por... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -646,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 @@ -660,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 @@ -670,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 @@ -694,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 @@ -721,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 @@ -774,7 +786,7 @@ Por favor, adicione uma moeda: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -782,7 +794,7 @@ Deseja realmente eliminar este cupão? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -790,7 +802,7 @@ Deseja realmente excluir esta moeda? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -798,7 +810,7 @@ Deseja realmente limpar a cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -806,7 +818,7 @@ Por favor, defina a sua mensagem do sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -910,7 +922,7 @@ Deseja realmente excluir este utilizador? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 139 @@ -922,7 +934,7 @@ apps/client/src/app/components/header/header.component.html - 224 + 229 @@ -950,7 +962,7 @@ apps/client/src/app/components/header/header.component.html - 258 + 263 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -960,10 +972,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Engagement per Day @@ -978,7 +986,7 @@ Último Pedido apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -1006,15 +1014,15 @@ 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 - 41 + 46 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -1022,7 +1030,7 @@ Referência apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -1042,7 +1050,7 @@ apps/client/src/app/components/header/header.component.html - 240 + 245 @@ -1054,7 +1062,7 @@ apps/client/src/app/components/header/header.component.html - 250 + 255 @@ -1066,7 +1074,7 @@ apps/client/src/app/components/header/header.component.html - 274 + 279 @@ -1074,7 +1082,7 @@ Recursos apps/client/src/app/app.component.html - 63 + 64 apps/client/src/app/components/header/header.component.html @@ -1082,7 +1090,7 @@ apps/client/src/app/components/header/header.component.html - 286 + 291 apps/client/src/app/pages/resources/overview/resources-overview.component.html @@ -1094,19 +1102,19 @@ Preços apps/client/src/app/app.component.html - 96 + 97 apps/client/src/app/components/header/header.component.html - 98 + 99 apps/client/src/app/components/header/header.component.html - 297 + 303 apps/client/src/app/components/header/header.component.html - 368 + 379 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html @@ -1118,15 +1126,15 @@ Sobre apps/client/src/app/app.component.html - 69 + 70 apps/client/src/app/components/header/header.component.html - 112 + 117 apps/client/src/app/components/header/header.component.html - 354 + 364 @@ -1134,7 +1142,7 @@ Eu apps/client/src/app/components/header/header.component.html - 206 + 211 @@ -1142,7 +1150,7 @@ O meu Ghostfolio apps/client/src/app/components/header/header.component.html - 265 + 270 @@ -1150,7 +1158,7 @@ Sobre o Ghostfolio apps/client/src/app/components/header/header.component.html - 306 + 316 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -1162,11 +1170,11 @@ Funcionalidades apps/client/src/app/app.component.html - 78 + 79 apps/client/src/app/components/header/header.component.html - 341 + 351 apps/client/src/app/pages/features/features-page.html @@ -1178,11 +1186,11 @@ Mercados apps/client/src/app/app.component.html - 60 + 61 apps/client/src/app/components/header/header.component.html - 383 + 398 apps/client/src/app/components/home-market/home-market.html @@ -1198,7 +1206,7 @@ Iniciar sessão apps/client/src/app/components/header/header.component.html - 397 + 412 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1210,7 +1218,7 @@ Começar apps/client/src/app/components/header/header.component.html - 407 + 422 @@ -1218,11 +1226,11 @@ Iniciar sessão apps/client/src/app/app-routing.module.ts - 141 + 150 apps/client/src/app/components/header/header.component.ts - 229 + 231 @@ -1230,11 +1238,11 @@ Oops! Token de Segurança Incorreto. apps/client/src/app/components/header/header.component.ts - 244 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 159 @@ -1242,7 +1250,7 @@ Gerir Atividades apps/client/src/app/components/home-holdings/home-holdings.html - 65 + 63 @@ -1250,7 +1258,7 @@ Medo apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -1262,7 +1270,7 @@ Ganância apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -1290,7 +1298,7 @@ Depósito libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -1298,7 +1306,7 @@ Valor Total apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -1306,7 +1314,7 @@ Taxa de Poupança apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -1318,7 +1326,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 255 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1328,6 +1336,10 @@ or ou + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 36 + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 31 @@ -1465,8 +1477,8 @@ 89 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 122 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 34 @@ -1525,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 + 64 @@ -1586,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 @@ -1598,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 @@ -1614,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 @@ -1634,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 @@ -1650,7 +1662,7 @@ Marcadores apps/client/src/app/components/admin-settings/admin-settings.component.html - 45 + 87 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1664,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 - 127 - Report Data Glitch @@ -1686,7 +1694,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 46 + 40 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 116 @@ -1702,11 +1714,11 @@ Hoje apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 210 + 220 @@ -1714,11 +1726,11 @@ AATD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -1726,11 +1738,11 @@ 1A apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -1738,11 +1750,11 @@ 5A apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 246 + 256 @@ -1750,11 +1762,11 @@ Máx apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 249 + 259 @@ -1778,7 +1790,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -1790,19 +1802,23 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 Okay OK + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 152 + apps/client/src/app/core/http-response.interceptor.ts 81 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -1814,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 @@ -1826,7 +1842,7 @@ Changelog apps/client/src/app/app.component.html - 76 + 77 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1838,7 +1854,7 @@ Licença apps/client/src/app/app.component.html - 87 + 88 apps/client/src/app/pages/about/license/license-page.html @@ -1850,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 @@ -1862,7 +1878,7 @@ Política de Privacidade apps/client/src/app/app.component.html - 102 + 103 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1882,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 - 115 + 213 @@ -1898,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 - 125 + 177 @@ -1906,7 +1922,7 @@ Código de cupão foi resgatado apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 137 + 190 @@ -1914,7 +1930,7 @@ Atualizar apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 191 @@ -1922,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 + 248 @@ -1936,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 @@ -1950,11 +1970,11 @@ 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 - 264 + 279 @@ -1962,7 +1982,7 @@ Experimentar Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 41 + 53 @@ -1970,7 +1990,7 @@ Resgatar Cupão apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 67 @@ -2006,7 +2026,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -2014,7 +2034,7 @@ Localidade apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 127 @@ -2022,7 +2042,7 @@ Formato de números e datas apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 129 @@ -2030,7 +2050,7 @@ Modo Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 apps/client/src/app/pages/features/features-page.html @@ -2042,7 +2062,7 @@ Aparência apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 152 @@ -2050,7 +2070,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 166 @@ -2058,7 +2078,7 @@ Claro apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 167 @@ -2066,7 +2086,7 @@ Escuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 168 @@ -2074,7 +2094,7 @@ Iniciar sessão com impressão digital apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 195 @@ -2082,7 +2102,7 @@ Funcionalidades Experimentais apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 211 @@ -2094,7 +2114,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 228 @@ -2102,7 +2122,7 @@ Acesso Concedido apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -2182,7 +2202,7 @@ Blog apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -2264,6 +2284,10 @@ apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html 187 + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html + 167 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -2294,7 +2318,7 @@ Funcionalidades apps/client/src/app/app-routing.module.ts - 65 + 74 @@ -2302,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 @@ -2318,7 +2342,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -2330,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 @@ -2342,7 +2366,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -2354,7 +2378,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -2434,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 @@ -2450,7 +2474,7 @@ A importar dados... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -2458,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 @@ -2490,7 +2514,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -2622,7 +2646,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -2630,7 +2654,7 @@ Mensalmente apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 54 @@ -2646,7 +2670,7 @@ Topo apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -2654,7 +2678,7 @@ Fundo apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -2662,7 +2686,7 @@ Evolução do Portefólio apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -2670,15 +2694,7 @@ Cronograma de Investimento apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 - - - - FIRE - FIRE - - apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 13 + 326 @@ -2718,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 @@ -2790,7 +2806,7 @@ Começar apps/client/src/app/pages/features/features-page.html - 303 + 304 apps/client/src/app/pages/public/public-page.html @@ -2906,7 +2922,7 @@ Importar Atividades apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -2954,7 +2970,7 @@ Deseja realmente eliminar esta atividade? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -3002,7 +3018,7 @@ Juros libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -3014,7 +3030,7 @@ Poupanças libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -3050,7 +3066,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -3226,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 @@ -3254,7 +3270,7 @@ Mapeamento de Símbolo apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -3270,7 +3286,7 @@ Comunidade apps/client/src/app/app.component.html - 120 + 121 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -3298,19 +3314,23 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 105 + 104 apps/client/src/app/components/user-account-settings/user-account-settings.html - 110 + 108 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 112 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 117 apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -3322,7 +3342,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3334,7 +3354,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3342,16 +3362,12 @@ A validar dados... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 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 @@ -3360,13 +3376,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 + Dividend Dividendos apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 41 libs/ui/src/lib/i18n.ts @@ -3378,7 +3398,7 @@ Cronograma de Dividendos apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 + 383 @@ -3396,6 +3416,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 32 + + libs/ui/src/lib/assistant/assistant.html + 127 + Load Dividends @@ -3410,7 +3434,7 @@ Anualmente apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 55 @@ -3418,15 +3442,19 @@ Importar Dividendos apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 Valid until Válido até + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 28 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -3490,7 +3518,7 @@ Experiência sem distrações para tempos turbulentos apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 178 @@ -3498,7 +3526,7 @@ Acesso antecipado a funcionalidades futuras apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 212 @@ -3522,7 +3550,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 203 + 218 @@ -3538,7 +3566,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 211 + 226 @@ -3554,7 +3582,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 215 + 230 @@ -3570,7 +3598,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 242 + 257 @@ -3586,7 +3614,7 @@ Atualizar Plano apps/client/src/app/components/header/header.component.html - 180 + 185 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html @@ -3594,11 +3622,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html - 278 + 293 @@ -3618,11 +3646,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 129 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 191 + 206 @@ -3634,11 +3662,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 133 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 195 + 210 @@ -3650,11 +3678,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 137 + 142 apps/client/src/app/pages/pricing/pricing-page.html - 199 + 214 @@ -3674,7 +3702,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 153 + 158 @@ -3682,7 +3710,7 @@ Para novos investidores que estão a começar a investir agora. apps/client/src/app/pages/pricing/pricing-page.html - 123 + 128 @@ -3690,11 +3718,11 @@ Ghostfolio hospedado na nuvem, totalmente gerido. apps/client/src/app/pages/pricing/pricing-page.html - 152 + 157 apps/client/src/app/pages/pricing/pricing-page.html - 251 + 266 @@ -3702,7 +3730,7 @@ Para investidores ambiciosos que precisam de ter uma visão completa de seus ativos financeiros. apps/client/src/app/pages/pricing/pricing-page.html - 184 + 199 @@ -3710,7 +3738,7 @@ Pagamento único, sem renovação automática. apps/client/src/app/pages/pricing/pricing-page.html - 288 + 303 @@ -3726,7 +3754,7 @@ É gratuito. apps/client/src/app/pages/pricing/pricing-page.html - 309 + 332 @@ -3741,8 +3769,8 @@ 84 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 198 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 154 @@ -3762,7 +3790,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 207 + 222 @@ -3782,11 +3810,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 141 + 146 apps/client/src/app/pages/pricing/pricing-page.html - 219 + 234 @@ -3810,7 +3838,7 @@ Suporte por Email e Chat apps/client/src/app/pages/pricing/pricing-page.html - 247 + 262 @@ -3870,7 +3898,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 230 + 245 @@ -3886,15 +3914,15 @@ Renovar Plano apps/client/src/app/components/header/header.component.html - 186 + 191 apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 299 @@ -3910,7 +3938,7 @@ Personificar Utilizador apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -3918,7 +3946,7 @@ Apagar Utilizador apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -3926,7 +3954,7 @@ Deseja mesmo eliminar estas atividades? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3958,7 +3986,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 @@ -3974,7 +4002,7 @@ Deseja mesmo eliminar esta plataforma? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -3982,7 +4010,7 @@ Plataformas apps/client/src/app/components/admin-settings/admin-settings.component.html - 39 + 81 @@ -4034,7 +4062,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 @@ -4042,7 +4070,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -4130,7 +4158,7 @@ Finanças pessoais apps/client/src/app/app.component.html - 56 + 57 @@ -4138,7 +4166,7 @@ Perguntas Frequentes (FAQ) apps/client/src/app/app.component.html - 82 + 83 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -4150,7 +4178,7 @@ Série Atual apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4158,7 +4186,7 @@ Série mais Longa apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4210,7 +4238,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 @@ -4222,7 +4250,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 @@ -4330,7 +4358,7 @@ Software de código aberto apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -4346,7 +4374,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -4590,7 +4618,7 @@ ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -4598,7 +4626,7 @@ ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -4714,7 +4742,7 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 88 + 181 @@ -4738,7 +4766,7 @@ Autenticação biométrica apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 194 @@ -4822,7 +4850,7 @@ Exportar dados apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 236 @@ -4830,7 +4858,7 @@ Moedas apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -4922,7 +4950,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 306 + 329 @@ -5191,7 +5219,7 @@ snake-case apps/client/src/app/app.component.ts - 76 + 78 apps/client/src/app/core/paths.ts @@ -5199,23 +5227,23 @@ 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 @@ -5224,15 +5252,15 @@ snake-case apps/client/src/app/app.component.ts - 77 + 79 apps/client/src/app/components/header/header.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 86 + 88 apps/client/src/app/core/paths.ts @@ -5240,47 +5268,51 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 + 17 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 + 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 - 14 + 15 apps/client/src/app/pages/pricing/pricing-page.component.ts - 39 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 + 24 @@ -5289,27 +5321,27 @@ snake-case apps/client/src/app/app.component.ts - 63 + 65 apps/client/src/app/app.component.ts - 65 + 67 apps/client/src/app/app.component.ts - 69 + 71 apps/client/src/app/app.component.ts - 73 + 75 apps/client/src/app/components/header/header.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 85 + 87 apps/client/src/app/core/paths.ts @@ -5317,59 +5349,59 @@ apps/client/src/app/pages/about/about-page.component.ts - 45 + 46 apps/client/src/app/pages/about/about-page.component.ts - 50 + 51 apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 apps/client/src/app/pages/about/about-page.component.ts - 74 + 75 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 + 12 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 23 @@ -5378,7 +5410,7 @@ snake-case apps/client/src/app/app.component.ts - 74 + 76 apps/client/src/app/core/paths.ts @@ -5386,7 +5418,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -5395,7 +5427,7 @@ snake-case apps/client/src/app/app.component.ts - 70 + 72 apps/client/src/app/core/paths.ts @@ -5403,7 +5435,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 @@ -5412,15 +5444,15 @@ snake-case apps/client/src/app/app.component.ts - 78 + 80 apps/client/src/app/components/header/header.component.ts - 82 + 84 apps/client/src/app/components/header/header.component.ts - 87 + 89 apps/client/src/app/core/paths.ts @@ -5428,19 +5460,19 @@ 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 @@ -5453,27 +5485,27 @@ snake-case apps/client/src/app/app.component.ts - 79 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 48 + 74 apps/client/src/app/components/header/header.component.ts - 83 + 85 apps/client/src/app/components/header/header.component.ts - 88 + 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 - 38 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -5485,39 +5517,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 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 + 15 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + 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 - 25 + 30 @@ -5526,11 +5562,11 @@ snake-case apps/client/src/app/app.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 89 + 91 apps/client/src/app/core/auth.guard.ts @@ -5542,19 +5578,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 - 40 + 44 @@ -5563,15 +5599,15 @@ snake-case apps/client/src/app/app.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 84 + 86 apps/client/src/app/components/header/header.component.ts - 90 + 92 apps/client/src/app/core/paths.ts @@ -5579,47 +5615,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 + 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 - 13 + 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 @@ -5695,7 +5731,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5727,7 +5763,7 @@ Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5739,7 +5775,7 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5851,7 +5887,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5870,28 +5906,20 @@ 10 - - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 - - Currency Cluster Risks Currency Cluster Risks - apps/client/src/app/pages/portfolio/fire/fire-page.html - 141 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 58 Account Cluster Risks Account Cluster Risks - apps/client/src/app/pages/portfolio/fire/fire-page.html - 160 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 106 @@ -5911,7 +5939,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -5963,7 +5991,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5975,7 +6003,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5983,7 +6011,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 139 + 143 @@ -6083,7 +6111,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6114,8 +6142,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 + 262 @@ -6123,7 +6151,7 @@ Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6179,7 +6207,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6187,7 +6215,7 @@ is an invalid currency! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6203,7 +6231,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 326 @@ -6211,7 +6239,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6251,7 +6279,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 @@ -6271,7 +6299,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6279,7 +6307,7 @@ Market data is delayed for apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6287,15 +6315,15 @@ Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6303,7 +6331,7 @@ Absolute Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6311,7 +6339,7 @@ Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6319,7 +6347,7 @@ Absolute Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6327,7 +6355,7 @@ Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6335,7 +6363,7 @@ Absolute Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6343,7 +6371,7 @@ Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6351,7 +6379,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6359,7 +6387,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6367,7 +6395,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6375,7 +6403,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6383,7 +6411,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -6419,7 +6447,7 @@ Reset Filters libs/ui/src/lib/assistant/assistant.html - 157 + 185 @@ -6427,7 +6455,7 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -6435,15 +6463,7 @@ years libs/ui/src/lib/assistant/assistant.component.ts - 246 - - - - Asset Classes - Asset Classes - - libs/ui/src/lib/assistant/assistant.html - 138 + 256 @@ -6451,7 +6471,7 @@ Apply Filters libs/ui/src/lib/assistant/assistant.html - 167 + 195 @@ -6467,7 +6487,7 @@ General apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6475,7 +6495,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 @@ -6487,7 +6507,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 @@ -6499,7 +6519,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6535,7 +6555,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6543,7 +6563,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6623,7 +6643,7 @@ Internationalization apps/client/src/app/app-routing.module.ts - 79 + 88 @@ -6631,7 +6651,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 174 @@ -6639,7 +6659,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 248 @@ -6647,7 +6667,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 283 @@ -6679,7 +6699,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 302 @@ -6687,7 +6707,7 @@ Show more libs/ui/src/lib/top-holdings/top-holdings.component.html - 81 + 174 @@ -6695,7 +6715,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6727,7 +6747,7 @@ Table apps/client/src/app/components/home-holdings/home-holdings.html - 17 + 16 @@ -6735,7 +6755,7 @@ Chart apps/client/src/app/components/home-holdings/home-holdings.html - 20 + 19 @@ -6751,7 +6771,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6759,7 +6779,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6767,7 +6787,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6775,7 +6795,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6783,7 +6803,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6791,7 +6811,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6799,7 +6819,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6807,7 +6827,7 @@ Personal Finance apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6815,7 +6835,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6823,7 +6843,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6831,7 +6851,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6839,7 +6859,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6847,7 +6867,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6855,7 +6875,7 @@ Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7007,7 +7027,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 317 @@ -7030,8 +7050,8 @@ Inactive Inactive - apps/client/src/app/pages/portfolio/fire/fire-page.html - 217 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 173 @@ -7095,7 +7115,7 @@ Threshold Min apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 9 + 54 @@ -7103,7 +7123,7 @@ Threshold Max apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 44 + 92 @@ -7111,7 +7131,7 @@ Close apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 77 + 129 @@ -7127,7 +7147,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 62 + 74 @@ -7303,7 +7323,7 @@ Oops! Could not find any assets. libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html - 37 + 40 @@ -7314,20 +7334,12 @@ 4 - - NEW - NEW + + Set API key + Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 14 - - - - Set API Key - Set API Key - - apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 70 @@ -7338,14 +7350,6 @@ 23 - - Notify me - Notify me - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 32 - - Get access to 100’000+ tickers from over 50 exchanges Get access to 100’000+ tickers from over 50 exchanges @@ -7378,14 +7382,6 @@ 93 - - Allocation Cluster Risks - Allocation Cluster Risks - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 179 - - Glossary Glossary @@ -7395,7 +7391,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7407,7 +7403,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7416,7 +7412,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,13 +7425,245 @@ 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 21 + + Threshold range + Threshold range + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 9 + + + + 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. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 5 + + + + Economic Market Cluster Risks + Economic Market Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 130 + + + + of + of + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 42 + + + + daily requests + daily requests + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 44 + + + + Remove API key + Remove API key + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 58 + + + + Do you really want to delete the API key? + Do you really want to delete the API key? + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 93 + + + + Please enter your Ghostfolio API key: + Please enter your Ghostfolio API key: + + apps/client/src/app/pages/api/api-page.component.ts + 40 + + + + Notify me + Notify me + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 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 + 43 + + + + 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 + 139 + + + + 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 + 154 + + + + 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 + 157 + + + + 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 + 162 + + + + 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 + + + + 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 + + + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 62 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 135 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 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 + + + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + + + Early Access + Early Access + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 16 + + diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 7d5d657c0..a598fd6d1 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -7,27 +7,27 @@ snake-case apps/client/src/app/app.component.ts - 63 + 65 apps/client/src/app/app.component.ts - 65 + 67 apps/client/src/app/app.component.ts - 69 + 71 apps/client/src/app/app.component.ts - 73 + 75 apps/client/src/app/components/header/header.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 85 + 87 apps/client/src/app/core/paths.ts @@ -35,59 +35,59 @@ apps/client/src/app/pages/about/about-page.component.ts - 45 + 46 apps/client/src/app/pages/about/about-page.component.ts - 50 + 51 apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 apps/client/src/app/pages/about/about-page.component.ts - 74 + 75 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 + 12 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 23 @@ -96,7 +96,7 @@ snake-case apps/client/src/app/app.component.ts - 76 + 78 apps/client/src/app/core/paths.ts @@ -104,23 +104,23 @@ 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 @@ -129,15 +129,15 @@ snake-case apps/client/src/app/app.component.ts - 77 + 79 apps/client/src/app/components/header/header.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 86 + 88 apps/client/src/app/core/paths.ts @@ -145,47 +145,51 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 + 17 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 + 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 - 14 + 15 apps/client/src/app/pages/pricing/pricing-page.component.ts - 39 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 + 24 @@ -194,7 +198,7 @@ snake-case apps/client/src/app/app.component.ts - 70 + 72 apps/client/src/app/core/paths.ts @@ -202,7 +206,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 @@ -211,15 +215,15 @@ snake-case apps/client/src/app/app.component.ts - 78 + 80 apps/client/src/app/components/header/header.component.ts - 82 + 84 apps/client/src/app/components/header/header.component.ts - 87 + 89 apps/client/src/app/core/paths.ts @@ -227,19 +231,19 @@ 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 @@ -252,27 +256,27 @@ snake-case apps/client/src/app/app.component.ts - 79 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 48 + 74 apps/client/src/app/components/header/header.component.ts - 83 + 85 apps/client/src/app/components/header/header.component.ts - 88 + 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 - 38 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -284,39 +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 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 + 15 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + 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 - 25 + 30 @@ -325,7 +333,7 @@ snake-case apps/client/src/app/app.component.ts - 74 + 76 apps/client/src/app/core/paths.ts @@ -333,7 +341,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -342,11 +350,11 @@ snake-case apps/client/src/app/app.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 89 + 91 apps/client/src/app/core/auth.guard.ts @@ -358,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 - 40 + 44 @@ -379,15 +387,15 @@ snake-case apps/client/src/app/app.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 84 + 86 apps/client/src/app/components/header/header.component.ts - 90 + 92 apps/client/src/app/core/paths.ts @@ -395,47 +403,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 + 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 - 13 + 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 @@ -443,7 +451,7 @@ Kişisel Finans apps/client/src/app/app.component.html - 56 + 57 @@ -451,11 +459,11 @@ Piyasalar apps/client/src/app/app.component.html - 60 + 61 apps/client/src/app/components/header/header.component.html - 383 + 398 apps/client/src/app/components/home-market/home-market.html @@ -471,7 +479,7 @@ Piyasalar apps/client/src/app/app.component.html - 63 + 64 apps/client/src/app/components/header/header.component.html @@ -479,7 +487,7 @@ apps/client/src/app/components/header/header.component.html - 286 + 291 apps/client/src/app/pages/resources/overview/resources-overview.component.html @@ -491,15 +499,15 @@ Hakkında apps/client/src/app/app.component.html - 69 + 70 apps/client/src/app/components/header/header.component.html - 112 + 117 apps/client/src/app/components/header/header.component.html - 354 + 364 @@ -507,7 +515,7 @@ Blog apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -589,6 +597,10 @@ apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html 187 + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html + 167 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -599,7 +611,7 @@ Değişiklik Günlüğü apps/client/src/app/app.component.html - 76 + 77 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -611,11 +623,11 @@ Özellikler apps/client/src/app/app.component.html - 78 + 79 apps/client/src/app/components/header/header.component.html - 341 + 351 apps/client/src/app/pages/features/features-page.html @@ -627,7 +639,7 @@ Sıkça Sorulan Sorular (SSS) apps/client/src/app/app.component.html - 82 + 83 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -639,7 +651,7 @@ Lisans apps/client/src/app/app.component.html - 87 + 88 apps/client/src/app/pages/about/license/license-page.html @@ -651,19 +663,19 @@ Fiyatlandırma apps/client/src/app/app.component.html - 96 + 97 apps/client/src/app/components/header/header.component.html - 98 + 99 apps/client/src/app/components/header/header.component.html - 297 + 303 apps/client/src/app/components/header/header.component.html - 368 + 379 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html @@ -675,7 +687,7 @@ Gizlilik Politikası apps/client/src/app/app.component.html - 102 + 103 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -687,7 +699,7 @@ Topluluk apps/client/src/app/app.component.html - 120 + 121 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -715,19 +727,23 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 105 + 104 apps/client/src/app/components/user-account-settings/user-account-settings.html - 110 + 108 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 112 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 117 apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -735,7 +751,7 @@ Alım satımda kayıp riski büyük boyutta olabilir. Kısa vadede ihtiyaç duyabileceğiniz parayla yatırım yapmak tavsiye edilmez. apps/client/src/app/app.component.html - 199 + 205 @@ -799,7 +815,7 @@ Bu erişim iznini geri almayı gerçekten istiyor musunuz? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 78 @@ -859,7 +875,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 @@ -895,7 +911,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 @@ -931,7 +947,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 12 + 16 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 88 @@ -951,11 +971,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 @@ -1035,7 +1055,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 26 + 25 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 102 @@ -1111,7 +1135,7 @@ Bu hesabı silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -1127,7 +1151,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 @@ -1151,7 +1175,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 @@ -1242,17 +1266,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 @@ -1265,14 +1285,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 - - - Market Price - Piyasa Fiyatı - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 + 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/admin-market-data.html 104 @@ -1281,17 +1301,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 @@ -1325,17 +1345,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 @@ -1351,7 +1371,7 @@ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 83 + 135 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -1365,13 +1385,17 @@ 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 Para Birimleri apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -1379,7 +1403,7 @@ Ülkesi Olmayan ETF’ler apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -1387,7 +1411,7 @@ Sektörü Olmayan ETF’ler apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -1395,7 +1419,7 @@ Filtrele... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -1407,11 +1431,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 @@ -1421,6 +1445,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 @@ -1431,11 +1459,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 @@ -1455,7 +1483,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 @@ -1482,8 +1510,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 @@ -1551,7 +1579,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 @@ -1563,7 +1591,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 @@ -1579,11 +1607,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 @@ -1599,11 +1627,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 @@ -1615,7 +1643,7 @@ Sembol Eşleştirme apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -1623,7 +1651,7 @@ Veri Toplayıcı Yapılandırması apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -1631,7 +1659,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 @@ -1667,7 +1695,7 @@ Lütfen bir para birimi giriniz: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -1675,7 +1703,7 @@ Önbelleği temizlemeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -1683,7 +1711,7 @@ Bu para birimini silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -1691,7 +1719,7 @@ Önbelleği temizlemeyi gerçekten istiyor musunuz apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -1699,7 +1727,7 @@ Lütfen sistem mesajınızı belirleyin: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -1751,7 +1779,7 @@ Etiketler apps/client/src/app/components/admin-settings/admin-settings.component.html - 45 + 87 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1765,10 +1793,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 - 127 - User Signup @@ -1851,7 +1875,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 @@ -1879,7 +1903,7 @@ apps/client/src/app/components/header/header.component.html - 258 + 263 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1889,17 +1913,13 @@ 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? Bu platformu silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -1923,7 +1943,7 @@ Platformlar apps/client/src/app/components/admin-settings/admin-settings.component.html - 39 + 81 @@ -1931,7 +1951,7 @@ Bu kullanıcıyı silmeyi gerçekten istiyor musunu? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 139 @@ -1943,7 +1963,7 @@ apps/client/src/app/components/header/header.component.html - 224 + 229 @@ -1967,7 +1987,7 @@ Son Talep apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -1975,7 +1995,7 @@ Kullanıcıyı Taklit Et apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -1983,7 +2003,7 @@ Kullanıcıyı Sil apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -2019,15 +2039,15 @@ 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 - 41 + 46 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2035,7 +2055,7 @@ Karşılaştırma Ölçütü apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2055,7 +2075,7 @@ apps/client/src/app/components/header/header.component.html - 240 + 245 @@ -2067,7 +2087,7 @@ apps/client/src/app/components/header/header.component.html - 250 + 255 @@ -2079,7 +2099,7 @@ apps/client/src/app/components/header/header.component.html - 274 + 279 @@ -2087,7 +2107,7 @@ Ben apps/client/src/app/components/header/header.component.html - 206 + 211 @@ -2095,7 +2115,7 @@ Ghostfolio’m apps/client/src/app/components/header/header.component.html - 265 + 270 @@ -2103,7 +2123,7 @@ Ghostfolio Hakkında apps/client/src/app/components/header/header.component.html - 306 + 316 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -2115,7 +2135,7 @@ Giriş apps/client/src/app/components/header/header.component.html - 397 + 412 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2127,7 +2147,7 @@ Haydi Başlayalım apps/client/src/app/components/header/header.component.html - 407 + 422 @@ -2135,11 +2155,11 @@ Giriş apps/client/src/app/app-routing.module.ts - 141 + 150 apps/client/src/app/components/header/header.component.ts - 229 + 231 @@ -2147,11 +2167,11 @@ Hay Allah! Güvenlik anahtarı yanlış. apps/client/src/app/components/header/header.component.ts - 244 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 159 @@ -2159,7 +2179,7 @@ İşlemleri Yönet apps/client/src/app/components/home-holdings/home-holdings.html - 65 + 63 @@ -2167,7 +2187,7 @@ Korku apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2179,7 +2199,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 @@ -2291,7 +2311,7 @@ Toplam Tutar apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -2299,7 +2319,7 @@ Tasarruf Oranı apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -2311,7 +2331,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 255 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2321,6 +2341,10 @@ or veya + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 36 + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 31 @@ -2458,8 +2482,8 @@ 89 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 122 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 34 @@ -2546,12 +2570,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 + 64 @@ -2614,8 +2638,8 @@ 84 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 198 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 154 @@ -2655,7 +2679,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 203 + 218 @@ -2675,7 +2699,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 207 + 222 @@ -2691,7 +2715,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 211 + 226 @@ -2707,7 +2731,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 215 + 230 @@ -2719,7 +2743,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 230 + 245 @@ -2735,7 +2759,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 242 + 257 @@ -2759,7 +2783,7 @@ Üyeliğinizi Yükseltin apps/client/src/app/components/header/header.component.html - 180 + 185 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html @@ -2767,11 +2791,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html - 278 + 293 @@ -2779,11 +2803,11 @@ Bugün apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 210 + 220 @@ -2791,11 +2815,11 @@ YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -2803,11 +2827,11 @@ 1Y apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -2815,11 +2839,11 @@ 5Y apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 246 + 256 @@ -2827,11 +2851,11 @@ Maks. apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 249 + 259 @@ -2855,7 +2879,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -2867,19 +2891,23 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 Okay Tamam + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 152 + apps/client/src/app/core/http-response.interceptor.ts 81 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -2891,7 +2919,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 @@ -2903,7 +2931,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 @@ -2915,7 +2943,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 @@ -2927,7 +2955,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 @@ -3007,7 +3035,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3019,7 +3047,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 @@ -3027,7 +3055,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -3039,7 +3067,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3047,15 +3075,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 @@ -3063,7 +3091,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -3123,7 +3151,7 @@ Özellikler apps/client/src/app/app-routing.module.ts - 65 + 74 @@ -3211,7 +3239,7 @@ Zen Modu apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 apps/client/src/app/pages/features/features-page.html @@ -3247,7 +3275,7 @@ Açık Kaynak Yazılım apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -3255,7 +3283,7 @@ Başla apps/client/src/app/pages/features/features-page.html - 303 + 304 apps/client/src/app/pages/public/public-page.html @@ -3275,11 +3303,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 @@ -3291,7 +3319,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3303,7 +3331,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3315,7 +3343,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -3343,7 +3371,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 306 + 329 @@ -3691,7 +3719,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -3699,7 +3727,7 @@ Tüm işlemlerinizi silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3749,6 +3777,10 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Update Cash Balance @@ -3803,7 +3835,7 @@ İşlemleri İçe Aktar apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -3811,7 +3843,7 @@ Temettüleri İçe Aktar apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 @@ -3819,7 +3851,7 @@ Veri içe aktarılıyor... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -3827,7 +3859,7 @@ İçe aktarma tamamlandı apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -3835,7 +3867,7 @@ Veri doğrulanıyor... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -3861,6 +3893,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 32 + + libs/ui/src/lib/assistant/assistant.html + 127 + Load Dividends @@ -3909,10 +3945,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 @@ -3921,6 +3953,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 @@ -3931,7 +3967,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -4071,7 +4107,7 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 88 + 181 @@ -4107,7 +4143,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -4115,7 +4151,7 @@ Temettü apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 41 libs/ui/src/lib/i18n.ts @@ -4127,7 +4163,7 @@ Para Yatırma libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -4135,7 +4171,7 @@ Aylık apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 54 @@ -4143,7 +4179,7 @@ Yıllık apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 55 @@ -4159,7 +4195,7 @@ Üst apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -4167,7 +4203,7 @@ Alt apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -4175,7 +4211,7 @@ Portföyün Gelişimi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -4183,7 +4219,7 @@ Yatırım Zaman Çizelgesi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -4191,7 +4227,7 @@ Güncel Seri apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4199,7 +4235,7 @@ En Uzun Seri apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4207,15 +4243,7 @@ Temettü Zaman Çizelgesi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 - - - - FIRE - FIRE - - apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 13 + 383 @@ -4311,11 +4339,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 129 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 191 + 206 @@ -4327,11 +4355,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 133 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 195 + 210 @@ -4343,11 +4371,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 137 + 142 apps/client/src/app/pages/pricing/pricing-page.html - 199 + 214 @@ -4359,11 +4387,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 141 + 146 apps/client/src/app/pages/pricing/pricing-page.html - 219 + 234 @@ -4391,7 +4419,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 153 + 158 @@ -4399,7 +4427,7 @@ Alım satıma henüz başlamış yeni yatırımcılar için. apps/client/src/app/pages/pricing/pricing-page.html - 123 + 128 @@ -4407,11 +4435,11 @@ Eksiksiz yönetilen Ghostfolio bulut teklifi. apps/client/src/app/pages/pricing/pricing-page.html - 152 + 157 apps/client/src/app/pages/pricing/pricing-page.html - 251 + 266 @@ -4419,7 +4447,7 @@ Finansal varlıklarının tamamını görmeye ihtiyaç duyan hırslı yatırımcılar için. apps/client/src/app/pages/pricing/pricing-page.html - 184 + 199 @@ -4427,7 +4455,7 @@ E-posta ve Sohbet Desteği apps/client/src/app/pages/pricing/pricing-page.html - 247 + 262 @@ -4435,15 +4463,15 @@ Aboneliği Yenile apps/client/src/app/components/header/header.component.html - 186 + 191 apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 299 @@ -4451,7 +4479,7 @@ Tek seferlik ödeme, otomatik yenileme yok. apps/client/src/app/pages/pricing/pricing-page.html - 288 + 303 @@ -4467,7 +4495,7 @@ Ücretsiz. apps/client/src/app/pages/pricing/pricing-page.html - 309 + 332 @@ -4583,7 +4611,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -4839,7 +4867,7 @@ İsviçre apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -4851,7 +4879,7 @@ Küresel apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -4911,15 +4939,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 - 115 + 213 @@ -4927,7 +4955,7 @@ Kupon kodu kullanılamadı apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 125 + 177 @@ -4935,7 +4963,7 @@ Kupon kodu kullanıldı apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 137 + 190 @@ -4943,7 +4971,7 @@ Yeniden Yükle apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 191 @@ -4951,7 +4979,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 + 248 @@ -4959,15 +4987,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 + 28 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -4975,11 +5007,11 @@ 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 - 264 + 279 @@ -4987,7 +5019,7 @@ Premium’u Deneyin apps/client/src/app/components/user-account-membership/user-account-membership.html - 41 + 53 @@ -4995,7 +5027,7 @@ Kupon Kullan apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 67 @@ -5035,7 +5067,7 @@ Yerel Ayarlar apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 127 @@ -5043,7 +5075,7 @@ Tarih ve Sayı Formatları apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 129 @@ -5051,7 +5083,7 @@ Görünüm apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 152 @@ -5059,7 +5091,7 @@ Otomatik apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 166 @@ -5067,7 +5099,7 @@ Açık apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 167 @@ -5075,7 +5107,7 @@ Koyu apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 168 @@ -5083,7 +5115,7 @@ Çalkantılı zamanlar için dikkat dağıtmayan bir deneyim apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 178 @@ -5091,7 +5123,7 @@ Biyometrik Kimlik Doğrulama apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 194 @@ -5099,7 +5131,7 @@ Parmak iziyle oturum aç apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 195 @@ -5107,7 +5139,7 @@ Deneysel Özellikler apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 211 @@ -5115,7 +5147,7 @@ Gelecek özelliklere göz atın apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 212 @@ -5127,7 +5159,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 228 @@ -5135,7 +5167,7 @@ Verileri Dışa Aktar apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 236 @@ -5143,7 +5175,7 @@ xErişim İzni Verildi apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -5247,7 +5279,7 @@ TBu işlemi silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -5319,7 +5351,7 @@ Faiz libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -5331,7 +5363,7 @@ Tasarruflar libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -5343,7 +5375,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 46 + 40 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 116 @@ -5491,7 +5527,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -5739,11 +5775,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 @@ -5851,7 +5887,7 @@ Bu etiketi silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5870,28 +5906,20 @@ 10 - - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - Ghostfolio X-ray, portföyünüzdeki potansiyel sorunlar ve riskleri belirlemek için statik analiz yöntemleri uygulamaktadır. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 - - Currency Cluster Risks Kur Kümelenme Riskleri (Currency Cluster Risks) - apps/client/src/app/pages/portfolio/fire/fire-page.html - 141 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 58 Account Cluster Risks Hesap Kümelenme Riski (Account Cluster Risks) - apps/client/src/app/pages/portfolio/fire/fire-page.html - 160 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 106 @@ -5911,7 +5939,7 @@ Kıyaslama apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -5963,7 +5991,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5975,7 +6003,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5983,7 +6011,7 @@ Sahip olunan varlıkları bul... libs/ui/src/lib/assistant/assistant.component.ts - 139 + 143 @@ -6083,7 +6111,7 @@ Hay Allah, Nakit bakiyesi tranferi başarısız oldu. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6114,8 +6142,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 + 262 @@ -6123,7 +6151,7 @@ Bu sistem mesajını silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6179,7 +6207,7 @@ Bu nakit bakiyesini silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6187,7 +6215,7 @@ is an invalid currency! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6203,7 +6231,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 326 @@ -6211,7 +6239,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6251,7 +6279,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 @@ -6271,7 +6299,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6279,7 +6307,7 @@ Market data is delayed for apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6287,15 +6315,15 @@ Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6303,7 +6331,7 @@ Absolute Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6311,7 +6339,7 @@ Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6319,7 +6347,7 @@ Absolute Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6327,7 +6355,7 @@ Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6335,7 +6363,7 @@ Absolute Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6343,7 +6371,7 @@ Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6351,7 +6379,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6359,7 +6387,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6367,7 +6395,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6375,7 +6403,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6383,7 +6411,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -6419,7 +6447,7 @@ Reset Filters libs/ui/src/lib/assistant/assistant.html - 157 + 185 @@ -6427,7 +6455,7 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -6435,15 +6463,7 @@ years libs/ui/src/lib/assistant/assistant.component.ts - 246 - - - - Asset Classes - Asset Classes - - libs/ui/src/lib/assistant/assistant.html - 138 + 256 @@ -6451,7 +6471,7 @@ Apply Filters libs/ui/src/lib/assistant/assistant.html - 167 + 195 @@ -6467,7 +6487,7 @@ General apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6475,7 +6495,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 @@ -6487,7 +6507,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 @@ -6499,7 +6519,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6535,7 +6555,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6543,7 +6563,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6623,7 +6643,7 @@ Internationalization apps/client/src/app/app-routing.module.ts - 79 + 88 @@ -6631,7 +6651,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 174 @@ -6639,7 +6659,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 248 @@ -6647,7 +6667,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 283 @@ -6679,7 +6699,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 302 @@ -6687,7 +6707,7 @@ Show more libs/ui/src/lib/top-holdings/top-holdings.component.html - 81 + 174 @@ -6695,7 +6715,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6727,7 +6747,7 @@ Table apps/client/src/app/components/home-holdings/home-holdings.html - 17 + 16 @@ -6735,7 +6755,7 @@ Chart apps/client/src/app/components/home-holdings/home-holdings.html - 20 + 19 @@ -6751,7 +6771,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6759,7 +6779,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6767,7 +6787,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6775,7 +6795,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6783,7 +6803,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6791,7 +6811,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6799,7 +6819,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6807,7 +6827,7 @@ Personal Finance apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6815,7 +6835,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6823,7 +6843,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6831,7 +6851,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6839,7 +6859,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6847,7 +6867,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6855,7 +6875,7 @@ Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7007,7 +7027,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 317 @@ -7030,8 +7050,8 @@ Inactive Inactive - apps/client/src/app/pages/portfolio/fire/fire-page.html - 217 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 173 @@ -7095,7 +7115,7 @@ Threshold Min apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 9 + 54 @@ -7103,7 +7123,7 @@ Threshold Max apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 44 + 92 @@ -7111,7 +7131,7 @@ Close apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 77 + 129 @@ -7127,7 +7147,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 62 + 74 @@ -7303,7 +7323,7 @@ Oops! Could not find any assets. libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html - 37 + 40 @@ -7314,20 +7334,12 @@ 4 - - NEW - NEW - - apps/client/src/app/components/admin-settings/admin-settings.component.html - 14 - - - - Set API Key - Set API Key + + Set API key + Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 70 @@ -7338,14 +7350,6 @@ 23 - - Notify me - Notify me - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 32 - - Get access to 100’000+ tickers from over 50 exchanges Get access to 100’000+ tickers from over 50 exchanges @@ -7378,14 +7382,6 @@ 93 - - Allocation Cluster Risks - Allocation Cluster Risks - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 179 - - Glossary Glossary @@ -7395,7 +7391,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7407,7 +7403,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7416,7 +7412,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,13 +7425,245 @@ 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 21 + + Threshold range + Threshold range + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 9 + + + + 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. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 5 + + + + Economic Market Cluster Risks + Economic Market Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 130 + + + + of + of + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 42 + + + + daily requests + daily requests + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 44 + + + + Remove API key + Remove API key + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 58 + + + + Do you really want to delete the API key? + Do you really want to delete the API key? + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 93 + + + + Please enter your Ghostfolio API key: + Please enter your Ghostfolio API key: + + apps/client/src/app/pages/api/api-page.component.ts + 40 + + + + Notify me + Notify me + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 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 + 43 + + + + 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 + 139 + + + + 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 + 154 + + + + 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 + 157 + + + + 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 + 162 + + + + 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 + + + + 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 + + + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 62 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 135 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 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 + + + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + + + Early Access + Early Access + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 16 + + diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf new file mode 100644 index 000000000..cb2cbb57d --- /dev/null +++ b/apps/client/src/locales/messages.uk.xlf @@ -0,0 +1,7669 @@ + + + + + Features + Функції + + apps/client/src/app/app-routing.module.ts + 74 + + + + Internationalization + Інтернаціоналізація + + apps/client/src/app/app-routing.module.ts + 88 + + + + Sign in + Увійти + + apps/client/src/app/app-routing.module.ts + 150 + + + apps/client/src/app/components/header/header.component.ts + 231 + + + + You are using the Live Demo. + Ви використовуєте демо-версію. + + apps/client/src/app/app.component.html + 12 + + + + Create Account + Створити обліковий запис + + apps/client/src/app/app.component.html + 13 + + + apps/client/src/app/pages/register/register-page.html + 27 + + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 2 + + + + Personal Finance + Особисті фінанси + + apps/client/src/app/app.component.html + 57 + + + + Markets + Ринки + + apps/client/src/app/app.component.html + 61 + + + apps/client/src/app/components/header/header.component.html + 398 + + + apps/client/src/app/components/home-market/home-market.html + 2 + + + apps/client/src/app/pages/resources/markets/resources-markets.component.html + 2 + + + + Resources + Ресурси + + apps/client/src/app/app.component.html + 64 + + + apps/client/src/app/components/header/header.component.html + 82 + + + apps/client/src/app/components/header/header.component.html + 291 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.html + 4 + + + + About + Про нас + + apps/client/src/app/app.component.html + 70 + + + apps/client/src/app/components/header/header.component.html + 117 + + + apps/client/src/app/components/header/header.component.html + 364 + + + + Blog + Блог + + apps/client/src/app/app.component.html + 73 + + + apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html + 204 + + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html + 184 + + + apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html + 184 + + + apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html + 184 + + + 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.html + 209 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html + 196 + + + apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html + 181 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.html + 141 + + + apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.html + 168 + + + apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.html + 178 + + + apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.html + 202 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html + 253 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html + 233 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.html + 243 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.html + 154 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.html + 273 + + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.html + 181 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.html + 148 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.html + 270 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html + 187 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html + 167 + + + apps/client/src/app/pages/blog/blog-page.html + 5 + + + + Changelog + Журнал змін + + apps/client/src/app/app.component.html + 77 + + + apps/client/src/app/pages/about/changelog/changelog-page.html + 4 + + + + Features + Функції + + apps/client/src/app/app.component.html + 79 + + + apps/client/src/app/components/header/header.component.html + 351 + + + apps/client/src/app/pages/features/features-page.html + 5 + + + + Frequently Asked Questions (FAQ) + Часті запитання (FAQ) + + apps/client/src/app/app.component.html + 83 + + + apps/client/src/app/pages/about/overview/about-overview-page.html + 146 + + + + License + Ліцензія + + apps/client/src/app/app.component.html + 88 + + + apps/client/src/app/pages/about/license/license-page.html + 4 + + + + Pricing + Ціни + + apps/client/src/app/app.component.html + 97 + + + apps/client/src/app/components/header/header.component.html + 99 + + + apps/client/src/app/components/header/header.component.html + 303 + + + apps/client/src/app/components/header/header.component.html + 379 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 287 + + + + Privacy Policy + Політика конфіденційності + + apps/client/src/app/app.component.html + 103 + + + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html + 4 + + + + Community + Спільнота + + apps/client/src/app/app.component.html + 121 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 77 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 83 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 88 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 92 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 96 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 100 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 104 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 108 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 112 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 117 + + + apps/client/src/app/pages/features/features-page.html + 260 + + + + The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. + Ризик втрат у торгівлі може бути суттєвим. Не рекомендується інвестувати гроші, які можуть знадобитися в короткостроковій перспективі. + + apps/client/src/app/app.component.html + 205 + + + + about + about + 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 + 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 + 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 + + + + privacy-policy + privacy-policy + 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/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 + + + + features + features + snake-case + + apps/client/src/app/app.component.ts + 79 + + + apps/client/src/app/components/header/header.component.ts + 83 + + + 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 + 43 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 24 + + + + markets + 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 + 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 + 32 + + + apps/client/src/app/pages/resources/resources-page-routing.module.ts + 35 + + + + pricing + pricing + snake-case + + apps/client/src/app/app.component.ts + 81 + + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 74 + + + apps/client/src/app/components/header/header.component.ts + 85 + + + apps/client/src/app/components/header/header.component.ts + 90 + + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts + 17 + + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 43 + + + apps/client/src/app/core/http-response.interceptor.ts + 72 + + + apps/client/src/app/core/paths.ts + 7 + + + apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + 13 + + + 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/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 + 30 + + + + register + register + snake-case + + apps/client/src/app/app.component.ts + 82 + + + apps/client/src/app/components/header/header.component.ts + 91 + + + apps/client/src/app/core/auth.guard.ts + 55 + + + apps/client/src/app/core/paths.ts + 9 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 17 + + + apps/client/src/app/pages/features/features-page.component.ts + 28 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 28 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 44 + + + + resources + resources + snake-case + + apps/client/src/app/app.component.ts + 83 + + + apps/client/src/app/components/header/header.component.ts + 86 + + + apps/client/src/app/components/header/header.component.ts + 92 + + + apps/client/src/app/core/paths.ts + 10 + + + apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-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 + 13 + + + apps/client/src/app/pages/features/features-page.component.ts + 29 + + + apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts + 17 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts + 22 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts + 31 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts + 40 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 15 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 26 + + + + Alias + Псевдонім + + apps/client/src/app/components/access-table/access-table.component.html + 4 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 11 + + + + Grantee + Одержувач + + apps/client/src/app/components/access-table/access-table.component.html + 11 + + + + Permission + Дозвіл + + apps/client/src/app/components/access-table/access-table.component.html + 18 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 32 + + + + View + Перегляд + + apps/client/src/app/components/access-table/access-table.component.html + 23 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 36 + + + + Restricted view + Обмежений перегляд + + apps/client/src/app/components/access-table/access-table.component.html + 26 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 34 + + + + Details + Деталі + + apps/client/src/app/components/access-table/access-table.component.html + 33 + + + + Copy link to clipboard + Скопіювати посилання в буфер обміну + + apps/client/src/app/components/access-table/access-table.component.html + 70 + + + + Revoke + Відкликати + + apps/client/src/app/components/access-table/access-table.component.html + 75 + + + + Link has been copied to the clipboard + Посилання скопійовано в буфер обміну + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + + + Do you really want to revoke this granted access? + Ви дійсно хочете відкликати цей наданий доступ? + + apps/client/src/app/components/access-table/access-table.component.ts + 78 + + + + Cash Balance + Баланс готівки + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 47 + + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 136 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 34 + + + + Equity + Капітал + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 58 + + + + Activities + Діяльність + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 63 + + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 92 + + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 119 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 131 + + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 58 + + + apps/client/src/app/components/admin-users/admin-users.html + 135 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 209 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 319 + + + apps/client/src/app/pages/portfolio/activities/activities-page.html + 4 + + + + Platform + Платформа + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 67 + + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 86 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 48 + + + + Holdings + Активи + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 79 + + + apps/client/src/app/components/home-holdings/home-holdings.html + 4 + + + apps/client/src/app/pages/public/public-page.html + 70 + + + libs/ui/src/lib/assistant/assistant.html + 46 + + + + Cash Balances + Баланс готівки + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 124 + + + + Transfer Cash Balance + Перевести баланс готівки + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 10 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 7 + + + + Name + Назва + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 43 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 60 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 207 + + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 30 + + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 15 + + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 30 + + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 15 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 15 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 138 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 138 + + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 28 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 16 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 88 + + + + Total + Загалом + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 55 + + + + Currency + Валюта + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 65 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 111 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 214 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 46 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 25 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 144 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 276 + + + + Value + Вартість + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 171 + + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 206 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 53 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 204 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 207 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 210 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 274 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 277 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 280 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 283 + + + libs/ui/src/lib/account-balances/account-balances.component.html + 34 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 257 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 293 + + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 74 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 25 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 102 + + + + Edit + Редагувати + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 278 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 231 + + + apps/client/src/app/components/admin-overview/admin-overview.html + 78 + + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 92 + + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 85 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 430 + + + + Delete + Видалити + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 289 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 253 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 65 + + + apps/client/src/app/components/admin-overview/admin-overview.html + 89 + + + apps/client/src/app/components/admin-overview/admin-overview.html + 206 + + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 103 + + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 96 + + + libs/ui/src/lib/account-balances/account-balances.component.html + 80 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 457 + + + + Do you really want to delete this account? + Ви дійсно хочете видалити цей обліковий запис? + + apps/client/src/app/components/accounts-table/accounts-table.component.ts + 107 + + + + Type + Тип + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 31 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 22 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 15 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 161 + + + + Asset Profile + Профіль активу + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 35 + + + + Historical Market Data + Історичні ринкові дані + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 37 + + + + Portfolio Snapshot + Знімок портфеля + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 39 + + + + Symbol + Символ + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 46 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 46 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 96 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 39 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 289 + + + + Data Source + Джерело даних + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 55 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 77 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 106 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 154 + + + + Priority + Пріоритет + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 64 + + + + Attempts + Спроби + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 83 + + + + Created + Створено + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 92 + + + + Finished + Завершено + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 101 + + + + Status + Статус + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 110 + + + + Delete Jobs + Видалити завдання + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 151 + + + + View Data + Переглянути дані + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 166 + + + + View Stacktrace + Переглянути трасування + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 173 + + + + Execute Job + Виконати завдання + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 176 + + + + Delete Job + Видалити завдання + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 180 + + + + Benchmarks + Порівняльні показники + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 81 + + + + Currencies + Валюти + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 86 + + + + ETFs without Countries + ETF без країн + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 91 + + + + ETFs without Sectors + ETF без секторів + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 96 + + + + Filter by... + Фільтрувати за... + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 329 + + + + Asset Class + Клас активу + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 86 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 140 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 224 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 216 + + + 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 + Підклас активу + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 95 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 149 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 237 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 225 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 370 + + + + Market Price + Ринкова ціна + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 104 + + + 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 + + + + First Activity + Перша активність + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 119 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 122 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 197 + + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 50 + + + + Activities Count + Кількість активностей + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 128 + + + + Historical Data + Історичні дані + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 137 + + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 44 + + + + Sectors Count + Кількість секторів + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 146 + + + + Countries Count + Кількість країн + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 155 + + + + Gather Recent Data + Зібрати недавні дані + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 192 + + + + Gather All Data + Зібрати всі дані + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 195 + + + + Gather Profile Data + Зібрати дані профілю + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 198 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 45 + + + + Delete Profiles + Видалити профілі + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 206 + + + + Do you really want to delete this asset profile? + Ви дійсно хочете видалити цей профіль активу? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 36 + + + + Oops! Could not delete profiles. + Упс! Не вдалося видалити профілі. + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 55 + + + + Do you really want to delete these profiles? + Ви дійсно хочете видалити ці профілі? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 67 + + + + Error + Помилка + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 317 + + + + The current market price is + Поточна ринкова ціна + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 326 + + + + Refresh + Оновити + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 22 + + + + Gather Historical Data + Зібрати історичні дані + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 32 + + + + Sector + Сектор + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 166 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 242 + + + + Country + Країна + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 177 + + + apps/client/src/app/components/admin-users/admin-users.html + 77 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 252 + + + + Sectors + Сектори + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 183 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 308 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 258 + + + apps/client/src/app/pages/public/public-page.html + 106 + + + + Countries + Країни + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 193 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 319 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 270 + + + + Benchmark + Порівняльний показник + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 265 + + + + Symbol Mapping + Зіставлення символів + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 271 + + + + Scraper Configuration + Конфігурація скребка + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 283 + + + + Test + Тест + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 301 + + + + Url + URL + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 331 + + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 51 + + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 25 + + + + Note + Примітка + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 344 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 78 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 339 + + + + Cancel + Скасувати + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 357 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 56 + + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 42 + + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 25 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 58 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 103 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 65 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 427 + + + 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/asset-profile-dialog/asset-profile-dialog.html + 364 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 63 + + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 49 + + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 32 + + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 135 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 65 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 110 + + + 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 + + + + Add Asset Profile + Додати профіль активу + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 7 + + + + Search + Пошук + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 16 + + + + Add Manually + Додати вручну + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 19 + + + + Add Currency + Додати валюту + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 22 + + + apps/client/src/app/components/admin-overview/admin-overview.html + 105 + + + + Name, symbol or ISIN + Назва, символ або ISIN + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 29 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 124 + + + + Oops! Invalid currency. + Упс! Невірна валюта. + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 49 + + + + Please add a currency: + Будь ласка, додайте валюту: + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 126 + + + + is an invalid currency! + є недопустимою валютою! + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 137 + + + + Do you really want to delete this coupon? + Ви дійсно хочете видалити цей купон? + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 156 + + + + Do you really want to delete this currency? + Ви дійсно хочете видалити цю валюту? + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 169 + + + + Do you really want to delete this system message? + Ви дійсно хочете видалити це системне повідомлення? + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 182 + + + + Do you really want to flush the cache? + Ви дійсно хочете очистити кеш? + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 206 + + + + Please set your system message: + Будь ласка, встановіть ваше системне повідомлення: + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 226 + + + + Version + Версія + + apps/client/src/app/components/admin-overview/admin-overview.html + 7 + + + + User Count + Кількість користувачів + + apps/client/src/app/components/admin-overview/admin-overview.html + 13 + + + + Activity Count + Кількість активностей + + apps/client/src/app/components/admin-overview/admin-overview.html + 19 + + + + per User + на користувача + + apps/client/src/app/components/admin-overview/admin-overview.html + 28 + + + + Exchange Rates + Обмінні курси + + apps/client/src/app/components/admin-overview/admin-overview.html + 34 + + + + User Signup + Реєстрація користувача + + apps/client/src/app/components/admin-overview/admin-overview.html + 111 + + + + Read-only Mode + Режим лише для читання + + apps/client/src/app/components/admin-overview/admin-overview.html + 125 + + + + Data Gathering + Збір даних + + apps/client/src/app/components/admin-overview/admin-overview.html + 137 + + + + System Message + Системне повідомлення + + apps/client/src/app/components/admin-overview/admin-overview.html + 149 + + + + Set Message + Встановити повідомлення + + apps/client/src/app/components/admin-overview/admin-overview.html + 171 + + + + Coupons + Купони + + apps/client/src/app/components/admin-overview/admin-overview.html + 179 + + + + Add + Додати + + apps/client/src/app/components/admin-overview/admin-overview.html + 239 + + + libs/ui/src/lib/account-balances/account-balances.component.html + 93 + + + + Housekeeping + Прибирання + + apps/client/src/app/components/admin-overview/admin-overview.html + 247 + + + + Flush Cache + Очистити кеш + + apps/client/src/app/components/admin-overview/admin-overview.html + 251 + + + + Add Platform + Додати платформу + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 11 + + + + Accounts + Рахунки + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 65 + + + apps/client/src/app/components/admin-users/admin-users.html + 114 + + + apps/client/src/app/components/header/header.component.html + 54 + + + apps/client/src/app/components/header/header.component.html + 263 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 352 + + + apps/client/src/app/pages/accounts/accounts-page.html + 4 + + + + Do you really want to delete this platform? + Ви дійсно хочете видалити цю платформу? + + apps/client/src/app/components/admin-platform/admin-platform.component.ts + 87 + + + + Update platform + Оновити платформу + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 8 + + + + Add platform + Додати платформу + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 10 + + + + Data Providers + Постачальники даних + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 4 + + + + Valid until + Дійсне до + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 28 + + + libs/ui/src/lib/membership-card/membership-card.component.html + 42 + + + + of + з + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 42 + + + + daily requests + щоденних запитів + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 44 + + + + Remove API key + Вилучити ключ API + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 58 + + + + Set API key + Встановити ключ API + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 70 + + + + Platforms + Платформи + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 81 + + + + Tags + Теги + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 87 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 377 + + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 414 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 383 + + + + Do you really want to delete the API key? + Ви дійсно хочете видалити ключ API? + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 93 + + + + Please enter your Ghostfolio API key. + Будь ласка, введіть ваш ключ API Ghostfolio. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts + 59 + + + + Want to stay updated? Click below to get notified as soon as it’s available. + Хочете залишатися в курсі? Натисніть нижче, щоб отримати сповіщення, як тільки це буде доступно. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 23 + + + + Notify me + Сповістіть мене + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 32 + + + + or + або + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 36 + + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 31 + + + apps/client/src/app/pages/landing/landing-page.html + 47 + + + apps/client/src/app/pages/landing/landing-page.html + 450 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 97 + + + apps/client/src/app/pages/register/register-page.html + 30 + + + apps/client/src/app/pages/webauthn/webauthn-page.html + 29 + + + + I have an API key + У мене є ключ API + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 43 + + + + Add Tag + Додати тег + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 11 + + + + User + Користувач + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 44 + + + apps/client/src/app/components/header/header.component.html + 229 + + + + Do you really want to delete this tag? + Ви дійсно хочете видалити цей тег? + + apps/client/src/app/components/admin-tag/admin-tag.component.ts + 87 + + + + Update tag + Оновити тег + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 8 + + + + Add tag + Додати тег + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 10 + + + + Do you really want to delete this user? + Ви дійсно хочете видалити цього користувача? + + apps/client/src/app/components/admin-users/admin-users.component.ts + 139 + + + + User + Користувач + + apps/client/src/app/components/admin-users/admin-users.html + 29 + + + + Registration + Реєстрація + + apps/client/src/app/components/admin-users/admin-users.html + 97 + + + + Engagement per Day + Взаємодія за день + + apps/client/src/app/components/admin-users/admin-users.html + 157 + + + + API Requests Today + Запити API сьогодні + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + Last Request + Останній запит + + apps/client/src/app/components/admin-users/admin-users.html + 202 + + + + Impersonate User + Видавати себе за користувача + + apps/client/src/app/components/admin-users/admin-users.html + 239 + + + + Delete User + Видалити користувача + + apps/client/src/app/components/admin-users/admin-users.html + 251 + + + + Performance + Прибутковість + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html + 6 + + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 142 + + + + Compare with... + Порівняти з... + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html + 18 + + + + Manage Benchmarks + Управляти порівняльними показниками + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html + 35 + + + + Portfolio + Портфель + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts + 117 + + + apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts + 46 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 94 + + + + Benchmark + Порівняльний показник + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts + 129 + + + + Current Market Mood + Поточний ринковий настрій + + apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.html + 12 + + + + Overview + Огляд + + apps/client/src/app/components/header/header.component.html + 28 + + + apps/client/src/app/components/header/header.component.html + 245 + + + + Portfolio + Портфель + + apps/client/src/app/components/header/header.component.html + 41 + + + apps/client/src/app/components/header/header.component.html + 255 + + + + Admin Control + Управління адміністратором + + apps/client/src/app/components/header/header.component.html + 68 + + + apps/client/src/app/components/header/header.component.html + 279 + + + + Upgrade Plan + Оновити план + + apps/client/src/app/components/header/header.component.html + 185 + + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 61 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 18 + + + apps/client/src/app/pages/pricing/pricing-page.html + 293 + + + + Renew Plan + Поновити план + + apps/client/src/app/components/header/header.component.html + 191 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 24 + + + apps/client/src/app/pages/pricing/pricing-page.html + 299 + + + + Me + Я + + apps/client/src/app/components/header/header.component.html + 211 + + + + My Ghostfolio + Мій Ghostfolio + + apps/client/src/app/components/header/header.component.html + 270 + + + + About Ghostfolio + Про Ghostfolio + + apps/client/src/app/components/header/header.component.html + 316 + + + apps/client/src/app/pages/about/overview/about-overview-page.html + 5 + + + + Sign in + Увійти + + apps/client/src/app/components/header/header.component.html + 412 + + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 71 + + + + Get started + Почати + + apps/client/src/app/components/header/header.component.html + 422 + + + + Oops! Incorrect Security Token. + Упс! Неправильний Секретний Токен. + + apps/client/src/app/components/header/header.component.ts + 246 + + + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 159 + + + + Change with currency effect Change + Зміна з урахуванням валютного ефекту Зміна + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 50 + + + + Performance with currency effect Performance + Прибутковість з урахуванням валютного ефекту валюти Прибутковість + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 69 + + + + Average Unit Price + Середня ціна за одиницю + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 87 + + + + Minimum Price + Мінімальна ціна + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 114 + + + + Maximum Price + Максимальна ціна + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 130 + + + + Quantity + Кількість + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 140 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 188 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 186 + + + + Investment + Інвестиції + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 152 + + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 58 + + + + Dividend + Дивіденди + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 165 + + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 319 + + + apps/client/src/app/pages/features/features-page.html + 63 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 201 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 271 + + + + Dividend Yield + Дохідність дивіденду + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 175 + + + + Fees + Комісії + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 187 + + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 84 + + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 154 + + + + Activity + Активність + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 207 + + + + Report Data Glitch + Повідомити про збій даних + + apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html + 433 + + + + Active + Активний + + apps/client/src/app/components/home-holdings/home-holdings.component.ts + 36 + + + + Closed + Закритий + + apps/client/src/app/components/home-holdings/home-holdings.component.ts + 37 + + + + Table + Таблиця + + apps/client/src/app/components/home-holdings/home-holdings.html + 16 + + + + Chart + Графік + + apps/client/src/app/components/home-holdings/home-holdings.html + 19 + + + + Manage Activities + Керування діяльністю + + apps/client/src/app/components/home-holdings/home-holdings.html + 63 + + + + Fear + Страх + + apps/client/src/app/components/home-market/home-market.component.ts + 28 + + + libs/ui/src/lib/i18n.ts + 98 + + + + Greed + Жадібність + + apps/client/src/app/components/home-market/home-market.component.ts + 29 + + + libs/ui/src/lib/i18n.ts + 99 + + + + Last Days + Останні днів + + apps/client/src/app/components/home-market/home-market.html + 7 + + + + Welcome to Ghostfolio + Ласкаво просимо в Ghostfolio + + apps/client/src/app/components/home-overview/home-overview.html + 7 + + + + Ready to take control of your personal finances? + Готові взяти під контроль ваші особисті фінанси? + + apps/client/src/app/components/home-overview/home-overview.html + 8 + + + + Setup your accounts + Налаштуйте ваші рахунки + + apps/client/src/app/components/home-overview/home-overview.html + 15 + + + + Get a comprehensive financial overview by adding your bank and brokerage accounts. + Отримайте комплексний фінансовий огляд, додавши ваші банківські та брокерські рахунки. + + apps/client/src/app/components/home-overview/home-overview.html + 17 + + + + Capture your activities + Фіксуйте свою діяльність + + apps/client/src/app/components/home-overview/home-overview.html + 24 + + + + Record your investment activities to keep your portfolio up to date. + Записуйте ваші інвестиційні дії, щоб підтримувати актуальність вашого портфеля. + + apps/client/src/app/components/home-overview/home-overview.html + 26 + + + + Monitor and analyze your portfolio + Відстежуйте та аналізуйте свій портфель + + apps/client/src/app/components/home-overview/home-overview.html + 33 + + + + Track your progress in real-time with comprehensive analysis and insights. + Відстежуйте свій прогрес в режимі реального часу за допомогою всебічного аналізу та інсайтів + + apps/client/src/app/components/home-overview/home-overview.html + 35 + + + + Setup accounts + Налаштувати рахунки + + apps/client/src/app/components/home-overview/home-overview.html + 44 + + + + Add activity + Додати активність + + apps/client/src/app/components/home-overview/home-overview.html + 52 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 8 + + + + Summary + Зведення + + apps/client/src/app/components/home-summary/home-summary.html + 2 + + + + Total Amount + Загальна сума + + apps/client/src/app/components/investment-chart/investment-chart.component.ts + 141 + + + + Savings Rate + Ставка заощаджень + + apps/client/src/app/components/investment-chart/investment-chart.component.ts + 200 + + + + Security Token + Секретний Токен + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 11 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 255 + + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 10 + + + + Sign in with Internet Identity + Увійти з Інтернет-Ідентичністю + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 42 + + + + Sign in with Google + Увійти з Google + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 52 + + + + Stay signed in + Залишатися в системі + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 61 + + + + Oops! A data provider is experiencing the hiccups. + Упс! У постачальника даних виникають проблеми. + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html + 8 + + + + Market data is delayed for + Ринкові дані затримуються для + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts + 87 + + + + Time in Market + Час на ринку + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 3 + + + + {VAR_PLURAL, plural, =1 {activity} other {activities}} + {VAR_PLURAL, plural, =1 {дія} other {дій}} + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 14 + + + + Buy + Купівля + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 31 + + + + Sell + Продаж + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 43 + + + + Absolute Gross Performance + Абсолютний валовий дохід + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 70 + + + + Absolute Net Performance + Абсолютний чистий прибуток + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 102 + + + + Net Performance + Чистий прибуток + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 117 + + + + Total Assets + Загальні активи + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 143 + + + + Valuables + Цінності + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 156 + + + + Emergency Fund + Резервний фонд + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 168 + + + apps/client/src/app/pages/features/features-page.html + 89 + + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 34 + + + + Cash + Готівка + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 202 + + + + Assets + Активи + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 215 + + + + Buying Power + Купівельна спроможність + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 228 + + + + Excluded from Analysis + Виключено з аналізу + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 240 + + + + Liabilities + Зобов'язання + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 255 + + + apps/client/src/app/pages/features/features-page.html + 102 + + + + Net Worth + Чиста вартість + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 273 + + + + Annualized Performance + Річна доходність + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 285 + + + + Interest + Відсотки + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 307 + + + + Save + Зберегти + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 62 + + + + Please set the amount of your emergency fund. + Будь ласка, встановіть суму вашого резервного фонду. + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 64 + + + + Threshold range + Діапазон порогу + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 9 + + + + Threshold Min + Мінімальний поріг + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 54 + + + + Threshold Max + Максимальний поріг + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 92 + + + + Close + Закрити + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 129 + + + + Customize + Налаштувати + + apps/client/src/app/components/rule/rule.component.html + 67 + + + + Deactivate + Деактивувати + + apps/client/src/app/components/rule/rule.component.html + 72 + + + + Activate + Активувати + + apps/client/src/app/components/rule/rule.component.html + 74 + + + + Are you an ambitious investor who needs the full picture? + Ви амбітний інвестор, якому потрібна повна картина? + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 14 + + + + Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience: + Оновіть до Ghostfolio Premium сьогодні та отримайте доступ до ексклюзивних функцій, щоб покращити ваш інвестиційний досвід: + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 17 + + + + Portfolio Summary + Резюме портфеля + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 24 + + + apps/client/src/app/pages/pricing/pricing-page.html + 57 + + + apps/client/src/app/pages/pricing/pricing-page.html + 218 + + + + Portfolio Allocations + Розподіли портфеля + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 28 + + + apps/client/src/app/pages/features/features-page.html + 161 + + + apps/client/src/app/pages/pricing/pricing-page.html + 61 + + + apps/client/src/app/pages/pricing/pricing-page.html + 222 + + + + Performance Benchmarks + Порівняльні показники продуктивності + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 32 + + + apps/client/src/app/pages/pricing/pricing-page.html + 65 + + + apps/client/src/app/pages/pricing/pricing-page.html + 226 + + + + FIRE Calculator + Калькулятор FIRE + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 36 + + + apps/client/src/app/pages/pricing/pricing-page.html + 69 + + + apps/client/src/app/pages/pricing/pricing-page.html + 230 + + + + Professional Data Provider + Професійний постачальник даних + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 40 + + + apps/client/src/app/pages/pricing/pricing-page.html + 245 + + + + and more Features... + і більше функцій... + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 44 + + + apps/client/src/app/pages/pricing/pricing-page.html + 85 + + + apps/client/src/app/pages/pricing/pricing-page.html + 257 + + + + Get the tools to effectively manage your finances and refine your personal investment strategy. + Отримайте інструменти для ефективного управління фінансами та вдосконалення вашої особистої інвестиційної стратегії. + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 47 + + + + Skip + Пропустити + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 54 + + + + Skip + Пропустити + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 83 + + + + Join now + Приєднуйтесь + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 93 + + + + Today + Сьогодні + + apps/client/src/app/components/toggle/toggle.component.ts + 22 + + + libs/ui/src/lib/assistant/assistant.component.ts + 220 + + + + YTD + З початку року + + apps/client/src/app/components/toggle/toggle.component.ts + 23 + + + libs/ui/src/lib/assistant/assistant.component.ts + 230 + + + + 1Y + 1 рік + + apps/client/src/app/components/toggle/toggle.component.ts + 24 + + + libs/ui/src/lib/assistant/assistant.component.ts + 234 + + + + 5Y + 5 років + + apps/client/src/app/components/toggle/toggle.component.ts + 25 + + + libs/ui/src/lib/assistant/assistant.component.ts + 256 + + + + Max + Максимум + + apps/client/src/app/components/toggle/toggle.component.ts + 26 + + + libs/ui/src/lib/assistant/assistant.component.ts + 259 + + + + 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 + 91 + + + + Grant access + Надати доступ + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 7 + + + + Private + Приватний + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 + + + + Public + Публічний + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 25 + + + + User ID + ID користувача + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 45 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 228 + + + + Me + Я + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 135 + + + + Received Access + Отриманий доступ + + apps/client/src/app/components/user-account-access/user-account-access.html + 3 + + + + Granted Access + Наданий доступ + + apps/client/src/app/components/user-account-access/user-account-access.html + 7 + + + + Could not generate an API key + Не вдалося згенерувати ключ API + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 139 + + + + Okay + ОК + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 152 + + + apps/client/src/app/core/http-response.interceptor.ts + 81 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 144 + + + + Set this API key in your self-hosted environment: + Встановіть цей ключ API у вашому self-hosted середовищі: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 154 + + + + Ghostfolio Premium Data Provider API Key + Ключ API Ghostfolio Premium Data Provider + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 157 + + + + Do you really want to generate a new API key? + Ви дійсно хочете згенерувати новий ключ API? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 162 + + + + Could not redeem coupon code + Не вдалося обміняти код купона + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 177 + + + + Coupon code has been redeemed + Код купона був обміняний + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 190 + + + + Reload + Перезавантажити + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 191 + + + + Please enter your coupon code. + Будь ласка, введіть ваш код купона. + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 213 + + + + per year + на рік + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 36 + + + apps/client/src/app/pages/pricing/pricing-page.html + 279 + + + + Try Premium + Спробуйте Premium + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 53 + + + + Redeem Coupon + Обміняти купон + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 67 + + + + No auto-renewal. + Без автоматичного поновлення. + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 74 + + + + Auto + Автоматичний + + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 39 + + + + Do you really want to close your Ghostfolio account? + Ви дійсно хочете закрити ваш обліковий запис Ghostfolio? + + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 174 + + + + Do you really want to remove this sign in method? + Ви дійсно хочете вилучити цей спосіб входу? + + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 248 + + + + Oops! There was an error setting up biometric authentication. + Упс! Виникла помилка під час налаштування біометричної автентифікації. + + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 302 + + + + Settings + Налаштування + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 2 + + + + Presenter View + Режим доповідача + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 7 + + + + Protection for sensitive information like absolute performances and quantity values + Захист конфіденційної інформації, такої як абсолютні показники та кількісні значення + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 8 + + + + Base Currency + Базова валюта + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 27 + + + + Language + Мова + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 48 + + + + If a translation is missing, kindly support us in extending it here. + Якщо переклад відсутній, будь ласка, підтримайте нас у його розширенні тут. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 50 + + + + Locale + Локалізація + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 127 + + + + Date and number format + Формат дати та чисел + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 129 + + + + Appearance + Зовнішній вигляд + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 152 + + + + Auto + Автоматичний + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 166 + + + + Light + Світлий + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 167 + + + + Dark + Темний + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 168 + + + + Zen Mode + Режим дзен + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 177 + + + apps/client/src/app/pages/features/features-page.html + 191 + + + + Distraction-free experience for turbulent times + Досвід без відволікань для неспокійних часів + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 178 + + + + Biometric Authentication + Біометрична аутентифікація + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 194 + + + + Sign in with fingerprint + Увійти з відбитком пальця + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 195 + + + + Experimental Features + Експериментальні функції + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 211 + + + + Sneak peek at upcoming functionality + Попередній перегляд майбутніх функцій + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 212 + + + + Export Data + Експортувати дані + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 236 + + + + Danger Zone + Зона небезпеки + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 248 + + + + Close Account + Закрити обліковий запис + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 283 + + + + This feature is currently unavailable. + Ця функція наразі недоступна. + + apps/client/src/app/core/http-response.interceptor.ts + 53 + + + + Please try again later. + Спробуйте ще раз пізніше. + + apps/client/src/app/core/http-response.interceptor.ts + 55 + + + apps/client/src/app/core/http-response.interceptor.ts + 80 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 143 + + + + This action is not allowed. + Ця дія заборонена. + + apps/client/src/app/core/http-response.interceptor.ts + 61 + + + + Oops! Something went wrong. + Упс! Щось пішло не так. + + apps/client/src/app/core/http-response.interceptor.ts + 78 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 141 + + + + Oops! It looks like you’re making too many requests. Please slow down a bit. + Упс! Здається, ви робите занадто багато запитів. Будь ласка, пригальмуй трохи. + + apps/client/src/app/core/http-response.interceptor.ts + 96 + + + + About + Про нас + + apps/client/src/app/pages/about/about-page-routing.module.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 45 + + + apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts + 13 + + + + Changelog + Журнал змін + + apps/client/src/app/pages/about/about-page.component.ts + 50 + + + apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts + 13 + + + + License + Ліцензія + + apps/client/src/app/pages/about/about-page.component.ts + 55 + + + apps/client/src/app/pages/about/license/license-page-routing.module.ts + 13 + + + + Privacy Policy + Політика конфіденційності + + apps/client/src/app/pages/about/about-page.component.ts + 63 + + + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts + 13 + + + + Our + Наші + + apps/client/src/app/pages/about/oss-friends/oss-friends-page.html + 6 + + + + Discover other exciting Open Source Software projects + Відкрийте для себе інші захоплюючі проекти з відкритим кодом + + apps/client/src/app/pages/about/oss-friends/oss-friends-page.html + 9 + + + + Visit + Відвідати + + apps/client/src/app/pages/about/oss-friends/oss-friends-page.html + 28 + + + + Accounts + Рахунки + + apps/client/src/app/pages/accounts/accounts-page-routing.module.ts + 13 + + + + Oops, cash balance transfer has failed. + Упс, перенесення балансу готівки не вдалося. + + apps/client/src/app/pages/accounts/accounts-page.component.ts + 318 + + + + Update account + Оновити рахунок + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 8 + + + + Add account + Додати рахунок + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 10 + + + + Account ID + Ідентифікатор облікового запису + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 96 + + + + From + Від + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 11 + + + + To + До + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 32 + + + + Transfer + Переказати + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 72 + + + + Admin Control + Управління адміністратором + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 20 + + + + Job Queue + Черга завдань + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 25 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 43 + + + + Market Data + Ринкові дані + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 30 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 38 + + + + Settings + Налаштування + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 35 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 33 + + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 18 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 36 + + + + Users + Користувачі + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 40 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 48 + + + + Overview + Огляд + + apps/client/src/app/pages/admin/admin-page.component.ts + 28 + + + apps/client/src/app/pages/home/home-page.component.ts + 38 + + + apps/client/src/app/pages/resources/resources-page.component.ts + 17 + + + apps/client/src/app/pages/zen/zen-page-routing.module.ts + 19 + + + apps/client/src/app/pages/zen/zen-page.component.ts + 35 + + + + Please enter your Ghostfolio API key: + Будь ласка, введіть ваш ключ API Ghostfolio: + + apps/client/src/app/pages/api/api-page.component.ts + 40 + + + + Blog + Блог + + apps/client/src/app/pages/blog/blog-page-routing.module.ts + 13 + + + + Discover the latest Ghostfolio updates and insights on personal finance + Відкрийте для себе останні оновлення Ghostfolio та виявлення особистих фінансів + + apps/client/src/app/pages/blog/blog-page.html + 7 + + + + As you are already logged in, you cannot access the demo account. + Оскільки ви вже ввійшли, ви не можете отримати доступ до демонстраційного обліковий запис. + + apps/client/src/app/pages/demo/demo-page.component.ts + 35 + + + + Frequently Asked Questions (FAQ) + Часто задавані питання (FAQ) + + apps/client/src/app/pages/faq/faq-page-routing.module.ts + 34 + + + apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts + 13 + + + + General + Загальні + + apps/client/src/app/pages/faq/faq-page.component.ts + 37 + + + + Cloud + Хмара + + apps/client/src/app/pages/faq/faq-page.component.ts + 42 + + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + + Self-Hosting + Самохостинг + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + + self-hosting + самохостинг + + apps/client/src/app/pages/faq/faq-page.component.ts + 49 + + + + Frequently Asked Questions (FAQ) + Часто задавані питання (FAQ) + + apps/client/src/app/pages/faq/overview/faq-overview-page.html + 4 + + + apps/client/src/app/pages/faq/saas/saas-page.html + 4 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html + 4 + + + + FAQ + FAQ + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + + Check out the numerous features of Ghostfolio to manage your wealth + Огляньте численні функції Ghostfolio для управління вашим багатством + + apps/client/src/app/pages/features/features-page.html + 6 + + + + Stocks + Акції + + apps/client/src/app/pages/features/features-page.html + 15 + + + + ETFs + ETF + + apps/client/src/app/pages/features/features-page.html + 25 + + + + Bonds + Облігації + + apps/client/src/app/pages/features/features-page.html + 38 + + + + Cryptocurrencies + Криптовалюти + + apps/client/src/app/pages/features/features-page.html + 51 + + + + Wealth Items + Предмети багатства + + apps/client/src/app/pages/features/features-page.html + 76 + + + + Import and Export + Імпорт та експорт + + apps/client/src/app/pages/features/features-page.html + 115 + + + + Multi-Accounts + Багатокористувацькі акаунти + + apps/client/src/app/pages/features/features-page.html + 127 + + + + Portfolio Calculations + Розрахунки портфеля + + apps/client/src/app/pages/features/features-page.html + 141 + + + + Dark Mode + Темний режим + + apps/client/src/app/pages/features/features-page.html + 178 + + + + Market Mood + Ринковий настрій + + apps/client/src/app/pages/features/features-page.html + 206 + + + + Static Analysis + Статичний аналіз + + apps/client/src/app/pages/features/features-page.html + 225 + + + + Multi-Language + Багатомовність + + apps/client/src/app/pages/features/features-page.html + 242 + + + + Open Source Software + Програмне забезпечення з відкритим кодом + + apps/client/src/app/pages/features/features-page.html + 279 + + + + Get Started + Почати + + apps/client/src/app/pages/features/features-page.html + 304 + + + apps/client/src/app/pages/public/public-page.html + 220 + + + + Holdings + Активи + + apps/client/src/app/pages/home/home-page-routing.module.ts + 23 + + + apps/client/src/app/pages/home/home-page-routing.module.ts + 28 + + + apps/client/src/app/pages/home/home-page.component.ts + 43 + + + apps/client/src/app/pages/zen/zen-page.component.ts + 40 + + + + Summary + Зведення + + apps/client/src/app/pages/home/home-page-routing.module.ts + 33 + + + apps/client/src/app/pages/home/home-page.component.ts + 48 + + + + Markets + Ринки + + apps/client/src/app/pages/home/home-page-routing.module.ts + 38 + + + apps/client/src/app/pages/home/home-page.component.ts + 53 + + + apps/client/src/app/pages/markets/markets-page-routing.module.ts + 13 + + + apps/client/src/app/pages/resources/markets/resources-markets-routing.module.ts + 10 + + + apps/client/src/app/pages/resources/resources-page.component.ts + 27 + + + + Ghostfolio is a personal finance dashboard to keep track of your net worth including cash, stocks, ETFs and cryptocurrencies across multiple platforms. + Ghostfolio - це панель особистих фінансів для відстеження вашого чистого капіталу, включаючи готівку, акції, ETF та криптовалюти на різних платформах. + + apps/client/src/app/pages/i18n/i18n-page.html + 4 + + + + app, asset, cryptocurrency, dashboard, etf, finance, management, performance, portfolio, software, stock, trading, wealth, web3 + додаток, актив, криптовалюта, панель, etf, фінанси, управління, продуктивність, портфель, програмне забезпечення, акція, торгівля, багатство, web3 + + apps/client/src/app/pages/i18n/i18n-page.html + 9 + + + + My Account + Мій рахунок + + apps/client/src/app/pages/i18n/i18n-page.html + 13 + + + + Open Source Wealth Management Software + Програмне забезпечення управління багатством з відкритим кодом + + apps/client/src/app/pages/i18n/i18n-page.html + 14 + + + + Manage your wealth like a boss + Керуйте своїми фінансами як професіонал + + apps/client/src/app/pages/landing/landing-page.html + 5 + + + + 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 - це інформаційна панель з відкритим кодом для управління вашими особистими фінансами, орієнтована насамперед на конфіденційність. Розподіліть свої активи, визначте чисту вартість свого майна та приймайте зважені інвестиційні рішення на основі даних. + + apps/client/src/app/pages/landing/landing-page.html + 9 + + + + Get Started + Почати + + apps/client/src/app/pages/landing/landing-page.html + 41 + + + apps/client/src/app/pages/pricing/pricing-page.html + 329 + + + + Live Demo + Жива демонстрація + + apps/client/src/app/pages/landing/landing-page.html + 49 + + + apps/client/src/app/pages/landing/landing-page.html + 451 + + + + Monthly Active Users + Щомісячні активні користувачі + + apps/client/src/app/pages/landing/landing-page.html + 70 + + + + Stars on GitHub + Зірки на GitHub + + apps/client/src/app/pages/landing/landing-page.html + 88 + + + apps/client/src/app/pages/open/open-page.html + 103 + + + + Pulls on Docker Hub + Завантаження на Docker Hub + + apps/client/src/app/pages/landing/landing-page.html + 106 + + + apps/client/src/app/pages/open/open-page.html + 117 + + + + As seen in + Як видно в + + apps/client/src/app/pages/landing/landing-page.html + 115 + + + + Protect your assets. Refine your personal investment strategy. + Захищайте свої активи. Вдосконалюйте власну інвестиційну стратегію. + + apps/client/src/app/pages/landing/landing-page.html + 225 + + + + Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. + Ghostfolio допомагає зайнятим людям відстежувати акції, ETF або криптовалюти без ризику бути відстеженими. + + apps/client/src/app/pages/landing/landing-page.html + 229 + + + + 360° View + 360° огляд + + apps/client/src/app/pages/landing/landing-page.html + 240 + + + + Get the full picture of your personal finances across multiple platforms. + Отримайте повну картину ваших особистих фінансів на різних платформах. + + apps/client/src/app/pages/landing/landing-page.html + 242 + + + + Web3 Ready + Готовий до Web3 + + apps/client/src/app/pages/landing/landing-page.html + 251 + + + + Use Ghostfolio anonymously and own your financial data. + Використовуйте Ghostfolio анонімно та володійте своїми фінансовими даними. + + apps/client/src/app/pages/landing/landing-page.html + 253 + + + + Open Source + Відкритий код + + apps/client/src/app/pages/landing/landing-page.html + 261 + + + + Benefit from continuous improvements through a strong community. + Отримуйте користь від постійних покращень завдяки сильній спільноті. + + apps/client/src/app/pages/landing/landing-page.html + 263 + + + + Why Ghostfolio? + Чому Ghostfolio? + + apps/client/src/app/pages/landing/landing-page.html + 272 + + + + Ghostfolio is for you if you are... + Ghostfolio для вас, якщо ви... + + apps/client/src/app/pages/landing/landing-page.html + 273 + + + + trading stocks, ETFs or cryptocurrencies on multiple platforms + торгуєте акціями, ETF або криптовалютами на різних платформах + + apps/client/src/app/pages/landing/landing-page.html + 280 + + + + pursuing a buy & hold strategy + дотримуєтеся стратегії купівлі та утримання + + apps/client/src/app/pages/landing/landing-page.html + 286 + + + + interested in getting insights of your portfolio composition + вас цікавлять інсайти вашого складу портфеля + + apps/client/src/app/pages/landing/landing-page.html + 291 + + + + valuing privacy and data ownership + цінуєте конфіденційність і володіння даними + + apps/client/src/app/pages/landing/landing-page.html + 296 + + + + into minimalism + займаєтесь мінімалізмом + + apps/client/src/app/pages/landing/landing-page.html + 299 + + + + caring about diversifying your financial resources + піклуєтесь про диверсифікацію ваших фінансових ресурсів + + apps/client/src/app/pages/landing/landing-page.html + 303 + + + + interested in financial independence + цікавитесь фінансовою незалежністю + + apps/client/src/app/pages/landing/landing-page.html + 307 + + + + saying no to spreadsheets in + кажете ні таблицям у + + apps/client/src/app/pages/landing/landing-page.html + 311 + + + + still reading this list + все ще читаєте цей список + + apps/client/src/app/pages/landing/landing-page.html + 314 + + + + Learn more about Ghostfolio + Дізнайтеся більше про Ghostfolio + + apps/client/src/app/pages/landing/landing-page.html + 319 + + + + What our users are saying + Що говорять користувачі + + apps/client/src/app/pages/landing/landing-page.html + 327 + + + + Members from around the globe are using Ghostfolio Premium + Члени зі всього світу використовують Ghostfolio Premium + + apps/client/src/app/pages/landing/landing-page.html + 366 + + + + How does Ghostfolio work? + Як працює Ghostfolio? + + apps/client/src/app/pages/landing/landing-page.html + 383 + + + + Get started in only 3 steps + Почніть всього за 3 кроки + + apps/client/src/app/pages/landing/landing-page.html + 386 + + + + Sign up anonymously* + Зареєструйтеся анонімно* + + apps/client/src/app/pages/landing/landing-page.html + 392 + + + + * no e-mail address nor credit card required + * не потрібні електронна адреса та кредитна картка + + apps/client/src/app/pages/landing/landing-page.html + 394 + + + + Add any of your historical transactions + Додайте будь-які з ваших історичних транзакцій + + apps/client/src/app/pages/landing/landing-page.html + 405 + + + + Get valuable insights of your portfolio composition + Отримуйте цінні інсайти вашого складу портфеля + + apps/client/src/app/pages/landing/landing-page.html + 417 + + + + Are you ready? + Ви готові? + + apps/client/src/app/pages/landing/landing-page.html + 431 + + + + Join now or check out the example account + Приєднуйтесь зараз або перегляньте демонстраційний рахунок + + apps/client/src/app/pages/landing/landing-page.html + 434 + + + + Get Started + Почати + + apps/client/src/app/pages/landing/landing-page.html + 446 + + + + 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. + У Ghostfolio прозорість є основою наших цінностей. Ми публікуємо вихідний код як відкрите програмне забезпечення (OSS) під AGPL-3.0 ліцензією та відкрито ділимося агрегованими ключовими метриками операційного стану платформи. + + apps/client/src/app/pages/open/open-page.html + 6 + + + + (Last 24 hours) + (Останні 24 години) + + apps/client/src/app/pages/open/open-page.html + 37 + + + + Active Users + Активні користувачі + + apps/client/src/app/pages/open/open-page.html + 40 + + + apps/client/src/app/pages/open/open-page.html + 62 + + + + (Last 30 days) + (Останні 30 днів) + + apps/client/src/app/pages/open/open-page.html + 48 + + + apps/client/src/app/pages/open/open-page.html + 59 + + + + New Users + Нові користувачі + + apps/client/src/app/pages/open/open-page.html + 51 + + + + Users in Slack community + Користувачі в спільноті Slack + + apps/client/src/app/pages/open/open-page.html + 75 + + + + Contributors on GitHub + Учасники на GitHub + + apps/client/src/app/pages/open/open-page.html + 89 + + + + (Last 90 days) + (Останні 90 днів) + + apps/client/src/app/pages/open/open-page.html + 127 + + + + Uptime + Час безвідмовної роботи + + apps/client/src/app/pages/open/open-page.html + 132 + + + + Activities + Активності + + apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts + 13 + + + apps/client/src/app/pages/portfolio/portfolio-page.component.ts + 40 + + + + Update activity + Оновити активність + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 10 + + + + Stocks, ETFs, bonds, cryptocurrencies, commodities + Акції, ETF, облігації, криптовалюти, товари + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 25 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 65 + + + + One-time fee, annual account fees + Одноразова комісія, щорічна комісія за обслуговування рахунку + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 33 + + + + Distribution of corporate earnings + Розподіл корпоративних доходів + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 41 + + + + Revenue for lending out money + Доходи за кредитування грошей + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 49 + + + + Mortgages, personal loans, credit cards + Іпотека, особисті кредити, кредитні картки + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 57 + + + + Luxury items, real estate, private companies + Предмети розкоші, нерухомість, приватні компанії + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 73 + + + + Account + Рахунок + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 85 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 308 + + + libs/ui/src/lib/assistant/assistant.html + 107 + + + + Update Cash Balance + Оновити баланс готівки + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 112 + + + + Date + Дата + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 160 + + + libs/ui/src/lib/account-balances/account-balances.component.html + 12 + + + 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 + + + + Unit Price + Ціна за одиницю + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 213 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 286 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 210 + + + + Oops! Could not get the historical exchange rate from + Упс! Не вдалося отримати історичний обмінний курс від + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 240 + + + + Fee + Комісія + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 306 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 330 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 234 + + + + Oops! Could not get the historical exchange rate from + Упс! Не вдалося отримати історичний обмінний курс від + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 318 + + + + Import Activities + Імпортувати активності + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 46 + + + + Import Dividends + Імпорт дивідендів + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 87 + + + + Importing data... + Імпортуються дані... + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 125 + + + + Import has been completed + Імпорт завершено + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 133 + + + + Validating data... + Перевірка даних... + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 239 + + + + Select Holding + Вибрати актив + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 20 + + + + Select File + Вибрати файл + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 22 + + + + Holding + Актив + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 32 + + + libs/ui/src/lib/assistant/assistant.html + 127 + + + + Load Dividends + Завантажити дивіденди + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 68 + + + + Choose or drop a file here + Виберіть або перетягніть файл сюди + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 84 + + + + The following file formats are supported: + Підтримуються наступні формати файлів: + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 90 + + + + Select Dividends + Вибрати дивіденди + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 113 + + + + Select Activities + Виберіть активності + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 115 + + + + Back + Назад + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 144 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 178 + + + + Import + Імпорт + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 153 + + + 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 + Розподіли + + apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts + 13 + + + apps/client/src/app/pages/portfolio/portfolio-page.component.ts + 45 + + + + Allocations + Розподіли + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 4 + + + + Proportion of Net Worth + Частка чистої вартості + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 12 + + + + By Platform + За платформою + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 44 + + + + By Currency + За валютою + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 63 + + + + By Asset Class + За класом активів + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 85 + + + + By Holding + За активом + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 107 + + + + By Sector + За сектором + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 130 + + + + By Continent + За континентом + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 153 + + + + By Market + За ринком + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 175 + + + + Regions + Регіони + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 198 + + + apps/client/src/app/pages/public/public-page.html + 143 + + + + Developed Markets + Розвиті ринки + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 222 + + + apps/client/src/app/pages/public/public-page.html + 160 + + + + Emerging Markets + Ринки, що розвиваються + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 231 + + + apps/client/src/app/pages/public/public-page.html + 169 + + + + Other Markets + Інші ринки + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 240 + + + apps/client/src/app/pages/public/public-page.html + 178 + + + + No data available + Дані недоступні + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 250 + + + apps/client/src/app/pages/public/public-page.html + 188 + + + libs/ui/src/lib/benchmark/benchmark.component.html + 137 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 181 + + + + By Country + За країною + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 264 + + + + By Account + За рахунком + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 286 + + + + By ETF Provider + За постачальником ETF + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 306 + + + + By ETF Holding + За активами ETF + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 333 + + + + Approximation based on the top holdings of each ETF + Наближення на основі провідних активів кожного ETF + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 340 + + + + Analysis + Аналіз + + apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts + 13 + + + apps/client/src/app/pages/portfolio/portfolio-page.component.ts + 35 + + + + Dividend + Дивіденди + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 41 + + + libs/ui/src/lib/i18n.ts + 36 + + + + Investment + Інвестиції + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 46 + + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 60 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 88 + + + + Monthly + Щомісячно + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 54 + + + + Yearly + Щорічно + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 55 + + + + Analysis + Аналіз + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 2 + + + + Absolute Asset Performance + Абсолютна прибутковість активів + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 60 + + + + Asset Performance + Прибутковість активів + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 81 + + + + Absolute Currency Performance + Абсолютна прибутковість валюти + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 103 + + + + Currency Performance + Прибутковість валюти + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 127 + + + + Absolute Net Performance + Абсолютна чиста прибутковість + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 150 + + + + Net Performance + Чиста прибутковість + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 169 + + + + Top + Топ + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 197 + + + + Bottom + Низ + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 246 + + + + Portfolio Evolution + Еволюція портфеля + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 299 + + + + Investment Timeline + Інвестиційний графік + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 326 + + + + Current Streak + Поточна серія + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 347 + + + + Longest Streak + Найдовша серія + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 356 + + + + Dividend Timeline + Графік дивідендів + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 383 + + + + FIRE + Фінансова незалежність, достроковий вихід на пенсію (FIRE) + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 4 + + + + Calculator + Калькулятор + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 7 + + + + 4% Rule + Правило 4% + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 40 + + + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + Якщо ви вийдете на пенсію сьогодні, ви зможете знімати на рік або на місяць, виходячи з вашого загального капіталу в та ставкою виведення у 4%. + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 67 + + + + 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 використовує статичний аналіз для виявлення потенційних проблем та ризиків у вашому портфелі. Налаштуйте правила нижче та встановіть індивідуальні пороги, щоб узгодити їх з вашою особистою інвестиційною стратегією. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 5 + + + + out of + з + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + + + rules align with your portfolio. + правила узгоджуються з вашим портфелем. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + + + Currency Cluster Risks + Ризики зосередження валюти + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 58 + + + + Asset Class Cluster Risks + Ризики зосередження класу активів + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + + + Account Cluster Risks + Ризики зосередження рахунків + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 106 + + + + Economic Market Cluster Risks + Ризики зосередження економічного ринку + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 130 + + + + Inactive + Неактивний + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 173 + + + + Pricing + Ціни + + apps/client/src/app/pages/pricing/pricing-page-routing.module.ts + 13 + + + + Pricing Plans + Плани цін + + apps/client/src/app/pages/pricing/pricing-page.html + 4 + + + + Our official Ghostfolio Premium cloud offering is the easiest way to get started. Due to the time it saves, this will be the best option for most people. Revenue is used to cover the costs of the hosting infrastructure and to fund ongoing development. + Наша офіційна хмарна пропозиція Ghostfolio Premium - це найпростіший спосіб почати роботу. Завдяки економії часу, це буде найкращим варіантом для більшості людей. Доходи використовуються для покриття витрат на хостинг-інфраструктуру та фінансування постійної розробки. + + apps/client/src/app/pages/pricing/pricing-page.html + 6 + + + + If you prefer to run Ghostfolio on your own infrastructure, please find the source code and further instructions on GitHub. + Якщо ви віддаєте перевагу запускати Ghostfolio на власній інфраструктурі, перейдіть на GitHub для отримання вихідного коду та подальших інструкцій. + + apps/client/src/app/pages/pricing/pricing-page.html + 26 + + + + For tech-savvy investors who prefer to run Ghostfolio on their own infrastructure. + Для технікознавих інвесторів, які віддають перевагу запуску Ghostfolio на власній інфраструктурі. + + apps/client/src/app/pages/pricing/pricing-page.html + 38 + + + + Unlimited Transactions + Необмежені транзакції + + apps/client/src/app/pages/pricing/pricing-page.html + 45 + + + apps/client/src/app/pages/pricing/pricing-page.html + 134 + + + apps/client/src/app/pages/pricing/pricing-page.html + 206 + + + + Unlimited Accounts + Необмежена кількість рахунків + + apps/client/src/app/pages/pricing/pricing-page.html + 49 + + + apps/client/src/app/pages/pricing/pricing-page.html + 138 + + + apps/client/src/app/pages/pricing/pricing-page.html + 210 + + + + Portfolio Performance + Прибутковість портфеля + + apps/client/src/app/pages/pricing/pricing-page.html + 53 + + + apps/client/src/app/pages/pricing/pricing-page.html + 142 + + + apps/client/src/app/pages/pricing/pricing-page.html + 214 + + + + Data Import and Export + Імпорт та експорт даних + + apps/client/src/app/pages/pricing/pricing-page.html + 73 + + + apps/client/src/app/pages/pricing/pricing-page.html + 146 + + + apps/client/src/app/pages/pricing/pricing-page.html + 234 + + + + Community Support + Підтримка спільноти + + apps/client/src/app/pages/pricing/pricing-page.html + 90 + + + + Self-hosted, update manually. + Самохостинг, оновлення вручну. + + apps/client/src/app/pages/pricing/pricing-page.html + 94 + + + + Free + Безкоштовно + + apps/client/src/app/pages/pricing/pricing-page.html + 95 + + + apps/client/src/app/pages/pricing/pricing-page.html + 158 + + + + For new investors who are just getting started with trading. + Для нових інвесторів, які тільки починають з торгівлі. + + apps/client/src/app/pages/pricing/pricing-page.html + 128 + + + + Fully managed Ghostfolio cloud offering. + Повністю керована хмарна пропозиція Ghostfolio. + + apps/client/src/app/pages/pricing/pricing-page.html + 157 + + + apps/client/src/app/pages/pricing/pricing-page.html + 266 + + + + For ambitious investors who need the full picture of their financial assets. + Для амбітних інвесторів, яким потрібна повна картина їхніх фінансових активів. + + apps/client/src/app/pages/pricing/pricing-page.html + 199 + + + + Email and Chat Support + Підтримка електронної пошти та чату + + apps/client/src/app/pages/pricing/pricing-page.html + 262 + + + + One-time payment, no auto-renewal. + Разова оплата, без автоматичного поновлення. + + apps/client/src/app/pages/pricing/pricing-page.html + 303 + + + + It’s free. + Це безкоштовно. + + apps/client/src/app/pages/pricing/pricing-page.html + 332 + + + + Hello, has shared a Portfolio with you! + Привіт, поділився з вами Портфелем! + + apps/client/src/app/pages/public/public-page.html + 4 + + + + Today + Сьогодні + + apps/client/src/app/pages/public/public-page.html + 24 + + + + This year + Цього року + + apps/client/src/app/pages/public/public-page.html + 42 + + + + From the beginning + З початку + + apps/client/src/app/pages/public/public-page.html + 60 + + + + Currencies + Валюти + + apps/client/src/app/pages/public/public-page.html + 88 + + + + Continents + Континенти + + apps/client/src/app/pages/public/public-page.html + 124 + + + + Would you like to refine your personal investment strategy? + Чи хотіли б ви удосконалити вашу особисту інвестиційну стратегію? + + apps/client/src/app/pages/public/public-page.html + 211 + + + + Ghostfolio empowers you to keep track of your wealth. + Ghostfolio надає можливість вам стежити за вашим багатством. + + apps/client/src/app/pages/public/public-page.html + 215 + + + + Registration + Реєстрація + + apps/client/src/app/pages/register/register-page-routing.module.ts + 13 + + + + Continue with Internet Identity + Продовжити з Інтернет-Ідентичністю + + apps/client/src/app/pages/register/register-page.html + 42 + + + + Continue with Google + Продовжити з Google + + apps/client/src/app/pages/register/register-page.html + 53 + + + + Copy to clipboard + Копіювати в буфер обміну + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 26 + + + + I agree to have stored my Security Token from above in a secure place. If I lose it, I cannot get my account back. + Я погоджуюся зберігати свій Секретний Токен у безпечному місці. Якщо я його втрачу, я не зможу відновити свій акаунт. + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 32 + + + + Agree and continue + Погоджуюся і продовжую + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 45 + + + + Glossary + Глосарій + + apps/client/src/app/pages/resources/glossary/resources-glossary-routing.module.ts + 10 + + + apps/client/src/app/pages/resources/resources-page.component.ts + 32 + + + + Glossary + Глосарій + + apps/client/src/app/pages/resources/glossary/resources-glossary.component.html + 4 + + + + Guides + Посібники + + apps/client/src/app/pages/resources/guides/resources-guides-routing.module.ts + 10 + + + apps/client/src/app/pages/resources/resources-page.component.ts + 22 + + + + Guides + Посібники + + apps/client/src/app/pages/resources/guides/resources-guides.component.html + 4 + + + + guides + guides + snake-case + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts + 23 + + + apps/client/src/app/pages/resources/resources-page-routing.module.ts + 28 + + + + glossary + glossary + snake-case + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts + 41 + + + apps/client/src/app/pages/resources/resources-page-routing.module.ts + 21 + + + + Personal Finance Tools + Інструменти особистих фінансів + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts + 14 + + + + open-source-alternative-to + відкритий-альтернативний-для + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 14 + + + + Open Source Alternative to + Альтернатива з відкритим кодом для + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts + 27 + + + + Discover Open Source Alternatives for Personal Finance Tools + Відкрийте для себе альтернативи з відкритим кодом для інструментів особистих фінансів + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html + 4 + + + + This overview page features a curated collection of personal finance tools compared to the open source alternative Ghostfolio. If you value transparency, data privacy, and community collaboration, Ghostfolio provides an excellent opportunity to take control of your financial management. + Ця сторінка огляду містить добірку інструментів особистих фінансів, порівняних з відкритою альтернативою Ghostfolio. Якщо ви цінуєте прозорість, конфіденційність даних та співпрацю в спільноті, Ghostfolio надає чудову можливість взяти під контроль ваше фінансове управління. + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html + 8 + + + + Explore the links below to compare a variety of personal finance tools with Ghostfolio. + Ознайомтеся з посиланнями нижче, щоб порівняти різні інструменти особистих фінансів з Ghostfolio. + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html + 16 + + + + Open Source Alternative to + Відкрита альтернатива для + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html + 42 + + + + Switzerland + Швейцарія + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 59 + + + libs/ui/src/lib/i18n.ts + 90 + + + + Global + Глобальний + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 60 + + + libs/ui/src/lib/i18n.ts + 16 + + + + Alternative + Альтернатива + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 82 + + + + App + Додаток + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 83 + + + + Budgeting + Бюджетування + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 84 + + + + Community + Спільнота + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 85 + + + + Family Office + Сімейний офіс + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 86 + + + + Investor + Інвестор + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 89 + + + + Open Source + Відкритий код + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 90 + + + + Personal Finance + Особисті фінанси + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 92 + + + + Privacy + Конфіденційність + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 93 + + + + Software + Програмне забезпечення + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 95 + + + + Tool + Інструмент + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 96 + + + + User Experience + Користувацький досвід + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 97 + + + + Wealth + Багатство + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 98 + + + + Wealth Management + Управління багатством + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 99 + + + + The Open Source Alternative to + Відкрита альтернатива до + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 8 + + + + This page has been archived. + Цю сторінку було архівовано. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 14 + + + + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. + Ви шукаєте відкриту альтернативу для ? Ghostfolio є потужним інструментом управління портфелем, який надає індивідуумам комплексну платформу для відстеження, аналізу та оптимізації їхніх інвестицій. Незалежно від того, чи ви досвідчений інвестор, чи тільки починаєте, Ghostfolio пропонує зручний інтерфейс користувача та широкий спектр функціональностей для допомоги вам у прийнятті обґрунтованих рішень та взятті під контроль вашого фінансового майбутнього. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 18 + + + + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. + Ghostfolio є відкритим програмним забезпеченням (OSS), що надає економічно ефективну альтернативу для , роблячи його особливо підходящим для тих, хто обмежений у бюджеті, таких як прагнення до фінансової незалежності, раннього виходу на пенсію (FIRE). Використовуючи колективні зусилля спільноти розробників та ентузіастів особистих фінансів, Ghostfolio постійно покращує свої можливості, безпеку та користувацький досвід. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 32 + + + + Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. + Давайте заглибимося у детальну порівняльну таблицю Ghostfolio проти нижче, щоб отримати повне розуміння того, як Ghostfolio позиціонує себе відносно . Ми дослідимо різні аспекти, такі як функції, конфіденційність даних, ціни тощо, що дозволить вам зробити добре обдуманий вибір для ваших особистих потреб. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 43 + + + + Ghostfolio vs comparison table + Порівняльна таблиця Ghostfolio проти + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 54 + + + + Founded + Засновано + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 77 + + + + Origin + Походження + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 82 + + + + Region + Регіон + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 87 + + + + Available in + Доступно в + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 108 + + + + is Open Source Software + є відкритим програмним забезпеченням + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 139 + + + + ✅ Yes + ✅ Так + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 179 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 218 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 235 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 257 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 274 + + + + is not Open Source Software + не є відкритим програмним забезпеченням + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 146 + + + + ❌ No + ❌ Ні + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 147 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 242 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 264 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 281 + + + + is Open Source Software + є відкритим програмним забезпеченням + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 156 + + + + is not Open Source Software + не є відкритим програмним забезпеченням + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 163 + + + + Self-Hosting + Самохостинг + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 170 + + + + can be self-hosted + може бути self-hosted + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 178 + + + + cannot be self-hosted + не може бути self-hosted + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 185 + + + + can be self-hosted + може бути self-hosted + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 195 + + + + cannot be self-hosted + не може бути self-hosted + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 202 + + + + Use anonymously + Використовувати анонімно + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 209 + + + + can be used anonymously + може використовуватися анонімно + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 217 + + + + cannot be used anonymously + не може використовуватися анонімно + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 224 + + + + can be used anonymously + може використовуватися анонімно + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 234 + + + + cannot be used anonymously + не може використовуватися анонімно + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 241 + + + + Free Plan + Безкоштовний план + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 248 + + + + offers a free plan + пропонує безкоштовний план + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 256 + + + + does not offer a free plan + не пропонує безкоштовний план + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 263 + + + + offers a free plan + пропонує безкоштовний план + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 273 + + + + does not offer a free plan + не пропонує безкоштовний план + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 280 + + + + Starting from + Починаючи з + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 289 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 294 + + + + year + рік + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 290 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 296 + + + + Notes + Примітки + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 302 + + + + Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. + Зазначаємо, що інформація, надана в порівняльній таблиці Ghostfolio проти базується на нашому незалежному дослідженні та аналізі. Цей веб-сайт не пов'язаний з або будь-яким іншим продуктом, згаданим у порівнянні. Оскільки ландшафт інструментів особистих фінансів еволюціонує, важливо перевіряти будь-які конкретні деталі або зміни безпосередньо на сторінці відповідного продукту. Потрібно оновити дані? Допоможіть нам підтримувати точні дані на GitHub. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 311 + + + + Ready to take your investments to the next level? + Готові підняти ваші інвестиції на наступний рівень? + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 324 + + + + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. + Легко відстежуйте, аналізуйте та візуалізуйте ваше багатство з Ghostfolio. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 328 + + + + Get Started + Почати + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 333 + + + + Personal Finance Tools + Інструменти особистих фінансів + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.html + 351 + + + + Resources + Ресурси + + apps/client/src/app/pages/resources/resources-page-routing.module.ts + 50 + + + + Membership + Членство + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 23 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 41 + + + + Access + Доступ + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 28 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 47 + + + + My Ghostfolio + Мій Ghostfolio + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 33 + + + + Oops, authentication has failed. + Упс, аутентифікація не вдалася. + + apps/client/src/app/pages/webauthn/webauthn-page.html + 19 + + + + Try again + Спробуйте ще раз + + apps/client/src/app/pages/webauthn/webauthn-page.html + 27 + + + + Go back to Home Page + Повернутися на головну сторінку + + apps/client/src/app/pages/webauthn/webauthn-page.html + 31 + + + + Do you really want to delete this account balance? + Ви дійсно хочете видалити цей рахунок? + + libs/ui/src/lib/account-balances/account-balances.component.ts + 109 + + + + Import Activities + Імпортувати активності + + libs/ui/src/lib/activities-table/activities-table.component.html + 9 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 371 + + + + Import Dividends + Імпорт дивідендів + + libs/ui/src/lib/activities-table/activities-table.component.html + 29 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 383 + + + + Export Activities + Експорт активності + + libs/ui/src/lib/activities-table/activities-table.component.html + 41 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 396 + + + + Export Drafts as ICS + Експортувати чернетки як ICS + + libs/ui/src/lib/activities-table/activities-table.component.html + 54 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 409 + + + + Delete Activities + Видалити активності + + libs/ui/src/lib/activities-table/activities-table.component.html + 67 + + + + Draft + Чернетка + + libs/ui/src/lib/activities-table/activities-table.component.html + 145 + + + + Clone + Клонувати + + libs/ui/src/lib/activities-table/activities-table.component.html + 436 + + + + Export Draft as ICS + Експортувати чернетку як ICS + + libs/ui/src/lib/activities-table/activities-table.component.html + 446 + + + + Do you really want to delete these activities? + Ви дійсно хочете видалити ці дії? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 218 + + + + Do you really want to delete this activity? + Ви дійсно хочете видалити цю активність? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 228 + + + + Find holding... + Знайти актив... + + libs/ui/src/lib/assistant/assistant.component.ts + 143 + + + + Week to date + Тиждень до дати + + libs/ui/src/lib/assistant/assistant.component.ts + 222 + + + + WTD + WTD + + libs/ui/src/lib/assistant/assistant.component.ts + 222 + + + + Month to date + Місяць до дати + + libs/ui/src/lib/assistant/assistant.component.ts + 226 + + + + MTD + MTD + + libs/ui/src/lib/assistant/assistant.component.ts + 226 + + + + Year to date + Рік до дати + + libs/ui/src/lib/assistant/assistant.component.ts + 230 + + + + year + рік + + libs/ui/src/lib/assistant/assistant.component.ts + 234 + + + + years + роки + + libs/ui/src/lib/assistant/assistant.component.ts + 256 + + + + No entries... + Немає записів... + + libs/ui/src/lib/assistant/assistant.html + 63 + + + libs/ui/src/lib/assistant/assistant.html + 84 + + + + Asset Profiles + Профілі активів + + libs/ui/src/lib/assistant/assistant.html + 67 + + + + Date Range + Діапазон дат + + libs/ui/src/lib/assistant/assistant.html + 93 + + + + Tag + Тег + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + Reset Filters + Скинути фільтри + + libs/ui/src/lib/assistant/assistant.html + 185 + + + + Apply Filters + Застосувати фільтри + + libs/ui/src/lib/assistant/assistant.html + 195 + + + + Index + Індекс + + libs/ui/src/lib/benchmark/benchmark.component.html + 3 + + + + 50-Day Trend + Тренд на 50 днів + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + + + 200-Day Trend + Тренд на 200 днів + + libs/ui/src/lib/benchmark/benchmark.component.html + 40 + + + + Last All Time High + Останній рекордний максимум + + libs/ui/src/lib/benchmark/benchmark.component.html + 65 + + + + Change from All Time High + Зміна від Історичного Максимуму + + libs/ui/src/lib/benchmark/benchmark.component.html + 81 + + + + from ATH + від ІМ + + libs/ui/src/lib/benchmark/benchmark.component.html + 83 + + + + Market data provided by + Ринкові дані надані + + libs/ui/src/lib/data-provider-credits/data-provider-credits.component.html + 2 + + + + Savings Rate per Month + Ставка заощаджень на місяць + + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 10 + + + + Annual Interest Rate + Річна процентна ставка + + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 21 + + + + Retirement Date + Дата виходу на пенсію + + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 32 + + + + Projected Total Amount + Прогнозована загальна сума + + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 57 + + + + Deposit + Депозит + + libs/ui/src/lib/fire-calculator/fire-calculator.component.ts + 360 + + + + Interest + Відсотки + + libs/ui/src/lib/fire-calculator/fire-calculator.component.ts + 370 + + + libs/ui/src/lib/i18n.ts + 38 + + + + Savings + Заощадження + + libs/ui/src/lib/fire-calculator/fire-calculator.component.ts + 380 + + + + Details for + Деталі для + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 2 + + + + Oops! Could not parse historical data. + Упс! Не вдалося отримати історичні дані. + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts + 262 + + + + Allocation + Розподіл + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 98 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 40 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 116 + + + + Change + Змінити + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 119 + + + + Show all + Показати все + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 197 + + + + Account + Рахунок + + libs/ui/src/lib/i18n.ts + 4 + + + + Asia-Pacific + Азія-Тихоокеанський регіон + + libs/ui/src/lib/i18n.ts + 5 + + + + Asset Class + Клас активів + + libs/ui/src/lib/i18n.ts + 6 + + + + Asset Sub Class + Підклас активів + + libs/ui/src/lib/i18n.ts + 7 + + + + Buy and sell + Купівля та продаж + + libs/ui/src/lib/i18n.ts + 8 + + + + Cancel + Скасувати + + libs/ui/src/lib/i18n.ts + 9 + + + + Core + Ядро + + libs/ui/src/lib/i18n.ts + 10 + + + + Close + Закрити + + libs/ui/src/lib/i18n.ts + 11 + + + + Switch to Ghostfolio Premium or Ghostfolio Open Source easily + Переключитися на Ghostfolio Premium або Ghostfolio з відкритим вихідним кодом легко + + libs/ui/src/lib/i18n.ts + 12 + + + + Switch to Ghostfolio Premium easily + Переключитися на Ghostfolio Premium легко + + libs/ui/src/lib/i18n.ts + 13 + + + + Switch to Ghostfolio Open Source or Ghostfolio Basic easily + Переключитися на Ghostfolio Open Source або Ghostfolio Basic легко + + libs/ui/src/lib/i18n.ts + 14 + + + + Emergency Fund + Резервний фонд + + libs/ui/src/lib/i18n.ts + 15 + + + + Grant + Грант + + libs/ui/src/lib/i18n.ts + 17 + + + + Higher Risk + Вищий ризик + + libs/ui/src/lib/i18n.ts + 18 + + + + This activity already exists. + Така активність вже існує. + + libs/ui/src/lib/i18n.ts + 19 + + + + Lower Risk + Нижчий ризик + + libs/ui/src/lib/i18n.ts + 20 + + + + Month + Місяць + + libs/ui/src/lib/i18n.ts + 21 + + + + Months + Місяців + + libs/ui/src/lib/i18n.ts + 22 + + + + Other + Інші + + libs/ui/src/lib/i18n.ts + 23 + + + libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts + 402 + + + + Get access to 100’000+ tickers from over 50 exchanges + Отримайте доступ до 100 000+ тікерів з понад 50 бірж + + libs/ui/src/lib/i18n.ts + 24 + + + + Preset + Пресет + + libs/ui/src/lib/i18n.ts + 25 + + + + Retirement Provision + Пенсійне накопичення + + libs/ui/src/lib/i18n.ts + 26 + + + + Satellite + Супутник + + libs/ui/src/lib/i18n.ts + 27 + + + + Symbol + Символ + + libs/ui/src/lib/i18n.ts + 28 + + + + Tag + Тег + + libs/ui/src/lib/i18n.ts + 29 + + + + Year + Рік + + libs/ui/src/lib/i18n.ts + 30 + + + + Years + Роки + + libs/ui/src/lib/i18n.ts + 31 + + + + Yes + Так + + libs/ui/src/lib/i18n.ts + 32 + + + + Buy + Купити + + libs/ui/src/lib/i18n.ts + 35 + + + + Fee + Комісія + + libs/ui/src/lib/i18n.ts + 37 + + + + Valuable + Цінний + + libs/ui/src/lib/i18n.ts + 39 + + + + Liability + Зобов'язання + + libs/ui/src/lib/i18n.ts + 40 + + + + Sell + Продати + + libs/ui/src/lib/i18n.ts + 41 + + + + Cash + Готівка + + libs/ui/src/lib/i18n.ts + 44 + + + + Commodity + Товар + + libs/ui/src/lib/i18n.ts + 45 + + + + Equity + Капітал + + libs/ui/src/lib/i18n.ts + 46 + + + + Fixed Income + Фіксований дохід + + libs/ui/src/lib/i18n.ts + 47 + + + + Liquidity + Ліквідність + + libs/ui/src/lib/i18n.ts + 48 + + + + Real Estate + Нерухомість + + libs/ui/src/lib/i18n.ts + 49 + + + + Bond + Облігація + + libs/ui/src/lib/i18n.ts + 52 + + + + Cryptocurrency + Криптовалюта + + libs/ui/src/lib/i18n.ts + 53 + + + + ETF + ETF + + libs/ui/src/lib/i18n.ts + 54 + + + + Mutual Fund + Взаємний фонд + + libs/ui/src/lib/i18n.ts + 55 + + + + Precious Metal + Дорогоцінний метал + + libs/ui/src/lib/i18n.ts + 56 + + + + Private Equity + Приватний капітал + + libs/ui/src/lib/i18n.ts + 57 + + + + Stock + Акція + + libs/ui/src/lib/i18n.ts + 58 + + + + Africa + Африка + + libs/ui/src/lib/i18n.ts + 65 + + + + Asia + Азія + + libs/ui/src/lib/i18n.ts + 66 + + + + Europe + Європа + + libs/ui/src/lib/i18n.ts + 67 + + + + North America + Північна Америка + + libs/ui/src/lib/i18n.ts + 68 + + + + Oceania + Океанія + + libs/ui/src/lib/i18n.ts + 69 + + + + South America + Південна Америка + + libs/ui/src/lib/i18n.ts + 70 + + + + Australia + Австралія + + libs/ui/src/lib/i18n.ts + 73 + + + + Austria + Австрія + + libs/ui/src/lib/i18n.ts + 74 + + + + Belgium + Бельгія + + libs/ui/src/lib/i18n.ts + 75 + + + + Bulgaria + Болгарія + + libs/ui/src/lib/i18n.ts + 76 + + + + Canada + Канада + + libs/ui/src/lib/i18n.ts + 77 + + + + Czech Republic + Чеська Республіка + + libs/ui/src/lib/i18n.ts + 78 + + + + Finland + Фінляндія + + libs/ui/src/lib/i18n.ts + 79 + + + + France + Франція + + libs/ui/src/lib/i18n.ts + 80 + + + + Germany + Німеччина + + libs/ui/src/lib/i18n.ts + 81 + + + + India + Індія + + libs/ui/src/lib/i18n.ts + 82 + + + + Italy + Італія + + libs/ui/src/lib/i18n.ts + 83 + + + + Japan + Японія + + libs/ui/src/lib/i18n.ts + 84 + + + + Netherlands + Нідерланди + + libs/ui/src/lib/i18n.ts + 85 + + + + New Zealand + Нова Зеландія + + libs/ui/src/lib/i18n.ts + 86 + + + + Poland + Польща + + libs/ui/src/lib/i18n.ts + 87 + + + + Romania + Румунія + + libs/ui/src/lib/i18n.ts + 88 + + + + South Africa + Південна Африка + + libs/ui/src/lib/i18n.ts + 89 + + + + Thailand + Таїланд + + libs/ui/src/lib/i18n.ts + 91 + + + + Ukraine + Україна + + libs/ui/src/lib/i18n.ts + 92 + + + + United States + Сполучені Штати + + libs/ui/src/lib/i18n.ts + 93 + + + + Extreme Fear + Екстремальний страх + + libs/ui/src/lib/i18n.ts + 96 + + + + Extreme Greed + Екстремальна жадібність + + libs/ui/src/lib/i18n.ts + 97 + + + + Neutral + Нейтрально + + libs/ui/src/lib/i18n.ts + 100 + + + + API Key + Ключ API + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Згенерувати ключ API для постачальника даних Ghostfolio Premium для self-hosted середовищ... + + libs/ui/src/lib/membership-card/membership-card.component.html + 26 + + + + Membership + Членство + + libs/ui/src/lib/membership-card/membership-card.component.html + 37 + + + + Time to add your first activity. + Час додати першу активність. + + libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html + 12 + + + + No data available + Дані недоступні + + libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts + 404 + + + libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts + 417 + + + + Oops! Could not find any assets. + Упс! Не вдалося знайти жодного активу. + + libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html + 40 + + + + Show more + Показати більше + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 174 + + + + AI prompt has been copied to the clipboard + Запит AI скопійовано в буфер обміну + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Скопіюйте запит AI в буфер обміну + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Early Access + Ранній доступ + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 16 + + + + + diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index fe58f08fd..0b7afdfa9 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -7,27 +7,27 @@ snake-case apps/client/src/app/app.component.ts - 63 + 65 apps/client/src/app/app.component.ts - 65 + 67 apps/client/src/app/app.component.ts - 69 + 71 apps/client/src/app/app.component.ts - 73 + 75 apps/client/src/app/components/header/header.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 85 + 87 apps/client/src/app/core/paths.ts @@ -35,59 +35,59 @@ apps/client/src/app/pages/about/about-page.component.ts - 45 + 46 apps/client/src/app/pages/about/about-page.component.ts - 50 + 51 apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 apps/client/src/app/pages/about/about-page.component.ts - 74 + 75 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 + 12 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 23 @@ -95,7 +95,7 @@ snake-case apps/client/src/app/app.component.ts - 76 + 78 apps/client/src/app/core/paths.ts @@ -103,23 +103,23 @@ 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 @@ -127,15 +127,15 @@ snake-case apps/client/src/app/app.component.ts - 77 + 79 apps/client/src/app/components/header/header.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 86 + 88 apps/client/src/app/core/paths.ts @@ -143,47 +143,51 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 + 17 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 + 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 - 14 + 15 apps/client/src/app/pages/pricing/pricing-page.component.ts - 39 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 + 24 @@ -191,7 +195,7 @@ snake-case apps/client/src/app/app.component.ts - 70 + 72 apps/client/src/app/core/paths.ts @@ -199,7 +203,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 @@ -207,15 +211,15 @@ snake-case apps/client/src/app/app.component.ts - 78 + 80 apps/client/src/app/components/header/header.component.ts - 82 + 84 apps/client/src/app/components/header/header.component.ts - 87 + 89 apps/client/src/app/core/paths.ts @@ -223,19 +227,19 @@ 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 @@ -247,27 +251,27 @@ snake-case apps/client/src/app/app.component.ts - 79 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 48 + 74 apps/client/src/app/components/header/header.component.ts - 83 + 85 apps/client/src/app/components/header/header.component.ts - 88 + 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 - 38 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -279,39 +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 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 + 15 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + 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 - 25 + 30 @@ -319,7 +327,7 @@ snake-case apps/client/src/app/app.component.ts - 74 + 76 apps/client/src/app/core/paths.ts @@ -327,7 +335,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -335,11 +343,11 @@ snake-case apps/client/src/app/app.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 89 + 91 apps/client/src/app/core/auth.guard.ts @@ -351,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 - 40 + 44 @@ -371,15 +379,15 @@ snake-case apps/client/src/app/app.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 84 + 86 apps/client/src/app/components/header/header.component.ts - 90 + 92 apps/client/src/app/core/paths.ts @@ -387,47 +395,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 + 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 - 13 + 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 @@ -456,18 +464,18 @@ Personal Finance apps/client/src/app/app.component.html - 56 + 57 Markets apps/client/src/app/app.component.html - 60 + 61 apps/client/src/app/components/header/header.component.html - 383 + 398 apps/client/src/app/components/home-market/home-market.html @@ -482,7 +490,7 @@ Resources apps/client/src/app/app.component.html - 63 + 64 apps/client/src/app/components/header/header.component.html @@ -490,7 +498,7 @@ apps/client/src/app/components/header/header.component.html - 286 + 291 apps/client/src/app/pages/resources/overview/resources-overview.component.html @@ -501,22 +509,22 @@ About apps/client/src/app/app.component.html - 69 + 70 apps/client/src/app/components/header/header.component.html - 112 + 117 apps/client/src/app/components/header/header.component.html - 354 + 364 Blog apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -598,6 +606,10 @@ apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html 187 + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html + 167 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -607,7 +619,7 @@ Changelog apps/client/src/app/app.component.html - 76 + 77 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -618,11 +630,11 @@ Features apps/client/src/app/app.component.html - 78 + 79 apps/client/src/app/components/header/header.component.html - 341 + 351 apps/client/src/app/pages/features/features-page.html @@ -633,7 +645,7 @@ Frequently Asked Questions (FAQ) apps/client/src/app/app.component.html - 82 + 83 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -644,7 +656,7 @@ License apps/client/src/app/app.component.html - 87 + 88 apps/client/src/app/pages/about/license/license-page.html @@ -655,19 +667,19 @@ Pricing apps/client/src/app/app.component.html - 96 + 97 apps/client/src/app/components/header/header.component.html - 98 + 99 apps/client/src/app/components/header/header.component.html - 297 + 303 apps/client/src/app/components/header/header.component.html - 368 + 379 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html @@ -678,7 +690,7 @@ Privacy Policy apps/client/src/app/app.component.html - 102 + 103 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -689,7 +701,7 @@ Community apps/client/src/app/app.component.html - 120 + 121 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -717,26 +729,30 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 105 + 104 apps/client/src/app/components/user-account-settings/user-account-settings.html - 110 + 108 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 112 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 117 apps/client/src/app/pages/features/features-page.html - 259 + 260 The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. apps/client/src/app/app.component.html - 199 + 205 @@ -794,7 +810,7 @@ Do you really want to revoke this granted access? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 78 @@ -835,7 +851,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 @@ -903,7 +919,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 @@ -939,7 +955,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 12 + 16 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 88 @@ -957,11 +977,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 @@ -1040,7 +1060,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 26 + 25 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 102 @@ -1113,7 +1137,7 @@ Do you really want to delete this account? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -1142,7 +1166,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 @@ -1165,7 +1189,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 @@ -1231,16 +1255,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 @@ -1253,13 +1273,13 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 - - - Market Price - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 + 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/admin-market-data.html 104 @@ -1268,16 +1288,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 @@ -1311,16 +1331,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 @@ -1336,7 +1356,7 @@ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 83 + 135 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -1350,26 +1370,30 @@ 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 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 @@ -1383,7 +1407,7 @@ Filter by... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -1394,11 +1418,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 @@ -1408,6 +1432,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 @@ -1417,11 +1445,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 @@ -1440,7 +1468,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 @@ -1465,8 +1493,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 @@ -1511,8 +1539,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 + 262 @@ -1531,10 +1559,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 @@ -1543,12 +1567,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 @@ -1559,7 +1587,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 @@ -1574,11 +1602,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 @@ -1593,11 +1621,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 @@ -1608,28 +1636,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 @@ -1676,49 +1704,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 @@ -1838,7 +1866,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 @@ -1865,7 +1893,7 @@ apps/client/src/app/components/header/header.component.html - 258 + 263 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1875,16 +1903,12 @@ 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? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -1905,14 +1929,14 @@ Platforms apps/client/src/app/components/admin-settings/admin-settings.component.html - 39 + 81 Tags apps/client/src/app/components/admin-settings/admin-settings.component.html - 45 + 87 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1926,10 +1950,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 - 127 - Add Tag @@ -1942,7 +1962,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -1963,7 +1983,7 @@ Do you really want to delete this user? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 139 @@ -1991,21 +2011,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 @@ -2037,22 +2057,22 @@ 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 - 41 + 46 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 @@ -2070,7 +2090,7 @@ apps/client/src/app/components/header/header.component.html - 240 + 245 @@ -2081,7 +2101,7 @@ apps/client/src/app/components/header/header.component.html - 250 + 255 @@ -2092,14 +2112,14 @@ apps/client/src/app/components/header/header.component.html - 274 + 279 Me apps/client/src/app/components/header/header.component.html - 206 + 211 @@ -2110,21 +2130,21 @@ apps/client/src/app/components/header/header.component.html - 224 + 229 My Ghostfolio apps/client/src/app/components/header/header.component.html - 265 + 270 About Ghostfolio apps/client/src/app/components/header/header.component.html - 306 + 316 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -2135,7 +2155,7 @@ Sign in apps/client/src/app/components/header/header.component.html - 397 + 412 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2146,43 +2166,43 @@ Get started apps/client/src/app/components/header/header.component.html - 407 + 422 Sign in apps/client/src/app/app-routing.module.ts - 141 + 150 apps/client/src/app/components/header/header.component.ts - 229 + 231 Oops! Incorrect Security Token. apps/client/src/app/components/header/header.component.ts - 244 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 159 Manage Activities apps/client/src/app/components/home-holdings/home-holdings.html - 65 + 63 Fear apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2193,7 +2213,7 @@ Greed apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2292,14 +2312,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 @@ -2310,7 +2330,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 255 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2319,6 +2339,10 @@ or + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 36 + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 31 @@ -2415,8 +2439,8 @@ 84 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 198 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 154 @@ -2458,8 +2482,8 @@ 89 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 122 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 34 @@ -2545,11 +2569,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 + 64 @@ -2628,7 +2652,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 203 + 218 @@ -2647,7 +2671,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 207 + 222 @@ -2662,7 +2686,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 211 + 226 @@ -2677,7 +2701,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 215 + 230 @@ -2688,7 +2712,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 230 + 245 @@ -2703,7 +2727,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 242 + 257 @@ -2724,7 +2748,7 @@ Upgrade Plan apps/client/src/app/components/header/header.component.html - 180 + 185 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html @@ -2732,66 +2756,66 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html - 278 + 293 Today apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 210 + 220 YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 1Y apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 5Y apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 246 + 256 Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 249 + 259 @@ -2812,74 +2836,74 @@ Granted Access apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 - - Please enter your coupon code: + + Please enter your coupon code. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 115 + 213 Could not redeem coupon code apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 125 + 177 Coupon code has been redeemed apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 137 + 190 Reload apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 191 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 - 264 + 279 Try Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 41 + 53 Redeem Coupon apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 67 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 + 248 @@ -2921,49 +2945,49 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 127 Date and number format apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 129 Appearance apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 152 Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 166 Light apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 167 Dark apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 168 Zen Mode apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 apps/client/src/app/pages/features/features-page.html @@ -2974,35 +2998,35 @@ Distraction-free experience for turbulent times apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 178 Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 194 Sign in with fingerprint apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 195 Experimental Features apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 211 Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 212 @@ -3013,14 +3037,14 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 228 Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 236 @@ -3042,7 +3066,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -3053,18 +3077,22 @@ 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 + 152 + apps/client/src/app/core/http-response.interceptor.ts 81 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -3075,7 +3103,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 @@ -3086,7 +3114,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 @@ -3097,7 +3125,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 @@ -3108,7 +3136,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 @@ -3147,7 +3175,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -3207,7 +3235,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3218,7 +3246,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 @@ -3226,7 +3254,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -3237,22 +3265,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 @@ -3260,7 +3288,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -3314,7 +3342,7 @@ Features apps/client/src/app/app-routing.module.ts - 65 + 74 @@ -3412,14 +3440,14 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 279 Get Started apps/client/src/app/pages/features/features-page.html - 303 + 304 apps/client/src/app/pages/public/public-page.html @@ -3438,11 +3466,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 @@ -3453,7 +3481,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3464,7 +3492,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3476,7 +3504,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -3522,7 +3550,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 306 + 329 @@ -3854,14 +3882,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 @@ -3927,6 +3955,10 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Update Cash Balance @@ -3983,35 +4015,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 @@ -4034,6 +4066,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 32 + + libs/ui/src/lib/assistant/assistant.html + 127 + Load Dividends @@ -4089,7 +4125,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -4215,7 +4251,7 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 88 + 181 @@ -4247,14 +4283,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 + 41 libs/ui/src/lib/i18n.ts @@ -4265,21 +4301,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 + 54 Yearly apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 55 @@ -4293,56 +4329,49 @@ Top apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 Bottom apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 Portfolio Evolution apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 Investment Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 Current Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 Longest Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 Dividend Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 - - - - FIRE - - apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 13 + 383 @@ -4366,25 +4395,18 @@ 40 - - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 - - Currency Cluster Risks - apps/client/src/app/pages/portfolio/fire/fire-page.html - 141 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 58 Account Cluster Risks - apps/client/src/app/pages/portfolio/fire/fire-page.html - 160 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 106 @@ -4449,11 +4471,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 129 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 191 + 206 @@ -4464,11 +4486,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 133 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 195 + 210 @@ -4479,11 +4501,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 137 + 142 apps/client/src/app/pages/pricing/pricing-page.html - 199 + 214 @@ -4494,11 +4516,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 141 + 146 apps/client/src/app/pages/pricing/pricing-page.html - 219 + 234 @@ -4523,61 +4545,61 @@ apps/client/src/app/pages/pricing/pricing-page.html - 153 + 158 For new investors who are just getting started with trading. apps/client/src/app/pages/pricing/pricing-page.html - 123 + 128 Fully managed Ghostfolio cloud offering. apps/client/src/app/pages/pricing/pricing-page.html - 152 + 157 apps/client/src/app/pages/pricing/pricing-page.html - 251 + 266 For ambitious investors who need the full picture of their financial assets. apps/client/src/app/pages/pricing/pricing-page.html - 184 + 199 Email and Chat Support apps/client/src/app/pages/pricing/pricing-page.html - 247 + 262 Renew Plan apps/client/src/app/components/header/header.component.html - 186 + 191 apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 299 One-time payment, no auto-renewal. apps/client/src/app/pages/pricing/pricing-page.html - 288 + 303 @@ -4591,7 +4613,7 @@ It’s free. apps/client/src/app/pages/pricing/pricing-page.html - 309 + 332 @@ -4679,7 +4701,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -4939,7 +4961,7 @@ Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -4950,7 +4972,7 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -4986,7 +5008,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -4997,7 +5019,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5032,7 +5054,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -5104,14 +5126,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 - 139 + 143 @@ -5213,7 +5235,7 @@ Interest libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -5224,7 +5246,7 @@ Savings libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -5235,7 +5257,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 46 + 40 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 116 @@ -5365,7 +5391,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -5603,14 +5629,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 + 28 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -5624,11 +5654,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 @@ -5649,21 +5679,21 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 326 Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 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 @@ -5703,106 +5733,106 @@ 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 Absolute Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 Absolute Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 Absolute Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 Asset Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 Net Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 Currency Performance apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 Year to date libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 Week to date libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 Month to date libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 MTD libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 WTD libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -5827,7 +5857,7 @@ Reset Filters libs/ui/src/lib/assistant/assistant.html - 157 + 185 @@ -5841,35 +5871,28 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 years libs/ui/src/lib/assistant/assistant.component.ts - 246 + 256 Apply Filters libs/ui/src/lib/assistant/assistant.html - 167 - - - - Asset Classes - - libs/ui/src/lib/assistant/assistant.html - 138 + 195 self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -5887,7 +5910,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 @@ -5905,14 +5928,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 @@ -5937,14 +5960,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 @@ -6014,28 +6037,28 @@ Internationalization apps/client/src/app/app-routing.module.ts - 79 + 88 Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 283 Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 174 Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 248 @@ -6063,14 +6086,14 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 302 Show more libs/ui/src/lib/top-holdings/top-holdings.component.html - 81 + 174 @@ -6098,21 +6121,21 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 Chart apps/client/src/app/components/home-holdings/home-holdings.html - 20 + 19 Table apps/client/src/app/components/home-holdings/home-holdings.html - 17 + 16 @@ -6126,14 +6149,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 @@ -6175,35 +6198,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 @@ -6231,28 +6254,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 @@ -6280,7 +6303,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6294,7 +6317,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6329,7 +6352,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6350,7 +6373,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 317 @@ -6370,8 +6393,8 @@ Inactive - apps/client/src/app/pages/portfolio/fire/fire-page.html - 217 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 173 @@ -6399,7 +6422,7 @@ Threshold Max apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 44 + 92 @@ -6420,7 +6443,7 @@ Threshold Min apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 9 + 54 @@ -6448,14 +6471,14 @@ Close apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 77 + 129 No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 62 + 74 @@ -6609,7 +6632,7 @@ Oops! Could not find any assets. libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html - 37 + 40 @@ -6619,13 +6642,6 @@ 23 - - Notify me - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 32 - - Ukraine @@ -6633,11 +6649,11 @@ 92 - - Set API Key + + Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 70 @@ -6647,13 +6663,6 @@ 24 - - NEW - - apps/client/src/app/components/admin-settings/admin-settings.component.html - 14 - - Data Providers @@ -6676,7 +6685,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -6684,7 +6693,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 @@ -6699,7 +6708,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -6707,20 +6716,13 @@ 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 28 - - Allocation Cluster Risks - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 179 - - Skip @@ -6728,6 +6730,209 @@ 83 + + Threshold range + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 9 + + + + Economic Market Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 130 + + + + 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. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 5 + + + + Please enter your Ghostfolio API key: + + apps/client/src/app/pages/api/api-page.component.ts + 40 + + + + of + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 42 + + + + Notify me + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 32 + + + + Do you really want to delete the API key? + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 93 + + + + I have an API key + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 43 + + + + Remove API key + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 58 + + + + daily requests + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 44 + + + + 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 + 139 + + + + Do you really want to generate a new API key? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 162 + + + + Ghostfolio Premium Data Provider API Key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 157 + + + + Set this API key in your self-hosted environment: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 154 + + + + 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 + + + + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 62 + + + + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 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 + 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 + + + + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + + + Early Access + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 16 + + diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 876bcd844..9aaa47267 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -8,27 +8,27 @@ snake-case apps/client/src/app/app.component.ts - 63 + 65 apps/client/src/app/app.component.ts - 65 + 67 apps/client/src/app/app.component.ts - 69 + 71 apps/client/src/app/app.component.ts - 73 + 75 apps/client/src/app/components/header/header.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 85 + 87 apps/client/src/app/core/paths.ts @@ -36,59 +36,59 @@ apps/client/src/app/pages/about/about-page.component.ts - 45 + 46 apps/client/src/app/pages/about/about-page.component.ts - 50 + 51 apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 apps/client/src/app/pages/about/about-page.component.ts - 74 + 75 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 + 12 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 + 23 @@ -97,7 +97,7 @@ snake-case apps/client/src/app/app.component.ts - 76 + 78 apps/client/src/app/core/paths.ts @@ -105,23 +105,23 @@ 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 @@ -130,15 +130,15 @@ snake-case apps/client/src/app/app.component.ts - 77 + 79 apps/client/src/app/components/header/header.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 86 + 88 apps/client/src/app/core/paths.ts @@ -146,47 +146,51 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 14 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 + 17 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 + 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 - 14 + 15 apps/client/src/app/pages/pricing/pricing-page.component.ts - 39 + 43 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 + 24 @@ -195,7 +199,7 @@ snake-case apps/client/src/app/app.component.ts - 70 + 72 apps/client/src/app/core/paths.ts @@ -203,7 +207,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 55 + 56 @@ -212,15 +216,15 @@ snake-case apps/client/src/app/app.component.ts - 78 + 80 apps/client/src/app/components/header/header.component.ts - 82 + 84 apps/client/src/app/components/header/header.component.ts - 87 + 89 apps/client/src/app/core/paths.ts @@ -228,19 +232,19 @@ 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 @@ -253,27 +257,27 @@ snake-case apps/client/src/app/app.component.ts - 79 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 48 + 74 apps/client/src/app/components/header/header.component.ts - 83 + 85 apps/client/src/app/components/header/header.component.ts - 88 + 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 - 38 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -285,39 +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 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 + 15 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + 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 - 25 + 30 @@ -326,7 +334,7 @@ snake-case apps/client/src/app/app.component.ts - 74 + 76 apps/client/src/app/core/paths.ts @@ -334,7 +342,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -343,11 +351,11 @@ snake-case apps/client/src/app/app.component.ts - 80 + 82 apps/client/src/app/components/header/header.component.ts - 89 + 91 apps/client/src/app/core/auth.guard.ts @@ -359,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 - 40 + 44 @@ -380,15 +388,15 @@ snake-case apps/client/src/app/app.component.ts - 81 + 83 apps/client/src/app/components/header/header.component.ts - 84 + 86 apps/client/src/app/components/header/header.component.ts - 90 + 92 apps/client/src/app/core/paths.ts @@ -396,47 +404,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 + 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 - 13 + 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 @@ -468,7 +476,7 @@ 个人财务 apps/client/src/app/app.component.html - 56 + 57 @@ -476,11 +484,11 @@ 市场 apps/client/src/app/app.component.html - 60 + 61 apps/client/src/app/components/header/header.component.html - 383 + 398 apps/client/src/app/components/home-market/home-market.html @@ -496,7 +504,7 @@ 资源 apps/client/src/app/app.component.html - 63 + 64 apps/client/src/app/components/header/header.component.html @@ -504,7 +512,7 @@ apps/client/src/app/components/header/header.component.html - 286 + 291 apps/client/src/app/pages/resources/overview/resources-overview.component.html @@ -516,15 +524,15 @@ 关于 apps/client/src/app/app.component.html - 69 + 70 apps/client/src/app/components/header/header.component.html - 112 + 117 apps/client/src/app/components/header/header.component.html - 354 + 364 @@ -532,7 +540,7 @@ 博客 apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -614,6 +622,10 @@ apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html 187 + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html + 167 + apps/client/src/app/pages/blog/blog-page.html 5 @@ -624,7 +636,7 @@ 变更日志 apps/client/src/app/app.component.html - 76 + 77 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -636,11 +648,11 @@ 功能 apps/client/src/app/app.component.html - 78 + 79 apps/client/src/app/components/header/header.component.html - 341 + 351 apps/client/src/app/pages/features/features-page.html @@ -652,7 +664,7 @@ 常见问题 (FAQ) apps/client/src/app/app.component.html - 82 + 83 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -664,7 +676,7 @@ 许可 apps/client/src/app/app.component.html - 87 + 88 apps/client/src/app/pages/about/license/license-page.html @@ -676,19 +688,19 @@ 价钱 apps/client/src/app/app.component.html - 96 + 97 apps/client/src/app/components/header/header.component.html - 98 + 99 apps/client/src/app/components/header/header.component.html - 297 + 303 apps/client/src/app/components/header/header.component.html - 368 + 379 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html @@ -700,7 +712,7 @@ 隐私政策 apps/client/src/app/app.component.html - 102 + 103 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -712,7 +724,7 @@ 社区 apps/client/src/app/app.component.html - 120 + 121 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -740,19 +752,23 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 105 + 104 apps/client/src/app/components/user-account-settings/user-account-settings.html - 110 + 108 apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 112 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 117 apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -760,7 +776,7 @@ 交易损失的风险可能很大。不建议将短期内可能需要的资金进行投资。 apps/client/src/app/app.component.html - 199 + 205 @@ -824,7 +840,7 @@ 您真的要撤销此授予的访问权限吗? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 78 @@ -868,7 +884,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 @@ -940,7 +956,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 @@ -976,7 +992,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 12 + 16 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 88 @@ -996,11 +1016,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 @@ -1080,7 +1100,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 26 + 25 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 102 @@ -1156,7 +1180,7 @@ 您真的要删除该帐户吗? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -1188,7 +1212,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 @@ -1212,7 +1236,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 @@ -1287,17 +1311,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 @@ -1310,14 +1330,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 - - - Market Price - 市场价 - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 + 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/admin-market-data.html 104 @@ -1326,17 +1346,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 @@ -1370,17 +1390,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 @@ -1396,7 +1416,7 @@ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 83 + 135 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -1410,13 +1430,17 @@ 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 货币 apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -1424,7 +1448,7 @@ 没有国家的 ETF apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -1432,7 +1456,7 @@ 无行业类别的 ETF apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -1448,7 +1472,7 @@ 过滤... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -1460,11 +1484,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 @@ -1474,6 +1498,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 @@ -1484,11 +1512,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 @@ -1508,7 +1536,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 @@ -1535,8 +1563,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 @@ -1587,8 +1615,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 + 262 @@ -1610,10 +1638,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 @@ -1622,13 +1646,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 @@ -1640,7 +1668,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 @@ -1656,11 +1684,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 @@ -1676,11 +1704,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 @@ -1692,7 +1720,7 @@ 基准 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -1700,7 +1728,7 @@ 符号映射 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -1708,7 +1736,7 @@ 刮削配置 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -1716,7 +1744,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 @@ -1768,7 +1796,7 @@ 请添加货币: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -1776,7 +1804,7 @@ 是无效的货币! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -1784,7 +1812,7 @@ 您确实要删除此优惠券吗? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -1792,7 +1820,7 @@ 您真的要删除该货币吗? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -1800,7 +1828,7 @@ 您真的要删除这条系统消息吗? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -1808,7 +1836,7 @@ 您真的要刷新缓存吗? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -1816,7 +1844,7 @@ 请设置您的系统消息: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -1952,7 +1980,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 @@ -1980,7 +2008,7 @@ apps/client/src/app/components/header/header.component.html - 258 + 263 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1990,17 +2018,13 @@ 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? 您真的要删除这个平台吗? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -2024,7 +2048,7 @@ 平台 apps/client/src/app/components/admin-settings/admin-settings.component.html - 39 + 81 @@ -2032,7 +2056,7 @@ 标签 apps/client/src/app/components/admin-settings/admin-settings.component.html - 45 + 87 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2046,10 +2070,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 - 127 - Add Tag @@ -2064,7 +2084,7 @@ 您真的要删除此标签吗? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -2088,7 +2108,7 @@ 您真的要删除该用户吗? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 139 @@ -2120,7 +2140,7 @@ 最后请求 apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -2128,7 +2148,7 @@ 模拟用户 apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -2136,7 +2156,7 @@ 删除用户 apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -2172,15 +2192,15 @@ 文件夹 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 116 + 117 apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 41 + 46 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2188,7 +2208,7 @@ 基准 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2208,7 +2228,7 @@ apps/client/src/app/components/header/header.component.html - 240 + 245 @@ -2220,7 +2240,7 @@ apps/client/src/app/components/header/header.component.html - 250 + 255 @@ -2232,7 +2252,7 @@ apps/client/src/app/components/header/header.component.html - 274 + 279 @@ -2240,7 +2260,7 @@ apps/client/src/app/components/header/header.component.html - 206 + 211 @@ -2252,7 +2272,7 @@ apps/client/src/app/components/header/header.component.html - 224 + 229 @@ -2260,7 +2280,7 @@ 我的 Ghostfolio apps/client/src/app/components/header/header.component.html - 265 + 270 @@ -2268,7 +2288,7 @@ 关于 Ghostfolio apps/client/src/app/components/header/header.component.html - 306 + 316 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -2280,7 +2300,7 @@ 登入 apps/client/src/app/components/header/header.component.html - 397 + 412 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2292,7 +2312,7 @@ 开始使用 apps/client/src/app/components/header/header.component.html - 407 + 422 @@ -2300,11 +2320,11 @@ 登入 apps/client/src/app/app-routing.module.ts - 141 + 150 apps/client/src/app/components/header/header.component.ts - 229 + 231 @@ -2312,11 +2332,11 @@ 哎呀!安全令牌不正确。 apps/client/src/app/components/header/header.component.ts - 244 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 159 @@ -2324,7 +2344,7 @@ 管理活动 apps/client/src/app/components/home-holdings/home-holdings.html - 65 + 63 @@ -2332,7 +2352,7 @@ 恐惧 apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2344,7 +2364,7 @@ 贪婪 apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2456,7 +2476,7 @@ 总金额 apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -2464,7 +2484,7 @@ 储蓄率 apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -2476,7 +2496,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 251 + 255 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2486,6 +2506,10 @@ or + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 36 + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html 31 @@ -2591,8 +2615,8 @@ 84 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 198 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 154 @@ -2639,8 +2663,8 @@ 89 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 122 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 34 @@ -2735,12 +2759,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 + 64 @@ -2828,7 +2852,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 203 + 218 @@ -2848,7 +2872,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 207 + 222 @@ -2864,7 +2888,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 211 + 226 @@ -2880,7 +2904,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 215 + 230 @@ -2892,7 +2916,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 230 + 245 @@ -2908,7 +2932,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 242 + 257 @@ -2932,7 +2956,7 @@ 升级计划 apps/client/src/app/components/header/header.component.html - 180 + 185 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html @@ -2940,11 +2964,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html - 278 + 293 @@ -2952,11 +2976,11 @@ 今天 apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 210 + 220 @@ -2964,11 +2988,11 @@ 年初至今 apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -2976,11 +3000,11 @@ 1年 apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -2988,11 +3012,11 @@ 5年 apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 246 + 256 @@ -3000,11 +3024,11 @@ 最大限度 apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 249 + 259 @@ -3028,15 +3052,15 @@ 授予访问权限 apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 - - Please enter your coupon code: - 请输入您的优惠券代码: + + Please enter your coupon code. + 请输入您的优惠券代码: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 115 + 213 @@ -3044,7 +3068,7 @@ 无法兑换优惠券代码 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 125 + 177 @@ -3052,7 +3076,7 @@ 优惠券代码已兑换 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 137 + 190 @@ -3060,7 +3084,7 @@ 重新加载 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 191 @@ -3068,11 +3092,11 @@ 每年 apps/client/src/app/components/user-account-membership/user-account-membership.html - 34 + 36 apps/client/src/app/pages/pricing/pricing-page.html - 264 + 279 @@ -3080,7 +3104,7 @@ 尝试高级版 apps/client/src/app/components/user-account-membership/user-account-membership.html - 41 + 53 @@ -3088,7 +3112,7 @@ 兑换优惠券 apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 67 @@ -3096,7 +3120,7 @@ 自动 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -3104,7 +3128,7 @@ 您确实要删除此登录方法吗? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 248 @@ -3152,7 +3176,7 @@ 语言环境 apps/client/src/app/components/user-account-settings/user-account-settings.html - 123 + 127 @@ -3160,7 +3184,7 @@ 日期和数字格式 apps/client/src/app/components/user-account-settings/user-account-settings.html - 125 + 129 @@ -3168,7 +3192,7 @@ 外貌 apps/client/src/app/components/user-account-settings/user-account-settings.html - 148 + 152 @@ -3176,7 +3200,7 @@ 自动 apps/client/src/app/components/user-account-settings/user-account-settings.html - 162 + 166 @@ -3184,7 +3208,7 @@ 明亮 apps/client/src/app/components/user-account-settings/user-account-settings.html - 163 + 167 @@ -3192,7 +3216,7 @@ 黑暗 apps/client/src/app/components/user-account-settings/user-account-settings.html - 164 + 168 @@ -3200,7 +3224,7 @@ 极简模式 apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 apps/client/src/app/pages/features/features-page.html @@ -3212,7 +3236,7 @@ 动荡时期的无干扰体验 apps/client/src/app/components/user-account-settings/user-account-settings.html - 174 + 178 @@ -3220,7 +3244,7 @@ 生物识别认证 apps/client/src/app/components/user-account-settings/user-account-settings.html - 190 + 194 @@ -3228,7 +3252,7 @@ 使用指纹登录 apps/client/src/app/components/user-account-settings/user-account-settings.html - 191 + 195 @@ -3236,7 +3260,7 @@ 实验性功能 apps/client/src/app/components/user-account-settings/user-account-settings.html - 207 + 211 @@ -3244,7 +3268,7 @@ 预览即将推出的功能 apps/client/src/app/components/user-account-settings/user-account-settings.html - 208 + 212 @@ -3256,7 +3280,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 224 + 228 @@ -3264,7 +3288,7 @@ 导出数据 apps/client/src/app/components/user-account-settings/user-account-settings.html - 232 + 236 @@ -3288,7 +3312,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -3300,19 +3324,23 @@ 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 + 152 + apps/client/src/app/core/http-response.interceptor.ts 81 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -3324,7 +3352,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 @@ -3336,7 +3364,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 @@ -3348,7 +3376,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 @@ -3360,7 +3388,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 @@ -3404,7 +3432,7 @@ 糟糕,现金余额转账失败。 apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -3472,7 +3500,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3484,7 +3512,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 @@ -3492,7 +3520,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -3504,7 +3532,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3512,15 +3540,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 @@ -3528,7 +3556,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -3588,7 +3616,7 @@ 功能 apps/client/src/app/app-routing.module.ts - 65 + 74 @@ -3700,7 +3728,7 @@ 开源软件 apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -3708,7 +3736,7 @@ 立即开始 apps/client/src/app/pages/features/features-page.html - 303 + 304 apps/client/src/app/pages/public/public-page.html @@ -3728,11 +3756,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 @@ -3744,7 +3772,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3756,7 +3784,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3768,7 +3796,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -3820,7 +3848,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 306 + 329 @@ -4196,7 +4224,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -4204,7 +4232,7 @@ 您真的要删除所有活动吗? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -4278,6 +4306,10 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Update Cash Balance @@ -4340,7 +4372,7 @@ 导入活动 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -4348,7 +4380,7 @@ 导入股息 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 @@ -4356,7 +4388,7 @@ 正在导入数据... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -4364,7 +4396,7 @@ 导入已完成 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -4372,7 +4404,7 @@ 验证数据... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -4398,6 +4430,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 32 + + libs/ui/src/lib/assistant/assistant.html + 127 + Load Dividends @@ -4460,7 +4496,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -4600,7 +4636,7 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 88 + 181 @@ -4636,7 +4672,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -4644,7 +4680,7 @@ 股息 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 41 libs/ui/src/lib/i18n.ts @@ -4656,7 +4692,7 @@ 订金 libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -4664,7 +4700,7 @@ 每月 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 54 @@ -4672,7 +4708,7 @@ 每年 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 55 @@ -4688,7 +4724,7 @@ 顶部 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 165 + 197 @@ -4696,7 +4732,7 @@ 底部 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 214 + 246 @@ -4704,7 +4740,7 @@ 投资组合演变 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 267 + 299 @@ -4712,7 +4748,7 @@ 投资时间表 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 294 + 326 @@ -4720,7 +4756,7 @@ 当前连胜 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 315 + 347 @@ -4728,7 +4764,7 @@ 最长连续纪录 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 324 + 356 @@ -4736,15 +4772,7 @@ 股息时间表 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 351 - - - - FIRE - 财务独立 - - apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 13 + 383 @@ -4771,28 +4799,20 @@ 40 - - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - Ghostfolio X-ray 使用静态分析来识别您的投资组合中的潜在问题和风险。 - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 - - Currency Cluster Risks 货币集群风险 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 141 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 58 Account Cluster Risks 账户集群风险 - apps/client/src/app/pages/portfolio/fire/fire-page.html - 160 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 106 @@ -4864,11 +4884,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 129 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 191 + 206 @@ -4880,11 +4900,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 133 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 195 + 210 @@ -4896,11 +4916,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 137 + 142 apps/client/src/app/pages/pricing/pricing-page.html - 199 + 214 @@ -4912,11 +4932,11 @@ apps/client/src/app/pages/pricing/pricing-page.html - 141 + 146 apps/client/src/app/pages/pricing/pricing-page.html - 219 + 234 @@ -4944,7 +4964,7 @@ apps/client/src/app/pages/pricing/pricing-page.html - 153 + 158 @@ -4952,7 +4972,7 @@ 适合刚开始交易的新投资者。 apps/client/src/app/pages/pricing/pricing-page.html - 123 + 128 @@ -4960,11 +4980,11 @@ 完全托管的 Ghostfolio 云产品。 apps/client/src/app/pages/pricing/pricing-page.html - 152 + 157 apps/client/src/app/pages/pricing/pricing-page.html - 251 + 266 @@ -4972,7 +4992,7 @@ 适合需要全面了解其金融资产的雄心勃勃的投资者。 apps/client/src/app/pages/pricing/pricing-page.html - 184 + 199 @@ -4980,7 +5000,7 @@ 电子邮件和聊天支持 apps/client/src/app/pages/pricing/pricing-page.html - 247 + 262 @@ -4988,15 +5008,15 @@ 更新计划 apps/client/src/app/components/header/header.component.html - 186 + 191 apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 299 @@ -5004,7 +5024,7 @@ 一次性付款,无自动续订。 apps/client/src/app/pages/pricing/pricing-page.html - 288 + 303 @@ -5020,7 +5040,7 @@ 免费。 apps/client/src/app/pages/pricing/pricing-page.html - 309 + 332 @@ -5120,7 +5140,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5408,7 +5428,7 @@ 瑞士 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5420,7 +5440,7 @@ 全球的 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5460,7 +5480,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5472,7 +5492,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5512,7 +5532,7 @@ 您确实要删除该帐户余额吗? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -5592,7 +5612,7 @@ 您确实要删除此活动吗? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -5600,7 +5620,7 @@ 查找持有... libs/ui/src/lib/assistant/assistant.component.ts - 139 + 143 @@ -5716,7 +5736,7 @@ 利息 libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -5728,7 +5748,7 @@ 储蓄 libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -5740,7 +5760,11 @@ libs/ui/src/lib/top-holdings/top-holdings.component.html - 46 + 40 + + + libs/ui/src/lib/top-holdings/top-holdings.component.html + 116 @@ -5888,7 +5912,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -6160,15 +6184,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 + 28 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -6184,11 +6212,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 @@ -6212,7 +6240,7 @@ 当前市场价格为 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 326 @@ -6220,7 +6248,7 @@ 测试 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6228,7 +6256,7 @@ 哎呀!无法授予访问权限。 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 90 + 91 @@ -6272,7 +6300,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6280,7 +6308,7 @@ 市场数据延迟 apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6288,7 +6316,7 @@ 绝对货币表现 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 71 + 103 @@ -6296,7 +6324,7 @@ 绝对净性能 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 118 + 150 @@ -6304,7 +6332,7 @@ 绝对资产绩效 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 28 + 60 @@ -6312,15 +6340,15 @@ 投资 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 46 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 60 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6328,7 +6356,7 @@ 资产绩效 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 49 + 81 @@ -6336,7 +6364,7 @@ 净绩效 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 137 + 169 @@ -6344,7 +6372,7 @@ 货币表现 apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 95 + 127 @@ -6352,7 +6380,7 @@ 今年迄今为止 libs/ui/src/lib/assistant/assistant.component.ts - 220 + 230 @@ -6360,7 +6388,7 @@ 本周至今 libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6368,7 +6396,7 @@ 本月至今 libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6376,7 +6404,7 @@ 最大输运量 libs/ui/src/lib/assistant/assistant.component.ts - 216 + 226 @@ -6384,7 +6412,7 @@ 世界贸易组织 libs/ui/src/lib/assistant/assistant.component.ts - 212 + 222 @@ -6412,7 +6440,7 @@ 重置过滤器 libs/ui/src/lib/assistant/assistant.html - 157 + 185 @@ -6428,7 +6456,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 224 + 234 @@ -6436,7 +6464,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 246 + 256 @@ -6444,15 +6472,7 @@ 应用过滤器 libs/ui/src/lib/assistant/assistant.html - 167 - - - - Asset Classes - 资产类别 - - libs/ui/src/lib/assistant/assistant.html - 138 + 195 @@ -6460,7 +6480,7 @@ 自托管 apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6480,7 +6500,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 @@ -6500,7 +6520,7 @@ 一般的 apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6508,7 +6528,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 @@ -6536,7 +6556,7 @@ 关闭 apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6544,7 +6564,7 @@ 积极的 apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6624,7 +6644,7 @@ Internationalization apps/client/src/app/app-routing.module.ts - 79 + 88 @@ -6632,7 +6652,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 174 @@ -6640,7 +6660,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 244 + 248 @@ -6648,7 +6668,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 279 + 283 @@ -6680,7 +6700,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 302 @@ -6688,7 +6708,7 @@ Show more libs/ui/src/lib/top-holdings/top-holdings.component.html - 81 + 174 @@ -6696,7 +6716,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6728,7 +6748,7 @@ Table apps/client/src/app/components/home-holdings/home-holdings.html - 17 + 16 @@ -6736,7 +6756,7 @@ Chart apps/client/src/app/components/home-holdings/home-holdings.html - 20 + 19 @@ -6752,7 +6772,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6760,7 +6780,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6768,7 +6788,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6776,7 +6796,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6784,7 +6804,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6792,7 +6812,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6800,7 +6820,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6808,7 +6828,7 @@ Personal Finance apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6816,7 +6836,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6824,7 +6844,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6832,7 +6852,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6840,7 +6860,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6848,7 +6868,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6856,7 +6876,7 @@ Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7008,7 +7028,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 317 @@ -7031,8 +7051,8 @@ Inactive Inactive - apps/client/src/app/pages/portfolio/fire/fire-page.html - 217 + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 173 @@ -7096,7 +7116,7 @@ Threshold Min apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 9 + 54 @@ -7104,7 +7124,7 @@ Threshold Max apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 44 + 92 @@ -7112,7 +7132,7 @@ Close apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html - 77 + 129 @@ -7128,7 +7148,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 62 + 74 @@ -7304,7 +7324,7 @@ Oops! Could not find any assets. libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html - 37 + 40 @@ -7315,20 +7335,12 @@ 4 - - NEW - NEW - - apps/client/src/app/components/admin-settings/admin-settings.component.html - 14 - - - - Set API Key - Set API Key + + Set API key + Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 70 @@ -7339,14 +7351,6 @@ 23 - - Notify me - Notify me - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 32 - - Get access to 100’000+ tickers from over 50 exchanges Get access to 100’000+ tickers from over 50 exchanges @@ -7379,14 +7383,6 @@ 93 - - Allocation Cluster Risks - Allocation Cluster Risks - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 179 - - Glossary Glossary @@ -7396,7 +7392,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7408,7 +7404,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7417,7 +7413,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,13 +7426,245 @@ 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 21 + + Threshold range + Threshold range + + apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html + 9 + + + + 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. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 5 + + + + Economic Market Cluster Risks + Economic Market Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 130 + + + + of + of + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 42 + + + + daily requests + daily requests + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 44 + + + + Remove API key + Remove API key + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 58 + + + + Do you really want to delete the API key? + Do you really want to delete the API key? + + apps/client/src/app/components/admin-settings/admin-settings.component.ts + 93 + + + + Please enter your Ghostfolio API key: + Please enter your Ghostfolio API key: + + apps/client/src/app/pages/api/api-page.component.ts + 40 + + + + Notify me + Notify me + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html + 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 + 43 + + + + 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 + 139 + + + + 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 + 154 + + + + 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 + 157 + + + + 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 + 162 + + + + 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 + + + + 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 + + + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 62 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 135 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 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 + + + + AI prompt has been copied to the clipboard + AI prompt has been copied to the clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 149 + + + + Copy AI prompt to clipboard + Copy AI prompt to clipboard + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Link has been copied to the clipboard + Link has been copied to the clipboard + + apps/client/src/app/components/access-table/access-table.component.ts + 64 + + + + Early Access + Early Access + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 16 + + diff --git a/apps/client/src/styles/theme.scss b/apps/client/src/styles/theme.scss index 54adf601a..6b41fccaa 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/apps/ui-e2e/.eslintrc.json b/apps/ui-e2e/.eslintrc.json deleted file mode 100644 index e1ff28793..000000000 --- a/apps/ui-e2e/.eslintrc.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "extends": ["plugin:cypress/recommended", "../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "parserOptions": { - "project": ["apps/ui-e2e/tsconfig.json"] - }, - "rules": {} - }, - { - "files": ["src/plugins/index.js"], - "rules": { - "@typescript-eslint/no-var-requires": "off", - "no-undef": "off" - } - } - ] -} diff --git a/apps/ui-e2e/eslint.config.cjs b/apps/ui-e2e/eslint.config.cjs new file mode 100644 index 000000000..5e6707635 --- /dev/null +++ b/apps/ui-e2e/eslint.config.cjs @@ -0,0 +1,33 @@ +const { FlatCompat } = require('@eslint/eslintrc'); +const js = require('@eslint/js'); +const baseConfig = require('../../eslint.config.cjs'); + +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended +}); + +module.exports = [ + { + ignores: ['**/dist'] + }, + ...baseConfig, + ...compat.extends('plugin:cypress/recommended'), + { + files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], + // Override or add rules here + rules: {}, + languageOptions: { + parserOptions: { + project: ['apps/ui-e2e/tsconfig.json'] + } + } + }, + { + files: ['src/plugins/index.js'], + rules: { + '@typescript-eslint/no-var-requires': 'off', + 'no-undef': 'off' + } + } +]; diff --git a/docker/docker-compose.build.yml b/docker/docker-compose.build.yml index 96829ad34..a2b3e7cb4 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 39a1d56e9..ec91025ea 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 c6ec5b3d7..8c69e5420 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 diff --git a/eslint.config.cjs b/eslint.config.cjs new file mode 100644 index 000000000..c7e08821c --- /dev/null +++ b/eslint.config.cjs @@ -0,0 +1,196 @@ +const { FlatCompat } = require('@eslint/eslintrc'); +const js = require('@eslint/js'); +const nxEslintPlugin = require('@nx/eslint-plugin'); +const storybook = require('eslint-plugin-storybook'); + +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended +}); + +module.exports = [ + { + ignores: ['**/dist'] + }, + ...storybook.configs['flat/recommended'], + { plugins: { '@nx': nxEslintPlugin } }, + { + files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], + rules: { + '@nx/enforce-module-boundaries': [ + 'warn', + { + enforceBuildableLibDependency: true, + allow: [], + depConstraints: [ + { + sourceTag: '*', + onlyDependOnLibsWithTags: ['*'] + } + ] + } + ], + '@typescript-eslint/no-extra-semi': 'error', + 'no-extra-semi': 'off' + } + }, + ...compat + .config({ + extends: ['plugin:@nx/typescript'] + }) + .map((config) => ({ + ...config, + files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'], + rules: { + ...config.rules + } + })), + ...compat + .config({ + extends: ['plugin:@nx/javascript'] + }) + .map((config) => ({ + ...config, + files: ['**/*.js', '**/*.jsx', '**/*.cjs', '**/*.mjs'], + rules: { + ...config.rules + } + })), + ...compat + .config({ + plugins: ['eslint-plugin-import', '@typescript-eslint'], + extends: [ + 'plugin:@typescript-eslint/recommended-type-checked', + 'plugin:@typescript-eslint/stylistic-type-checked' + ] + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@typescript-eslint/consistent-indexed-object-style': 'off', + '@typescript-eslint/dot-notation': 'off', + '@typescript-eslint/explicit-member-accessibility': [ + 'off', + { + accessibility: 'explicit' + } + ], + '@typescript-eslint/member-ordering': 'warn', + '@typescript-eslint/naming-convention': [ + 'off', + { + selector: 'default', + format: ['camelCase'], + leadingUnderscore: 'allow', + trailingUnderscore: 'allow' + }, + { + selector: ['variable', 'classProperty', 'typeProperty'], + format: ['camelCase', 'UPPER_CASE'], + leadingUnderscore: 'allow', + trailingUnderscore: 'allow' + }, + { + selector: 'objectLiteralProperty', + format: null + }, + { + selector: 'enumMember', + format: ['camelCase', 'UPPER_CASE', 'PascalCase'] + }, + { + selector: 'typeLike', + format: ['PascalCase'] + } + ], + '@typescript-eslint/no-empty-interface': 'warn', + '@typescript-eslint/no-inferrable-types': [ + 'warn', + { + ignoreParameters: true + } + ], + '@typescript-eslint/no-non-null-assertion': 'warn', + '@typescript-eslint/no-shadow': [ + 'warn', + { + hoist: 'all' + } + ], + '@typescript-eslint/unified-signatures': 'error', + '@typescript-eslint/no-loss-of-precision': 'warn', + '@typescript-eslint/no-var-requires': 'warn', + 'arrow-body-style': 'off', + 'constructor-super': 'error', + eqeqeq: ['error', 'smart'], + 'guard-for-in': 'warn', + 'id-blacklist': 'off', + 'id-match': 'off', + 'import/no-deprecated': 'warn', + 'no-bitwise': 'error', + 'no-caller': 'error', + 'no-debugger': 'error', + 'no-empty': 'off', + 'no-eval': 'error', + 'no-fallthrough': 'error', + 'no-new-wrappers': 'error', + 'no-restricted-imports': ['error', 'rxjs/Rx'], + 'no-undef-init': 'error', + 'no-underscore-dangle': 'off', + 'no-var': 'error', + radix: 'error', + 'no-unsafe-optional-chaining': 'warn', + 'no-extra-boolean-cast': 'warn', + 'no-empty-pattern': 'warn', + 'no-useless-catch': 'warn', + 'no-unsafe-finally': 'warn', + 'no-prototype-builtins': 'warn', + 'no-async-promise-executor': 'warn', + 'no-constant-condition': 'warn', + + // The following rules are part of eslint:recommended + // and can be remove once solved + 'no-constant-binary-expression': 'warn', + 'no-loss-of-precision': 'warn', + + // The following rules are part of @typescript-eslint/recommended-type-checked + // and can be remove once solved + '@typescript-eslint/await-thenable': 'warn', + '@typescript-eslint/ban-ts-comment': 'warn', + '@typescript-eslint/no-base-to-string': 'warn', + '@typescript-eslint/no-empty-object-type': 'warn', + '@typescript-eslint/no-explicit-any': 'warn', + '@typescript-eslint/no-floating-promises': 'warn', + '@typescript-eslint/no-misused-promises': 'warn', + '@typescript-eslint/no-redundant-type-constituents': 'warn', + '@typescript-eslint/no-require-imports': 'warn', + '@typescript-eslint/no-unnecessary-type-assertion': 'warn', + '@typescript-eslint/no-unsafe-argument': 'warn', + '@typescript-eslint/no-unsafe-assignment': 'warn', + '@typescript-eslint/no-unsafe-enum-comparison': 'warn', + '@typescript-eslint/no-unsafe-function-type': 'warn', + '@typescript-eslint/no-unsafe-member-access': 'warn', + '@typescript-eslint/no-unsafe-return': 'warn', + '@typescript-eslint/no-unsafe-call': 'warn', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + caughtErrors: 'none' + } + ], + '@typescript-eslint/no-wrapper-object-types': 'warn', + '@typescript-eslint/only-throw-error': 'warn', + '@typescript-eslint/prefer-promise-reject-errors': 'warn', + '@typescript-eslint/require-await': 'warn', + '@typescript-eslint/restrict-template-expressions': 'warn', + '@typescript-eslint/unbound-method': 'warn', + + // The following rules are part of @typescript-eslint/stylistic-type-checked + // and can be remove once solved + '@typescript-eslint/prefer-nullish-coalescing': 'warn', // TODO: Requires strictNullChecks: true + '@typescript-eslint/prefer-regexp-exec': 'warn' + } + })) +]; diff --git a/libs/common/.eslintrc.json b/libs/common/.eslintrc.json deleted file mode 100644 index 69cfc2050..000000000 --- a/libs/common/.eslintrc.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "parserOptions": { - "project": ["libs/common/tsconfig.*?.json"] - }, - "rules": {} - }, - { - "files": ["*.ts", "*.tsx"], - "rules": {} - }, - { - "files": ["*.js", "*.jsx"], - "rules": {} - } - ] -} diff --git a/libs/common/eslint.config.cjs b/libs/common/eslint.config.cjs new file mode 100644 index 000000000..a78dde897 --- /dev/null +++ b/libs/common/eslint.config.cjs @@ -0,0 +1,28 @@ +const baseConfig = require('../../eslint.config.cjs'); + +module.exports = [ + { + ignores: ['**/dist'] + }, + ...baseConfig, + { + files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], + // Override or add rules here + rules: {}, + languageOptions: { + parserOptions: { + project: ['libs/common/tsconfig.*?.json'] + } + } + }, + { + files: ['**/*.ts', '**/*.tsx'], + // Override or add rules here + rules: {} + }, + { + files: ['**/*.js', '**/*.jsx'], + // Override or add rules here + rules: {} + } +]; diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts index ace38ddca..cc3b565fe 100644 --- a/libs/common/src/lib/config.ts +++ b/libs/common/src/lib/config.ts @@ -118,17 +118,21 @@ export const PORTFOLIO_SNAPSHOT_PROCESS_JOB_OPTIONS: JobOptions = { export const HEADER_KEY_IMPERSONATION = 'Impersonation-Id'; export const HEADER_KEY_TIMEZONE = 'Timezone'; export const HEADER_KEY_TOKEN = 'Authorization'; +export const HEADER_KEY_SKIP_INTERCEPTOR = 'X-Skip-Interceptor'; export const MAX_TOP_HOLDINGS = 50; export const NUMERICAL_PRECISION_THRESHOLD = 100000; +export const PROPERTY_API_KEY_GHOSTFOLIO = 'API_KEY_GHOSTFOLIO'; export const PROPERTY_BENCHMARKS = 'BENCHMARKS'; export const PROPERTY_BETTER_UPTIME_MONITOR_ID = 'BETTER_UPTIME_MONITOR_ID'; export const PROPERTY_COUNTRIES_OF_SUBSCRIBERS = 'COUNTRIES_OF_SUBSCRIBERS'; export const PROPERTY_COUPONS = 'COUPONS'; export const PROPERTY_CURRENCIES = 'CURRENCIES'; export const PROPERTY_DATA_SOURCE_MAPPING = 'DATA_SOURCE_MAPPING'; +export const PROPERTY_DATA_SOURCES_GHOSTFOLIO_DATA_PROVIDER_MAX_REQUESTS = + 'DATA_SOURCES_GHOSTFOLIO_DATA_PROVIDER_MAX_REQUESTS'; export const PROPERTY_DEMO_USER_ID = 'DEMO_USER_ID'; export const PROPERTY_IS_DATA_GATHERING_ENABLED = 'IS_DATA_GATHERING_ENABLED'; export const PROPERTY_IS_READ_ONLY_MODE = 'IS_READ_ONLY_MODE'; @@ -172,6 +176,7 @@ export const SUPPORTED_LANGUAGE_CODES = [ 'pl', 'pt', 'tr', + 'uk', 'zh' ]; diff --git a/libs/common/src/lib/helper.spec.ts b/libs/common/src/lib/helper.spec.ts index 22a171168..1126c3573 100644 --- a/libs/common/src/lib/helper.spec.ts +++ b/libs/common/src/lib/helper.spec.ts @@ -2,37 +2,37 @@ import { extractNumberFromString } from '@ghostfolio/common/helper'; describe('Helper', () => { describe('Extract number from string', () => { - it('Get decimal number', async () => { + it('Get decimal number', () => { expect(extractNumberFromString({ value: '999.99' })).toEqual(999.99); }); - it('Get decimal number (with spaces)', async () => { + it('Get decimal number (with spaces)', () => { expect(extractNumberFromString({ value: ' 999.99 ' })).toEqual(999.99); }); - it('Get decimal number (with currency)', async () => { + it('Get decimal number (with currency)', () => { expect(extractNumberFromString({ value: '999.99 CHF' })).toEqual(999.99); }); - it('Get decimal number (comma notation)', async () => { + it('Get decimal number (comma notation)', () => { expect( extractNumberFromString({ locale: 'de-DE', value: '999,99' }) ).toEqual(999.99); }); - it('Get decimal number with group (dot notation)', async () => { + it('Get decimal number with group (dot notation)', () => { expect( extractNumberFromString({ locale: 'de-CH', value: '99’999.99' }) ).toEqual(99999.99); }); - it('Get decimal number with group (comma notation)', async () => { + it('Get decimal number with group (comma notation)', () => { expect( extractNumberFromString({ locale: 'de-DE', value: '99.999,99' }) ).toEqual(99999.99); }); - it('Not a number', async () => { + it('Not a number', () => { expect(extractNumberFromString({ value: 'X' })).toEqual(NaN); }); }); diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index a7cf59a10..dd07c23fa 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -1,6 +1,6 @@ import * as currencies from '@dinero.js/currencies'; import { NumberParser } from '@internationalized/number'; -import { DataSource, MarketData, Type as ActivityType } from '@prisma/client'; +import { Type as ActivityType, DataSource, MarketData } from '@prisma/client'; import { Big } from 'big.js'; import { getDate, @@ -11,7 +11,7 @@ import { parseISO, subDays } from 'date-fns'; -import { ca, de, es, fr, it, nl, pl, pt, tr, zhCN } from 'date-fns/locale'; +import { ca, de, es, fr, it, nl, pl, pt, tr, uk, zhCN } from 'date-fns/locale'; import { DEFAULT_CURRENCY, @@ -192,6 +192,8 @@ export function getDateFnsLocale(aLanguageCode: string) { return pt; } else if (aLanguageCode === 'tr') { return tr; + } else if (aLanguageCode === 'uk') { + return uk; } else if (aLanguageCode === 'zh') { return zhCN; } diff --git a/libs/common/src/lib/interfaces/admin-users.interface.ts b/libs/common/src/lib/interfaces/admin-users.interface.ts index 24eb45c85..89e165752 100644 --- a/libs/common/src/lib/interfaces/admin-users.interface.ts +++ b/libs/common/src/lib/interfaces/admin-users.interface.ts @@ -1,10 +1,12 @@ import { Role } from '@prisma/client'; export interface AdminUsers { + count: number; users: { accountCount: number; country: string; createdAt: Date; + dailyApiRequests: number; engagement: number; id: string; lastActivity: Date; 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 b2965edd8..c130e2028 100644 --- a/libs/common/src/lib/interfaces/enhanced-symbol-profile.interface.ts +++ b/libs/common/src/lib/interfaces/enhanced-symbol-profile.interface.ts @@ -31,4 +31,5 @@ export interface EnhancedSymbolProfile { updatedAt: Date; url?: string; tags?: Tag[]; + userId?: string; } diff --git a/libs/common/src/lib/interfaces/holding-with-parents.interface.ts b/libs/common/src/lib/interfaces/holding-with-parents.interface.ts new file mode 100644 index 000000000..df3f32967 --- /dev/null +++ b/libs/common/src/lib/interfaces/holding-with-parents.interface.ts @@ -0,0 +1,5 @@ +import { Holding } from './holding.interface'; + +export interface HoldingWithParents extends Holding { + parents?: Holding[]; +} diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts index eca147066..7ad4948dc 100644 --- a/libs/common/src/lib/interfaces/index.ts +++ b/libs/common/src/lib/interfaces/index.ts @@ -19,6 +19,7 @@ import type { Export } from './export.interface'; import type { FilterGroup } from './filter-group.interface'; import type { Filter } from './filter.interface'; import type { HistoricalDataItem } from './historical-data-item.interface'; +import type { HoldingWithParents } from './holding-with-parents.interface'; import type { Holding } from './holding.interface'; import type { InfoItem } from './info-item.interface'; import type { InvestmentItem } from './investment-item.interface'; @@ -33,19 +34,26 @@ 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'; import type { AccountBalancesResponse } from './responses/account-balances-response.interface'; +import type { AiPromptResponse } from './responses/ai-prompt-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'; 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'; +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'; import type { Statistics } from './statistics.interface'; import type { SubscriptionOffer } from './subscription-offer.interface'; @@ -67,25 +75,32 @@ export { AdminMarketDataDetails, AdminMarketDataItem, AdminUsers, + AiPromptResponse, + ApiKeyResponse, AssetProfileIdentifier, Benchmark, BenchmarkMarketDataDetails, BenchmarkProperty, BenchmarkResponse, Coupon, + DataProviderGhostfolioStatusResponse, DataProviderInfo, + DividendsResponse, EnhancedSymbolProfile, Export, Filter, FilterGroup, HistoricalDataItem, + HistoricalResponse, Holding, + HoldingWithParents, ImportResponse, InfoItem, InvestmentItem, LineChartItem, LookupItem, LookupResponse, + MarketDataDetailsResponse, OAuthResponse, PortfolioChart, PortfolioDetails, @@ -97,12 +112,13 @@ export { PortfolioPerformance, PortfolioPerformanceResponse, PortfolioPosition, - PortfolioReport, + PortfolioReportResponse, PortfolioReportRule, PortfolioSummary, Position, Product, PublicPortfolioResponse, + QuotesResponse, ResponseError, ScraperConfiguration, Statistics, 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 a33a0aae6..000000000 --- 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/ai-prompt-response.interface.ts b/libs/common/src/lib/interfaces/responses/ai-prompt-response.interface.ts new file mode 100644 index 000000000..4b95bc871 --- /dev/null +++ b/libs/common/src/lib/interfaces/responses/ai-prompt-response.interface.ts @@ -0,0 +1,3 @@ +export interface AiPromptResponse { + prompt: string; +} 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 000000000..dace14a02 --- /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/interfaces/responses/data-provider-ghostfolio-status-response.interface.ts b/libs/common/src/lib/interfaces/responses/data-provider-ghostfolio-status-response.interface.ts new file mode 100644 index 000000000..9330adaa7 --- /dev/null +++ b/libs/common/src/lib/interfaces/responses/data-provider-ghostfolio-status-response.interface.ts @@ -0,0 +1,7 @@ +import { UserWithSettings } from '@ghostfolio/common/types'; + +export interface DataProviderGhostfolioStatusResponse { + dailyRequests: number; + dailyRequestsMax: number; + subscription: UserWithSettings['subscription']; +} diff --git a/libs/common/src/lib/interfaces/responses/dividends-response.interface.ts b/libs/common/src/lib/interfaces/responses/dividends-response.interface.ts new file mode 100644 index 000000000..f7cacf89a --- /dev/null +++ b/libs/common/src/lib/interfaces/responses/dividends-response.interface.ts @@ -0,0 +1,7 @@ +import { IDataProviderHistoricalResponse } from '@ghostfolio/api/services/interfaces/interfaces'; + +export interface DividendsResponse { + dividends: { + [date: string]: IDataProviderHistoricalResponse; + }; +} diff --git a/libs/common/src/lib/interfaces/responses/historical-response.interface.ts b/libs/common/src/lib/interfaces/responses/historical-response.interface.ts new file mode 100644 index 000000000..12309a352 --- /dev/null +++ b/libs/common/src/lib/interfaces/responses/historical-response.interface.ts @@ -0,0 +1,7 @@ +import { IDataProviderHistoricalResponse } from '@ghostfolio/api/services/interfaces/interfaces'; + +export interface HistoricalResponse { + historicalData: { + [date: string]: IDataProviderHistoricalResponse; + }; +} 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 000000000..bbf947301 --- /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/interfaces/responses/portfolio-report.interface.ts b/libs/common/src/lib/interfaces/responses/portfolio-report.interface.ts new file mode 100644 index 000000000..35ff033eb --- /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; + }; +} diff --git a/libs/common/src/lib/interfaces/responses/quotes-response.interface.ts b/libs/common/src/lib/interfaces/responses/quotes-response.interface.ts new file mode 100644 index 000000000..79c9d3024 --- /dev/null +++ b/libs/common/src/lib/interfaces/responses/quotes-response.interface.ts @@ -0,0 +1,5 @@ +import { IDataProviderResponse } from '@ghostfolio/api/services/interfaces/interfaces'; + +export interface QuotesResponse { + quotes: { [symbol: string]: IDataProviderResponse }; +} diff --git a/libs/common/src/lib/interfaces/subscription-offer.interface.ts b/libs/common/src/lib/interfaces/subscription-offer.interface.ts index 8db91da6e..9ffe96a58 100644 --- a/libs/common/src/lib/interfaces/subscription-offer.interface.ts +++ b/libs/common/src/lib/interfaces/subscription-offer.interface.ts @@ -4,6 +4,7 @@ export interface SubscriptionOffer { coupon?: number; couponId?: string; durationExtension?: StringValue; + label?: string; price: number; priceId: string; } diff --git a/libs/common/src/lib/interfaces/user.interface.ts b/libs/common/src/lib/interfaces/user.interface.ts index 647822d34..667e59fd8 100644 --- a/libs/common/src/lib/interfaces/user.interface.ts +++ b/libs/common/src/lib/interfaces/user.interface.ts @@ -1,17 +1,14 @@ import { SubscriptionOfferKey } from '@ghostfolio/common/types'; import { SubscriptionType } from '@ghostfolio/common/types/subscription-type.type'; -import { Account, Tag } from '@prisma/client'; +import { Access, Account, Tag } from '@prisma/client'; import { SystemMessage } from './system-message.interface'; import { UserSettings } from './user-settings.interface'; // TODO: Compare with UserWithSettings export interface User { - access: { - alias?: string; - id: string; - }[]; + access: Pick[]; accounts: Account[]; dateOfFirstActivity: Date; id: string; diff --git a/libs/common/src/lib/interfaces/x-ray-rules-settings.interface.ts b/libs/common/src/lib/interfaces/x-ray-rules-settings.interface.ts index 579d589b6..858ffa31b 100644 --- a/libs/common/src/lib/interfaces/x-ray-rules-settings.interface.ts +++ b/libs/common/src/lib/interfaces/x-ray-rules-settings.interface.ts @@ -1,6 +1,8 @@ export interface XRayRulesSettings { AccountClusterRiskCurrentInvestment?: RuleSettings; AccountClusterRiskSingleAccount?: RuleSettings; + AssetClassClusterRiskEquity?: RuleSettings; + AssetClassClusterRiskFixedIncome?: RuleSettings; CurrencyClusterRiskBaseCurrencyCurrentInvestment?: RuleSettings; CurrencyClusterRiskCurrentInvestment?: RuleSettings; EconomicMarketClusterRiskDevelopedMarkets?: RuleSettings; diff --git a/libs/common/src/lib/models/portfolio-snapshot.ts b/libs/common/src/lib/models/portfolio-snapshot.ts index e51931711..46bd5c18f 100644 --- a/libs/common/src/lib/models/portfolio-snapshot.ts +++ b/libs/common/src/lib/models/portfolio-snapshot.ts @@ -13,7 +13,7 @@ export class PortfolioSnapshot { @Type(() => Big) currentValueInBaseCurrency: Big; - errors?: AssetProfileIdentifier[]; + errors: AssetProfileIdentifier[]; hasErrors: boolean; diff --git a/libs/common/src/lib/permissions.ts b/libs/common/src/lib/permissions.ts index ab443ea5e..d19b8daf0 100644 --- a/libs/common/src/lib/permissions.ts +++ b/libs/common/src/lib/permissions.ts @@ -9,6 +9,9 @@ export const permissions = { createAccess: 'createAccess', createAccount: 'createAccount', createAccountBalance: 'createAccountBalance', + createApiKey: 'createApiKey', + createMarketData: 'createMarketData', + createMarketDataOfOwnAssetProfile: 'createMarketDataOfOwnAssetProfile', createOrder: 'createOrder', createPlatform: 'createPlatform', createTag: 'createTag', @@ -22,6 +25,7 @@ export const permissions = { deletePlatform: 'deletePlatform', deleteTag: 'deleteTag', deleteUser: 'deleteUser', + enableDataProviderGhostfolio: 'enableDataProviderGhostfolio', enableFearAndGreedIndex: 'enableFearAndGreedIndex', enableImport: 'enableImport', enableBlog: 'enableBlog', @@ -31,12 +35,17 @@ export const permissions = { enableSubscriptionInterstitial: 'enableSubscriptionInterstitial', enableSystemMessage: 'enableSystemMessage', impersonateAllUsers: 'impersonateAllUsers', + readAiPrompt: 'readAiPrompt', + 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', @@ -55,6 +64,8 @@ export function getPermissions(aRole: Role): string[] { permissions.createAccount, permissions.createAccountBalance, permissions.deleteAccountBalance, + permissions.createMarketData, + permissions.createMarketDataOfOwnAssetProfile, permissions.createOrder, permissions.createPlatform, permissions.createTag, @@ -66,10 +77,15 @@ export function getPermissions(aRole: Role): string[] { permissions.deletePlatform, permissions.deleteTag, permissions.deleteUser, + permissions.readAiPrompt, + permissions.readMarketData, + permissions.readMarketDataOfOwnAssetProfile, permissions.readPlatforms, permissions.readTags, permissions.updateAccount, permissions.updateAuthDevice, + permissions.updateMarketData, + permissions.updateMarketDataOfOwnAssetProfile, permissions.updateOrder, permissions.updatePlatform, permissions.updateTag, @@ -81,7 +97,8 @@ export function getPermissions(aRole: Role): string[] { return [ permissions.accessAssistant, permissions.accessHoldingsChart, - permissions.createUserAccount + permissions.createUserAccount, + permissions.readAiPrompt ]; case 'USER': @@ -91,6 +108,7 @@ export function getPermissions(aRole: Role): string[] { permissions.createAccess, permissions.createAccount, permissions.createAccountBalance, + permissions.createMarketDataOfOwnAssetProfile, permissions.createOrder, permissions.deleteAccess, permissions.deleteAccount, @@ -98,8 +116,11 @@ export function getPermissions(aRole: Role): string[] { permissions.deleteAuthDevice, permissions.deleteOrder, permissions.deleteOwnUser, + permissions.readAiPrompt, + permissions.readMarketDataOfOwnAssetProfile, permissions.updateAccount, permissions.updateAuthDevice, + permissions.updateMarketDataOfOwnAssetProfile, permissions.updateOrder, permissions.updateUserSettings, permissions.updateViewMode diff --git a/libs/common/src/lib/personal-finance-tools.ts b/libs/common/src/lib/personal-finance-tools.ts index 1ec5fbbc2..63d5805cd 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, diff --git a/libs/common/src/lib/types/user-with-settings.type.ts b/libs/common/src/lib/types/user-with-settings.type.ts index 2a669d26f..5f9835176 100644 --- a/libs/common/src/lib/types/user-with-settings.type.ts +++ b/libs/common/src/lib/types/user-with-settings.type.ts @@ -9,6 +9,7 @@ export type UserWithSettings = User & { Access: Access[]; Account: Account[]; activityCount: number; + dataProviderGhostfolioDailyRequests: number; permissions?: string[]; Settings: Settings & { settings: UserSettings }; subscription?: { diff --git a/libs/ui/.eslintrc.json b/libs/ui/.eslintrc.json deleted file mode 100644 index 6b88b020e..000000000 --- a/libs/ui/.eslintrc.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "**/*.stories.ts"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "parserOptions": { - "project": ["libs/ui/tsconfig.*?.json"] - }, - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "rules": { - "@angular-eslint/directive-selector": [ - "error", - { - "type": "attribute", - "prefix": "gf", - "style": "camelCase" - } - ], - "@angular-eslint/component-selector": [ - "error", - { - "type": "element", - "prefix": "gf", - "style": "kebab-case" - } - ] - } - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/libs/ui/eslint.config.cjs b/libs/ui/eslint.config.cjs new file mode 100644 index 000000000..ceaf43ca2 --- /dev/null +++ b/libs/ui/eslint.config.cjs @@ -0,0 +1,65 @@ +const { FlatCompat } = require('@eslint/eslintrc'); +const js = require('@eslint/js'); +const baseConfig = require('../../eslint.config.cjs'); + +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended +}); + +module.exports = [ + { + ignores: ['**/dist'] + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates' + ] + }) + .map((config) => ({ + ...config, + files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': [ + 'error', + { + type: 'attribute', + prefix: 'gf', + style: 'camelCase' + } + ], + '@angular-eslint/component-selector': [ + 'error', + { + type: 'element', + prefix: 'gf', + style: 'kebab-case' + } + ], + '@angular-eslint/prefer-standalone': 'off' + }, + languageOptions: { + parserOptions: { + project: ['libs/ui/tsconfig.*?.json'] + } + } + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'] + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules + } + })), + { + ignores: ['**/*.stories.ts'] + } +]; 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 a4ef1d7a4..756b3169f 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 a1258fc19..4356ba5ac 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 67f81adce..01b4c6ead 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 95b24b4ba..27434e015 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 a53a6289d..a0744db9f 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 b87390d58..e6fdf93d7 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' }) @@ -167,8 +166,6 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { ) {} public ngOnInit() { - this.initializeFilterForm(); - this.assetClasses = Object.keys(AssetClass).map((assetClass) => { return { id: assetClass, @@ -272,12 +269,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 +306,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 +326,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 +508,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 2a6008510..69fa4c9b2 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 @@

- + }
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 73af9e681..38c6252a8 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 4afd8d053..cc5815a0c 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 8b766aa6d..2c3cc3ec0 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 c01df950f..7ab32b5fb 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 5afab3b3f..9be034e64 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.stories.ts b/libs/ui/src/lib/fire-calculator/fire-calculator.component.stories.ts index 637ee3bd9..0ad868ff9 100644 --- a/libs/ui/src/lib/fire-calculator/fire-calculator.component.stories.ts +++ b/libs/ui/src/lib/fire-calculator/fire-calculator.component.stories.ts @@ -4,47 +4,48 @@ import { CommonModule } from '@angular/common'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import '@angular/localize/init'; import { MatButtonModule } from '@angular/material/button'; +import { provideNativeDateAdapter } from '@angular/material/core'; +import { MatDatepickerModule } from '@angular/material/datepicker'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { Meta, Story, moduleMetadata } from '@storybook/angular'; +import { moduleMetadata } from '@storybook/angular'; +import type { Meta, StoryObj } from '@storybook/angular'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; -import { GfValueModule } from '../value'; -import { FireCalculatorComponent } from './fire-calculator.component'; +import { GfValueComponent } from '../value'; +import { GfFireCalculatorComponent } from './fire-calculator.component'; import { FireCalculatorService } from './fire-calculator.service'; export default { title: 'FIRE Calculator', - component: FireCalculatorComponent, + component: GfFireCalculatorComponent, decorators: [ moduleMetadata({ - declarations: [FireCalculatorComponent], imports: [ CommonModule, FormsModule, - GfValueModule, + GfFireCalculatorComponent, + GfValueComponent, MatButtonModule, + MatDatepickerModule, MatFormFieldModule, MatInputModule, NgxSkeletonLoaderModule, NoopAnimationsModule, ReactiveFormsModule ], - providers: [FireCalculatorService] + providers: [FireCalculatorService, provideNativeDateAdapter()] }) ] -} as Meta; +} as Meta; -const Template: Story = ( - args: FireCalculatorComponent -) => ({ - props: args -}); +type Story = StoryObj; -export const Simple = Template.bind({}); -Simple.args = { - currency: 'USD', - fireWealth: 0, - locale: locale +export const Simple: Story = { + args: { + currency: 'USD', + fireWealth: 0, + locale: locale + } }; 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 aa8b2b90b..f8ce3dd50 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/apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.component.ts b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.component.ts similarity index 57% rename from apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.component.ts rename to libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.component.ts index 6a44d0dfb..710cb4020 100644 --- a/apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-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,34 +1,59 @@ import { AdminService } from '@ghostfolio/client/services/admin.service'; +import { DataService } from '@ghostfolio/client/services/data.service'; +import { CommonModule } from '@angular/common'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, + CUSTOM_ELEMENTS_SCHEMA, Inject, OnDestroy } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; import { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; +import { MatDatepickerModule } from '@angular/material/datepicker'; +import { + MAT_DIALOG_DATA, + MatDialogModule, + MatDialogRef +} from '@angular/material/dialog'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; import { Subject, takeUntil } from 'rxjs'; -import { MarketDataDetailDialogParams } from './interfaces/interfaces'; +import { HistoricalMarketDataEditorDialogParams } from './interfaces/interfaces'; @Component({ - host: { class: 'h-100' }, - selector: 'gf-market-data-detail-dialog', changeDetection: ChangeDetectionStrategy.OnPush, - styleUrls: ['./market-data-detail-dialog.scss'], - templateUrl: 'market-data-detail-dialog.html' + host: { class: 'h-100' }, + imports: [ + CommonModule, + FormsModule, + MatButtonModule, + MatDatepickerModule, + MatDialogModule, + MatFormFieldModule, + MatInputModule, + ReactiveFormsModule + ], + selector: 'gf-historical-market-data-editor-dialog', + schemas: [CUSTOM_ELEMENTS_SCHEMA], + styleUrls: ['./historical-market-data-editor-dialog.scss'], + templateUrl: 'historical-market-data-editor-dialog.html' }) -export class MarketDataDetailDialog implements OnDestroy { +export class GfHistoricalMarketDataEditorDialogComponent implements OnDestroy { private unsubscribeSubject = new Subject(); public constructor( private adminService: AdminService, private changeDetectorRef: ChangeDetectorRef, - @Inject(MAT_DIALOG_DATA) public data: MarketDataDetailDialogParams, + @Inject(MAT_DIALOG_DATA) + public data: HistoricalMarketDataEditorDialogParams, + private dataService: DataService, private dateAdapter: DateAdapter, - public dialogRef: MatDialogRef, + public dialogRef: MatDialogRef, @Inject(MAT_DATE_LOCALE) private locale: string ) {} @@ -57,7 +82,7 @@ export class MarketDataDetailDialog implements OnDestroy { } public onUpdate() { - this.adminService + this.dataService .postMarketData({ dataSource: this.data.dataSource, marketData: { diff --git a/apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html similarity index 100% rename from apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html rename to libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html diff --git a/apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.scss b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.scss similarity index 100% rename from apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.scss rename to libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.scss diff --git a/apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/interfaces/interfaces.ts b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/interfaces/interfaces.ts similarity index 79% rename from apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/interfaces/interfaces.ts rename to libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/interfaces/interfaces.ts index 81188cd1f..4248b3fdb 100644 --- a/apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/interfaces/interfaces.ts +++ b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/interfaces/interfaces.ts @@ -2,7 +2,7 @@ import { User } from '@ghostfolio/common/interfaces'; import { DataSource } from '@prisma/client'; -export interface MarketDataDetailDialogParams { +export interface HistoricalMarketDataEditorDialogParams { currency: string; dataSource: DataSource; dateString: string; diff --git a/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.html b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html similarity index 51% rename from apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.html rename to libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html index 617dd6962..b35e1d812 100644 --- a/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.html +++ b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html @@ -1,14 +1,4 @@
- @for (itemByMonth of marketDataByMonth | keyvalue; track itemByMonth) {
{{ itemByMonth.key }}
@@ -43,4 +33,42 @@
} +
+
+ + + Historical Data (CSV) + + + +
+ +
+ +
+
diff --git a/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.scss b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.scss similarity index 90% rename from apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.scss rename to libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.scss index a03533589..cc835a90e 100644 --- a/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.scss +++ b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.scss @@ -2,10 +2,6 @@ display: block; font-size: 0.9rem; - gf-line-chart { - aspect-ratio: 16/9; - } - .date { font-feature-settings: 'tnum'; font-variant-numeric: tabular-nums; diff --git a/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts similarity index 55% rename from apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts rename to libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts index 1742d8307..caa0b15e6 100644 --- a/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts +++ b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts @@ -1,4 +1,5 @@ -import { UserService } from '@ghostfolio/client/services/user/user.service'; +import { UpdateMarketDataDto } from '@ghostfolio/api/app/admin/update-market-data.dto'; +import { DataService } from '@ghostfolio/client/services/data.service'; import { DATE_FORMAT, getDateFormatString, @@ -6,15 +7,22 @@ import { } from '@ghostfolio/common/helper'; import { LineChartItem, User } from '@ghostfolio/common/interfaces'; +import { CommonModule } from '@angular/common'; import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, + OnDestroy, + OnInit, Output } from '@angular/core'; +import { FormBuilder, ReactiveFormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; import { MatDialog } from '@angular/material/dialog'; +import { MatInputModule } from '@angular/material/input'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { DataSource, MarketData } from '@prisma/client'; import { addDays, @@ -29,55 +37,69 @@ import { parseISO } from 'date-fns'; import { first, last } from 'lodash'; +import ms from 'ms'; import { DeviceDetectorService } from 'ngx-device-detector'; -import { Subject, takeUntil } from 'rxjs'; +import { parse as csvToJson } from 'papaparse'; +import { EMPTY, Subject, takeUntil } from 'rxjs'; +import { catchError } from 'rxjs/operators'; -import { MarketDataDetailDialogParams } from './market-data-detail-dialog/interfaces/interfaces'; -import { MarketDataDetailDialog } from './market-data-detail-dialog/market-data-detail-dialog.component'; +import { GfHistoricalMarketDataEditorDialogComponent } from './historical-market-data-editor-dialog/historical-market-data-editor-dialog.component'; +import { HistoricalMarketDataEditorDialogParams } from './historical-market-data-editor-dialog/interfaces/interfaces'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, - selector: 'gf-admin-market-data-detail', - styleUrls: ['./admin-market-data-detail.component.scss'], - templateUrl: './admin-market-data-detail.component.html' + imports: [CommonModule, MatButtonModule, MatInputModule, ReactiveFormsModule], + selector: 'gf-historical-market-data-editor', + styleUrls: ['./historical-market-data-editor.component.scss'], + templateUrl: './historical-market-data-editor.component.html' }) -export class AdminMarketDataDetailComponent implements OnChanges { +export class GfHistoricalMarketDataEditorComponent + implements OnChanges, OnDestroy, OnInit +{ @Input() currency: string; @Input() dataSource: DataSource; @Input() dateOfFirstActivity: string; @Input() locale = getLocale(); @Input() marketData: MarketData[]; @Input() symbol: string; + @Input() user: User; @Output() marketDataChanged = new EventEmitter(); public days = Array(31); public defaultDateFormat: string; public deviceType: string; + public historicalDataForm = this.formBuilder.group({ + historicalData: this.formBuilder.group({ + csvString: '' + }) + }); public historicalDataItems: LineChartItem[]; public marketDataByMonth: { [yearMonth: string]: { [day: string]: Pick & { day: number }; }; } = {}; - public user: User; + + private static readonly HISTORICAL_DATA_TEMPLATE = `date;marketPrice\n${format( + new Date(), + DATE_FORMAT + )};123.45`; private unsubscribeSubject = new Subject(); public constructor( + private dataService: DataService, private deviceService: DeviceDetectorService, private dialog: MatDialog, - private userService: UserService + private formBuilder: FormBuilder, + private snackBar: MatSnackBar ) { this.deviceType = this.deviceService.getDeviceInfo().deviceType; + } - this.userService.stateChanged - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((state) => { - if (state?.user) { - this.user = state.user; - } - }); + public ngOnInit() { + this.initializeHistoricalDataForm(); } public ngOnChanges() { @@ -177,29 +199,84 @@ export class AdminMarketDataDetailComponent implements OnChanges { }) { const marketPrice = this.marketDataByMonth[yearMonth]?.[day]?.marketPrice; - const dialogRef = this.dialog.open(MarketDataDetailDialog, { - data: { - marketPrice, - currency: this.currency, - dataSource: this.dataSource, - dateString: `${yearMonth}-${day}`, - symbol: this.symbol, - user: this.user - } as MarketDataDetailDialogParams, - height: this.deviceType === 'mobile' ? '98vh' : '80vh', - width: this.deviceType === 'mobile' ? '100vw' : '50rem' - }); + const dialogRef = this.dialog.open( + GfHistoricalMarketDataEditorDialogComponent, + { + data: { + marketPrice, + currency: this.currency, + dataSource: this.dataSource, + dateString: `${yearMonth}-${day}`, + symbol: this.symbol, + user: this.user + } as HistoricalMarketDataEditorDialogParams, + height: this.deviceType === 'mobile' ? '98vh' : '80vh', + width: this.deviceType === 'mobile' ? '100vw' : '50rem' + } + ); dialogRef .afterClosed() .pipe(takeUntil(this.unsubscribeSubject)) .subscribe(({ withRefresh } = { withRefresh: false }) => { - this.marketDataChanged.next(withRefresh); + this.marketDataChanged.emit(withRefresh); }); } + public onImportHistoricalData() { + try { + const marketData = csvToJson( + this.historicalDataForm.controls['historicalData'].controls['csvString'] + .value, + { + dynamicTyping: true, + header: true, + skipEmptyLines: true + } + ).data as UpdateMarketDataDto[]; + + this.dataService + .postMarketData({ + dataSource: this.dataSource, + marketData: { + marketData + }, + symbol: this.symbol + }) + .pipe( + catchError(({ error, message }) => { + this.snackBar.open(`${error}: ${message[0]}`, undefined, { + duration: ms('3 seconds') + }); + return EMPTY; + }), + takeUntil(this.unsubscribeSubject) + ) + .subscribe(() => { + this.initializeHistoricalDataForm(); + + this.marketDataChanged.emit(true); + }); + } catch { + this.snackBar.open( + $localize`Oops! Could not parse historical data.`, + undefined, + { duration: ms('3 seconds') } + ); + } + } + public ngOnDestroy() { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete(); } + + private initializeHistoricalDataForm() { + this.historicalDataForm.setValue({ + historicalData: { + csvString: + GfHistoricalMarketDataEditorComponent.HISTORICAL_DATA_TEMPLATE + } + }); + } } diff --git a/libs/ui/src/lib/historical-market-data-editor/index.ts b/libs/ui/src/lib/historical-market-data-editor/index.ts new file mode 100644 index 000000000..6c7004ce9 --- /dev/null +++ b/libs/ui/src/lib/historical-market-data-editor/index.ts @@ -0,0 +1 @@ +export * from './historical-market-data-editor.component'; 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 97c6d38ec..14382f420 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, @@ -48,7 +46,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.stories.ts b/libs/ui/src/lib/line-chart/line-chart.component.stories.ts index 59580a136..9770074d2 100644 --- a/libs/ui/src/lib/line-chart/line-chart.component.stories.ts +++ b/libs/ui/src/lib/line-chart/line-chart.component.stories.ts @@ -1,235 +1,234 @@ import { CommonModule } from '@angular/common'; -import { Meta, Story, moduleMetadata } from '@storybook/angular'; +import { moduleMetadata } from '@storybook/angular'; +import type { Meta, StoryObj } from '@storybook/angular'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; -import { LineChartComponent } from './line-chart.component'; +import { GfLineChartComponent } from './line-chart.component'; export default { title: 'Line Chart', - component: LineChartComponent, + component: GfLineChartComponent, decorators: [ moduleMetadata({ - declarations: [LineChartComponent], - imports: [CommonModule, NgxSkeletonLoaderModule] + imports: [CommonModule, GfLineChartComponent, NgxSkeletonLoaderModule] }) ] -} as Meta; +} as Meta; -const Template: Story = (args: LineChartComponent) => ({ - props: args -}); +type Story = StoryObj; -export const Simple = Template.bind({}); -Simple.args = { - historicalDataItems: [ - { - date: '2017-01-01', - value: 2561.60376 - }, - { - date: '2017-02-01', - value: 2261.60376 - }, - { - date: '2017-03-01', - value: 2268.68157074 - }, - { - date: '2017-04-01', - value: 2525.2942 - }, - { - date: '2017-05-01', - value: 2929.3595107399997 - }, - { - date: '2017-06-01', - value: 3088.5172438900004 - }, - { - date: '2017-07-01', - value: 3281.2490946300004 - }, - { - date: '2017-08-01', - value: 4714.57822537 - }, - { - date: '2017-09-01', - value: 5717.262455259565 - }, - { - date: '2017-10-01', - value: 5338.742482334544 - }, - { - date: '2017-11-01', - value: 6361.263771554509 - }, - { - date: '2017-12-01', - value: 8373.260491904595 - }, - { - date: '2018-01-01', - value: 9783.208968191562 - }, - { - date: '2018-02-01', - value: 7841.2667100173 - }, - { - date: '2018-03-01', - value: 8582.133039380678 - }, - { - date: '2018-04-01', - value: 5901.8362986766715 - }, - { - date: '2018-05-01', - value: 7367.392976151925 - }, - { - date: '2018-06-01', - value: 6490.164314049853 - }, - { - date: '2018-07-01', - value: 6365.351621654618 - }, - { - date: '2018-08-01', - value: 6614.532706931272 - }, - { - date: '2018-09-01', - value: 6402.052882414409 - }, - { - date: '2018-10-01', - value: 15270.327917651943 - }, - { - date: '2018-11-01', - value: 13929.833891940816 - }, - { - date: '2018-12-01', - value: 12995.832254431414 - }, - { - date: '2019-01-01', - value: 11792.447013828998 - }, - { - date: '2019-02-01', - value: 11988.224284346446 - }, - { - date: '2019-03-01', - value: 13536.39667099519 - }, - { - date: '2019-04-01', - value: 14301.83740090022 - }, - { - date: '2019-05-01', - value: 14902.994910520581 - }, - { - date: '2019-06-01', - value: 15373.418326284132 - }, - { - date: '2019-07-01', - value: 17545.70705465703 - }, - { - date: '2019-08-01', - value: 17206.28500223782 - }, - { - date: '2019-09-01', - value: 17782.445200108898 - }, - { - date: '2019-10-01', - value: 17050.25875252655 - }, - { - date: '2019-11-01', - value: 18517.053521416237 - }, - { - date: '2019-12-01', - value: 17850.649021651363 - }, - { - date: '2020-01-01', - value: 18817.269786559067 - }, - { - date: '2020-02-01', - value: 22769.842312027653 - }, - { - date: '2020-03-01', - value: 23065.56002316582 - }, - { - date: '2020-04-01', - value: 19738.122641884733 - }, - { - date: '2020-05-01', - value: 25112.281463810643 - }, - { - date: '2020-06-01', - value: 28753.054132147452 - }, - { - date: '2020-07-01', - value: 32207.62827031543 - }, - { - date: '2020-08-01', - value: 37837.88816828611 - }, - { - date: '2020-09-01', - value: 50018.740185519295 - }, - { - date: '2020-10-01', - value: 46593.322295801525 - }, - { - date: '2020-11-01', - value: 44440.18743231742 - }, - { - date: '2020-12-01', - value: 57582.23077536893 - }, - { - date: '2021-01-01', - value: 68823.02446077733 - }, - { - date: '2021-02-01', - value: 64516.42092139593 - }, - { - date: '2021-03-01', - value: 82465.97581106682 - }, - { - date: '2021-03-18', - value: 86666.03082624623 - } - ], - isAnimated: true +export const Simple: Story = { + args: { + historicalDataItems: [ + { + date: '2017-01-01', + value: 2561.60376 + }, + { + date: '2017-02-01', + value: 2261.60376 + }, + { + date: '2017-03-01', + value: 2268.68157074 + }, + { + date: '2017-04-01', + value: 2525.2942 + }, + { + date: '2017-05-01', + value: 2929.3595107399997 + }, + { + date: '2017-06-01', + value: 3088.5172438900004 + }, + { + date: '2017-07-01', + value: 3281.2490946300004 + }, + { + date: '2017-08-01', + value: 4714.57822537 + }, + { + date: '2017-09-01', + value: 5717.262455259565 + }, + { + date: '2017-10-01', + value: 5338.742482334544 + }, + { + date: '2017-11-01', + value: 6361.263771554509 + }, + { + date: '2017-12-01', + value: 8373.260491904595 + }, + { + date: '2018-01-01', + value: 9783.208968191562 + }, + { + date: '2018-02-01', + value: 7841.2667100173 + }, + { + date: '2018-03-01', + value: 8582.133039380678 + }, + { + date: '2018-04-01', + value: 5901.8362986766715 + }, + { + date: '2018-05-01', + value: 7367.392976151925 + }, + { + date: '2018-06-01', + value: 6490.164314049853 + }, + { + date: '2018-07-01', + value: 6365.351621654618 + }, + { + date: '2018-08-01', + value: 6614.532706931272 + }, + { + date: '2018-09-01', + value: 6402.052882414409 + }, + { + date: '2018-10-01', + value: 15270.327917651943 + }, + { + date: '2018-11-01', + value: 13929.833891940816 + }, + { + date: '2018-12-01', + value: 12995.832254431414 + }, + { + date: '2019-01-01', + value: 11792.447013828998 + }, + { + date: '2019-02-01', + value: 11988.224284346446 + }, + { + date: '2019-03-01', + value: 13536.39667099519 + }, + { + date: '2019-04-01', + value: 14301.83740090022 + }, + { + date: '2019-05-01', + value: 14902.994910520581 + }, + { + date: '2019-06-01', + value: 15373.418326284132 + }, + { + date: '2019-07-01', + value: 17545.70705465703 + }, + { + date: '2019-08-01', + value: 17206.28500223782 + }, + { + date: '2019-09-01', + value: 17782.445200108898 + }, + { + date: '2019-10-01', + value: 17050.25875252655 + }, + { + date: '2019-11-01', + value: 18517.053521416237 + }, + { + date: '2019-12-01', + value: 17850.649021651363 + }, + { + date: '2020-01-01', + value: 18817.269786559067 + }, + { + date: '2020-02-01', + value: 22769.842312027653 + }, + { + date: '2020-03-01', + value: 23065.56002316582 + }, + { + date: '2020-04-01', + value: 19738.122641884733 + }, + { + date: '2020-05-01', + value: 25112.281463810643 + }, + { + date: '2020-06-01', + value: 28753.054132147452 + }, + { + date: '2020-07-01', + value: 32207.62827031543 + }, + { + date: '2020-08-01', + value: 37837.88816828611 + }, + { + date: '2020-09-01', + value: 50018.740185519295 + }, + { + date: '2020-10-01', + value: 46593.322295801525 + }, + { + date: '2020-11-01', + value: 44440.18743231742 + }, + { + date: '2020-12-01', + value: 57582.23077536893 + }, + { + date: '2021-01-01', + value: 68823.02446077733 + }, + { + date: '2021-02-01', + value: 64516.42092139593 + }, + { + date: '2021-03-01', + value: 82465.97581106682 + }, + { + date: '2021-03-18', + value: 86666.03082624623 + } + ], + isAnimated: true + } }; 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 dc2df1c73..09f5a98eb 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.stories.ts b/libs/ui/src/lib/logo/logo.component.stories.ts index 196043eb3..c720ebd92 100644 --- a/libs/ui/src/lib/logo/logo.component.stories.ts +++ b/libs/ui/src/lib/logo/logo.component.stories.ts @@ -1,30 +1,32 @@ -import { Meta, Story, moduleMetadata } from '@storybook/angular'; +import { moduleMetadata } from '@storybook/angular'; +import type { Meta, StoryObj } from '@storybook/angular'; -import { LogoComponent } from './logo.component'; +import { GfLogoComponent } from './logo.component'; export default { title: 'Logo', - component: LogoComponent, + component: GfLogoComponent, decorators: [ moduleMetadata({ imports: [] }) ] -} as Meta; +} as Meta; -const Template: Story = (args: LogoComponent) => ({ - props: args -}); +type Story = StoryObj; -export const Default = Template.bind({}); -Default.args = {}; +export const Default: Story = { + args: {} +}; -export const Large = Template.bind({}); -Large.args = { - size: 'large' +export const Large: Story = { + args: { + size: 'large' + } }; -export const NoLabel = Template.bind({}); -NoLabel.args = { - showLabel: false +export const NoLabel: Story = { + args: { + showLabel: false + } }; diff --git a/libs/ui/src/lib/logo/logo.component.ts b/libs/ui/src/lib/logo/logo.component.ts index 216dfbe3a..0b766429c 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.html b/libs/ui/src/lib/membership-card/membership-card.component.html index 02a4a03f7..37634b020 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 a7cbce91a..270adc0f1 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 b19072946..d40031b18 100644 --- a/libs/ui/src/lib/membership-card/membership-card.component.ts +++ b/libs/ui/src/lib/membership-card/membership-card.component.ts @@ -3,24 +3,36 @@ 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, styleUrls: ['./membership-card.component.scss'], templateUrl: './membership-card.component.html' }) 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/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.stories.ts b/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.stories.ts index 13a3404ee..faf536244 100644 --- a/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.stories.ts +++ b/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.stories.ts @@ -1,25 +1,23 @@ -import { GfLogoModule } from '@ghostfolio/ui/logo'; +import { GfLogoComponent } from '@ghostfolio/ui/logo'; import { RouterTestingModule } from '@angular/router/testing'; -import { Meta, Story, moduleMetadata } from '@storybook/angular'; +import { moduleMetadata } from '@storybook/angular'; +import type { Meta, StoryObj } from '@storybook/angular'; -import { NoTransactionsInfoComponent } from './no-transactions-info.component'; +import { GfNoTransactionsInfoComponent } from './no-transactions-info.component'; export default { title: 'No Transactions Info', - component: NoTransactionsInfoComponent, + component: GfNoTransactionsInfoComponent, decorators: [ moduleMetadata({ - imports: [GfLogoModule, RouterTestingModule] + imports: [GfLogoComponent, RouterTestingModule] }) ] -} as Meta; +} as Meta; -const Template: Story = ( - args: NoTransactionsInfoComponent -) => ({ - props: args -}); +type Story = StoryObj; -export const Default = Template.bind({}); -Default.args = {}; +export const Default: Story = { + args: {} +}; 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 adde1ef49..0d5b044eb 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.stories.ts b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.stories.ts index 7d6db1b52..90aa0cee8 100644 --- a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.stories.ts +++ b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.stories.ts @@ -1,38 +1,39 @@ import { CommonModule } from '@angular/common'; import '@angular/localize/init'; -import { Meta, Story, moduleMetadata } from '@storybook/angular'; +import { moduleMetadata } from '@storybook/angular'; +import type { Meta, StoryObj } from '@storybook/angular'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; -import { PortfolioProportionChartComponent } from './portfolio-proportion-chart.component'; +import { GfPortfolioProportionChartComponent } from './portfolio-proportion-chart.component'; export default { title: 'Portfolio Proportion Chart', - component: PortfolioProportionChartComponent, + component: GfPortfolioProportionChartComponent, decorators: [ moduleMetadata({ - declarations: [PortfolioProportionChartComponent], - imports: [CommonModule, NgxSkeletonLoaderModule] + imports: [ + CommonModule, + GfPortfolioProportionChartComponent, + NgxSkeletonLoaderModule + ] }) ] -} as Meta; +} as Meta; -const Template: Story = ( - args: PortfolioProportionChartComponent -) => ({ - props: args -}); +type Story = StoryObj; -export const Simple = Template.bind({}); -Simple.args = { - baseCurrency: 'USD', - keys: ['name'], - locale: 'en-US', - positions: { - Africa: { name: 'Africa', value: 983.22461479889288 }, - Asia: { name: 'Asia', value: 12074.754633964973 }, - Europe: { name: 'Europe', value: 34432.837085290535 }, - 'North America': { name: 'North America', value: 26539.89987780503 }, - Oceania: { name: 'Oceania', value: 1402.220605072031 }, - 'South America': { name: 'South America', value: 4938.25202180719859 } +export const Simple: Story = { + args: { + baseCurrency: 'USD', + keys: ['name'], + locale: 'en-US', + positions: { + Africa: { name: 'Africa', value: 983.22461479889288 }, + Asia: { name: 'Asia', value: 12074.754633964973 }, + Europe: { name: 'Europe', value: 34432.837085290535 }, + 'North America': { name: 'North America', value: 26539.89987780503 }, + Oceania: { name: 'Oceania', value: 1402.220605072031 }, + 'South America': { name: 'South America', value: 4938.25202180719859 } + } } }; 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 0eef25fa5..6319c3cd7 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' }) @@ -78,7 +77,7 @@ export class GfPortfolioProportionChartComponent @ViewChild('chartCanvas') chartCanvas: ElementRef; - public chart: Chart<'pie'>; + public chart: Chart<'doughnut'>; public isLoading = true; private readonly OTHER_KEY = 'OTHER'; @@ -258,7 +257,7 @@ export class GfPortfolioProportionChartComponent }); }); - const datasets: ChartConfiguration['data']['datasets'] = [ + const datasets: ChartConfiguration<'doughnut'>['data']['datasets'] = [ { backgroundColor: chartDataSorted.map(([, item]) => { return item.color; @@ -296,7 +295,7 @@ export class GfPortfolioProportionChartComponent datasets[1].data[1] = Number.MAX_SAFE_INTEGER; } - const data: ChartConfiguration['data'] = { + const data: ChartConfiguration<'doughnut'>['data'] = { datasets, labels }; @@ -309,7 +308,7 @@ export class GfPortfolioProportionChartComponent ) as unknown; this.chart.update(); } else { - this.chart = new Chart(this.chartCanvas.nativeElement, { + this.chart = new Chart<'doughnut'>(this.chartCanvas.nativeElement, { data, options: { animation: false, diff --git a/libs/ui/src/lib/premium-indicator/premium-indicator.component.stories.ts b/libs/ui/src/lib/premium-indicator/premium-indicator.component.stories.ts index bdb9c6543..4cf61084c 100644 --- a/libs/ui/src/lib/premium-indicator/premium-indicator.component.stories.ts +++ b/libs/ui/src/lib/premium-indicator/premium-indicator.component.stories.ts @@ -1,29 +1,28 @@ import { CommonModule } from '@angular/common'; import { RouterTestingModule } from '@angular/router/testing'; -import { Meta, Story, moduleMetadata } from '@storybook/angular'; +import { moduleMetadata } from '@storybook/angular'; +import type { Meta, StoryObj } from '@storybook/angular'; -import { PremiumIndicatorComponent } from './premium-indicator.component'; +import { GfPremiumIndicatorComponent } from './premium-indicator.component'; export default { title: 'Premium Indicator', - component: PremiumIndicatorComponent, + component: GfPremiumIndicatorComponent, decorators: [ moduleMetadata({ imports: [CommonModule, RouterTestingModule] }) ] -} as Meta; +} as Meta; -const Template: Story = ( - args: PremiumIndicatorComponent -) => ({ - props: args -}); +type Story = StoryObj; -export const Default = Template.bind({}); -Default.args = {}; +export const Default: Story = { + args: {} +}; -export const WithoutLink = Template.bind({}); -WithoutLink.args = { - enableLink: false +export const WithoutLink = { + args: { + enableLink: false + } }; 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 f3350f447..17b0f94dd 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 8c2d19fca..1938467f5 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.html b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html index d055a618a..c6327c318 100644 --- a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html +++ b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html @@ -19,7 +19,7 @@ [value]="lookupItem" > {{ lookupItem.name }} + >{{ lookupItem.name }} @if (lookupItem.dataProviderInfo.isPremium) { } @@ -29,6 +29,9 @@ @if (lookupItem.assetSubClass) { · {{ lookupItem.assetSubClassString }} } + @if (lookupItem.dataProviderInfo.name) { + · {{ lookupItem.dataProviderInfo.name }} + } } @empty { 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 a537c50a7..3c56c4748 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.html b/libs/ui/src/lib/top-holdings/top-holdings.component.html index 72463da4a..d42d742b2 100644 --- a/libs/ui/src/lib/top-holdings/top-holdings.component.html +++ b/libs/ui/src/lib/top-holdings/top-holdings.component.html @@ -1,14 +1,18 @@
+ + + + + + - @@ -57,8 +51,107 @@ + + + + - + +
+ Name @@ -17,12 +21,7 @@ - + Value @@ -37,12 +36,7 @@ - + Allocation % +
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
{{ parentHolding?.name }}
+
+
+ {{ + parentHolding?.symbol | gfSymbol + }} +
+
+ Name + +
+ +
+
+ Value + +
+ +
+
+ Allocation + % +
+
+
+
diff --git a/libs/ui/src/lib/top-holdings/top-holdings.component.scss b/libs/ui/src/lib/top-holdings/top-holdings.component.scss index 990b8b294..b3e811a2c 100644 --- a/libs/ui/src/lib/top-holdings/top-holdings.component.scss +++ b/libs/ui/src/lib/top-holdings/top-holdings.component.scss @@ -1,11 +1,33 @@ :host { display: block; - .gf-table { - th { - ::ng-deep { - .mat-sort-header-container { - justify-content: inherit; + .holdings-table { + table-layout: auto; + + tr { + &:not(.expanded) + tr.holding-detail td { + border-bottom: 0; + } + + &.expanded { + > td { + font-weight: bold; + } + } + + &.holding-detail { + height: 0; + } + + .holding-parents-table { + --table-padding: 0.5em; + + tr { + height: auto; + + td { + padding: var(--table-padding); + } } } } 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 0a3f0e977..13ceb239c 100644 --- a/libs/ui/src/lib/top-holdings/top-holdings.component.ts +++ b/libs/ui/src/lib/top-holdings/top-holdings.component.ts @@ -1,39 +1,61 @@ +import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; import { getLocale } from '@ghostfolio/common/helper'; -import { Holding } from '@ghostfolio/common/interfaces'; +import { + AssetProfileIdentifier, + HoldingWithParents, + PortfolioPosition +} from '@ghostfolio/common/interfaces'; import { GfValueComponent } from '@ghostfolio/ui/value'; +import { + animate, + state, + style, + transition, + trigger +} from '@angular/animations'; import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, + EventEmitter, Input, OnChanges, OnDestroy, + Output, ViewChild } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator'; -import { MatSort, MatSortModule } from '@angular/material/sort'; import { MatTableDataSource, MatTableModule } from '@angular/material/table'; -import { get } from 'lodash'; +import { DataSource } from '@prisma/client'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { Subject } from 'rxjs'; @Component({ + animations: [ + trigger('detailExpand', [ + state('collapsed,void', style({ height: '0px', minHeight: '0' })), + state('expanded', style({ height: '*' })), + transition( + 'expanded <=> collapsed', + animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)') + ) + ]) + ], changeDetection: ChangeDetectionStrategy.OnPush, imports: [ CommonModule, + GfSymbolModule, GfValueComponent, MatButtonModule, MatPaginatorModule, - MatSortModule, MatTableModule, NgxSkeletonLoaderModule ], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-top-holdings', - standalone: true, styleUrls: ['./top-holdings.component.scss'], templateUrl: './top-holdings.component.html' }) @@ -41,12 +63,20 @@ export class GfTopHoldingsComponent implements OnChanges, OnDestroy { @Input() baseCurrency: string; @Input() locale = getLocale(); @Input() pageSize = Number.MAX_SAFE_INTEGER; - @Input() topHoldings: Holding[]; + @Input() topHoldings: HoldingWithParents[]; + @Input() positions: { + [symbol: string]: Pick & { + dataSource?: DataSource; + name: string; + value: number; + }; + } = {}; + + @Output() holdingClicked = new EventEmitter(); @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - public dataSource = new MatTableDataSource(); + public dataSource = new MatTableDataSource(); public displayedColumns: string[] = [ 'name', 'valueInBaseCurrency', @@ -61,14 +91,16 @@ export class GfTopHoldingsComponent implements OnChanges, OnDestroy { this.dataSource = new MatTableDataSource(this.topHoldings); this.dataSource.paginator = this.paginator; - this.dataSource.sort = this.sort; - this.dataSource.sortingDataAccessor = get; if (this.topHoldings) { this.isLoading = false; } } + public onClickHolding(assetProfileIdentifier: AssetProfileIdentifier) { + this.holdingClicked.emit(assetProfileIdentifier); + } + public onShowAllHoldings() { this.pageSize = Number.MAX_SAFE_INTEGER; 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 9a8594ada..4c3167c9e 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' }) @@ -197,7 +196,7 @@ export class GfTreemapChartComponent min: Math.min(...negativeNetPerformancePercents) }; - const data: ChartConfiguration['data'] = { + const data: ChartConfiguration<'treemap'>['data'] = { datasets: [ { backgroundColor: (ctx) => { diff --git a/libs/ui/src/lib/trend-indicator/trend-indicator.component.stories.ts b/libs/ui/src/lib/trend-indicator/trend-indicator.component.stories.ts index 0d8438706..1db9e2995 100644 --- a/libs/ui/src/lib/trend-indicator/trend-indicator.component.stories.ts +++ b/libs/ui/src/lib/trend-indicator/trend-indicator.component.stories.ts @@ -1,50 +1,53 @@ -import { Meta, Story, moduleMetadata } from '@storybook/angular'; +import { moduleMetadata } from '@storybook/angular'; +import type { Meta, StoryObj } from '@storybook/angular'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; -import { TrendIndicatorComponent } from './trend-indicator.component'; +import { GfTrendIndicatorComponent } from './trend-indicator.component'; export default { title: 'Trend Indicator', - component: TrendIndicatorComponent, + component: GfTrendIndicatorComponent, decorators: [ moduleMetadata({ imports: [NgxSkeletonLoaderModule] }) ] -} as Meta; +} as Meta; -const Template: Story = ( - args: TrendIndicatorComponent -) => ({ - props: args -}); +type Story = StoryObj; -export const Loading = Template.bind({}); -Loading.args = { - isLoading: true +export const Loading: Story = { + args: { + isLoading: true + } }; -export const Default = Template.bind({}); -Default.args = {}; +export const Default: Story = { + args: {} +}; -export const Delayed = Template.bind({}); -Delayed.args = { - marketState: 'delayed', - range: '1d' +export const Delayed: Story = { + args: { + dateRange: '1d', + marketState: 'delayed' + } }; -export const Down = Template.bind({}); -Down.args = { - value: -1 +export const Down: Story = { + args: { + value: -1 + } }; -export const Up = Template.bind({}); -Up.args = { - value: 1 +export const Up: Story = { + args: { + value: 1 + } }; -export const MarketClosed = Template.bind({}); -MarketClosed.args = { - marketState: 'closed', - range: '1d' +export const MarketClosed: Story = { + args: { + dateRange: '1d', + marketState: 'closed' + } }; 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 9f550add3..e44c41aa9 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.stories.ts b/libs/ui/src/lib/value/value.component.stories.ts index fc3e202ea..ff9f5a259 100644 --- a/libs/ui/src/lib/value/value.component.stories.ts +++ b/libs/ui/src/lib/value/value.component.stories.ts @@ -1,71 +1,77 @@ -import { Meta, Story, moduleMetadata } from '@storybook/angular'; +import { moduleMetadata } from '@storybook/angular'; +import type { Meta, StoryObj } from '@storybook/angular'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; -import { ValueComponent } from './value.component'; +import { GfValueComponent } from './value.component'; export default { title: 'Value', - component: ValueComponent, + component: GfValueComponent, decorators: [ moduleMetadata({ imports: [NgxSkeletonLoaderModule] }) ] -} as Meta; +} as Meta; -const Template: Story = (args: ValueComponent) => ({ - props: args -}); +type Story = StoryObj; -export const Loading = Template.bind({}); -Loading.args = { - value: undefined +export const Loading: Story = { + args: { + value: undefined + } }; -export const Currency = Template.bind({}); -Currency.args = { - isCurrency: true, - locale: 'en-US', - unit: 'USD', - value: 7 +export const Currency: Story = { + args: { + isCurrency: true, + locale: 'en-US', + unit: 'USD', + value: 7 + } }; -export const Label = Template.bind({}); -Label.args = { - locale: 'en-US', - value: 7.25 +export const Label: Story = { + args: { + locale: 'en-US', + value: 7.25 + } }; -export const PerformancePositive = Template.bind({}); -PerformancePositive.args = { - locale: 'en-US', - colorizeSign: true, - isPercent: true, - value: 0.0136810853673890378 +export const PerformancePositive: Story = { + args: { + colorizeSign: true, + isPercent: true, + locale: 'en-US', + value: 0.0136810853673890378 + }, + name: 'Performance (positive)' }; -PerformancePositive.storyName = 'Performance (positive)'; -export const PerformanceNegative = Template.bind({}); -PerformanceNegative.args = { - locale: 'en-US', - colorizeSign: true, - isPercent: true, - value: -0.0136810853673890378 +export const PerformanceNegative: Story = { + args: { + colorizeSign: true, + isPercent: true, + locale: 'en-US', + value: -0.0136810853673890378 + }, + name: 'Performance (negative)' }; -PerformanceNegative.storyName = 'Performance (negative)'; -export const PerformanceCloseToZero = Template.bind({}); -PerformanceCloseToZero.args = { - locale: 'en-US', - colorizeSign: true, - isPercent: true, - value: -2.388915360475e-8 +export const PerformanceCloseToZero: Story = { + args: { + colorizeSign: true, + isPercent: true, + locale: 'en-US', + value: -2.388915360475e-8 + }, + name: 'Performance (negative zero)' }; -PerformanceCloseToZero.storyName = 'Performance (negative zero)'; -export const Precision = Template.bind({}); -Precision.args = { - locale: 'en-US', - precision: 3, - value: 7.2534802394809285309 +export const Precision: Story = { + args: { + locale: 'en-US', + precision: 3, + value: 7.2534802394809285309 + } }; diff --git a/libs/ui/src/lib/value/value.component.ts b/libs/ui/src/lib/value/value.component.ts index 06b885ff5..d93c5fbcb 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/nx.json b/nx.json index e39b5dd23..785ffa781 100644 --- a/nx.json +++ b/nx.json @@ -63,6 +63,7 @@ "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)", "!{projectRoot}/**/*.stories.@(js|jsx|ts|tsx|mdx)", "!{projectRoot}/.storybook/**/*", + "!{projectRoot}/eslint.config.cjs", "!{projectRoot}/jest.config.[jt]s", "!{projectRoot}/src/test-setup.[jt]s", "!{projectRoot}/tsconfig.storybook.json", diff --git a/package-lock.json b/package-lock.json index beaa52766..ca112661a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,26 +1,26 @@ { "name": "ghostfolio", - "version": "2.122.0", + "version": "2.135.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.122.0", + "version": "2.135.0", "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", @@ -28,139 +28,140 @@ "@dfinity/identity": "0.15.7", "@dfinity/principal": "0.15.7", "@dinero.js/currencies": "2.0.0-alpha.8", - "@internationalized/number": "3.5.2", - "@nestjs/bull": "10.0.1", - "@nestjs/cache-manager": "2.2.2", - "@nestjs/common": "10.1.3", - "@nestjs/config": "3.0.0", - "@nestjs/core": "10.1.3", - "@nestjs/event-emitter": "2.0.4", - "@nestjs/jwt": "10.1.0", + "@internationalized/number": "3.6.0", + "@nestjs/bull": "10.2.3", + "@nestjs/cache-manager": "2.3.0", + "@nestjs/common": "10.4.15", + "@nestjs/config": "3.3.0", + "@nestjs/core": "10.4.15", + "@nestjs/event-emitter": "2.1.1", + "@nestjs/jwt": "10.2.0", "@nestjs/passport": "10.0.3", - "@nestjs/platform-express": "10.1.3", - "@nestjs/schedule": "3.0.2", - "@nestjs/serve-static": "4.0.0", - "@prisma/client": "5.21.1", + "@nestjs/platform-express": "10.4.15", + "@nestjs/schedule": "4.1.2", + "@nestjs/serve-static": "4.0.2", + "@prisma/client": "6.2.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", "await-lock": "^2.2.2", - "big.js": "6.2.1", - "body-parser": "1.20.2", + "big.js": "6.2.2", "bootstrap": "4.6.0", - "bull": "4.16.2", + "bull": "4.16.4", "cache-manager": "5.7.6", "cache-manager-redis-yet": "5.1.4", - "chart.js": "4.2.0", + "chart.js": "4.4.7", "chartjs-adapter-date-fns": "3.0.0", - "chartjs-chart-treemap": "2.3.1", - "chartjs-plugin-annotation": "2.1.2", + "chartjs-chart-treemap": "3.1.0", + "chartjs-plugin-annotation": "3.1.0", "chartjs-plugin-datalabels": "2.2.0", - "cheerio": "1.0.0-rc.12", + "cheerio": "1.0.0", "class-transformer": "0.5.1", "class-validator": "0.14.1", "color": "4.2.3", - "countries-and-timezones": "3.4.1", + "countries-and-timezones": "3.7.2", "countries-list": "3.1.1", "countup.js": "2.8.0", - "date-fns": "3.6.0", - "envalid": "7.3.1", + "date-fns": "4.1.0", + "envalid": "8.0.0", "google-spreadsheet": "3.2.0", - "got": "11.8.6", "helmet": "7.0.0", "http-status-codes": "2.3.0", "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", "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", + "reflect-metadata": "0.2.2", + "rxjs": "7.8.1", "stripe": "17.3.0", "svgmap": "2.6.0", "twitter-api-v2": "1.14.2", - "uuid": "9.0.1", + "uuid": "11.0.5", "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", - "@nestjs/schematics": "10.0.1", - "@nestjs/testing": "10.1.3", - "@nx/angular": "20.0.6", - "@nx/cypress": "20.0.6", - "@nx/eslint-plugin": "20.0.6", - "@nx/jest": "20.0.6", - "@nx/js": "20.0.6", - "@nx/nest": "20.0.6", - "@nx/node": "20.0.6", - "@nx/storybook": "20.0.6", - "@nx/web": "20.0.6", - "@nx/workspace": "20.0.6", - "@schematics/angular": "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", + "@eslint/eslintrc": "3.2.0", + "@eslint/js": "9.18.0", + "@nestjs/schematics": "10.2.3", + "@nestjs/testing": "10.4.15", + "@nx/angular": "20.3.3", + "@nx/cypress": "20.3.3", + "@nx/eslint-plugin": "20.3.3", + "@nx/jest": "20.3.3", + "@nx/js": "20.3.3", + "@nx/module-federation": "20.3.3", + "@nx/nest": "20.3.3", + "@nx/node": "20.3.3", + "@nx/storybook": "20.3.3", + "@nx/web": "20.3.3", + "@nx/workspace": "20.3.3", + "@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", "@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", "@types/node": "20.14.10", "@types/papaparse": "5.3.7", "@types/passport-google-oauth20": "2.0.16", - "@typescript-eslint/eslint-plugin": "6.21.0", - "@typescript-eslint/parser": "6.21.0", + "@typescript-eslint/eslint-plugin": "8.20.0", + "@typescript-eslint/parser": "8.20.0", "codelyzer": "6.0.1", "cypress": "6.2.1", - "eslint": "8.57.0", + "eslint": "9.18.0", "eslint-config-prettier": "9.1.0", - "eslint-plugin-cypress": "2.15.1", - "eslint-plugin-import": "2.29.1", - "eslint-plugin-storybook": "0.6.15", - "husky": "9.1.6", + "eslint-plugin-cypress": "3.2.0", + "eslint-plugin-import": "2.31.0", + "eslint-plugin-storybook": "0.10.2", + "husky": "9.1.7", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "jest-preset-angular": "14.1.0", - "nx": "20.0.6", - "prettier": "3.3.3", + "jest-preset-angular": "14.4.2", + "nx": "20.3.3", + "prettier": "3.4.2", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "5.21.1", + "prisma": "6.2.1", "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.3.6", + "storybook": "8.4.7", "ts-jest": "29.1.0", "ts-node": "10.9.2", - "tslib": "2.6.0", - "typescript": "5.5.3", + "tslib": "2.8.1", + "typescript": "5.6.3", "webpack-bundle-analyzer": "4.10.2" }, "engines": { @@ -168,10 +169,10 @@ } }, "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==", - "devOptional": true, + "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" }, "node_modules/@ampproject/remapping": { @@ -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": { @@ -202,49 +203,38 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/architect/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": { - "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 +242,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 +271,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 +299,9 @@ "@angular/service-worker": { "optional": true }, + "@angular/ssr": { + "optional": true + }, "@web/test-runner": { "optional": true }, @@ -339,28 +328,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,2312 +347,2569 @@ "webpack-dev-server": "^5.0.2" } }, - "node_modules/@angular-devkit/build-webpack/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/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==", + "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": { - "ajv": "8.17.1", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" + "@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": "^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": ">=6.9.0" } }, - "node_modules/@angular-devkit/core/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/@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/schematics": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.9.tgz", - "integrity": "sha512-aIY5/IomDOINGCtFYi77uo0acDpdQNNCighfBBUGEBNMQ1eE3oGNGpLAH/qWeuxJndgmxrdKsvws9DdT46kLig==", + "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", - "dependencies": { - "@angular-devkit/core": "18.2.9", - "jsonc-parser": "3.3.1", - "magic-string": "0.30.11", - "ora": "5.4.1", - "rxjs": "7.8.1" - }, + "optional": true, + "os": [ + "aix" + ], "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": ">=18" } }, - "node_modules/@angular-devkit/schematics/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/@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-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==", - "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==", - "dev": true, + "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", - "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.1.0", - "@angular-eslint/utils": "18.1.0" - }, - "peerDependencies": { - "@typescript-eslint/utils": "^7.11.0 || ^8.0.0-alpha.37", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": "*" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "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==", - "dev": true, + "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", - "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" - }, - "peerDependencies": { - "@typescript-eslint/utils": "^7.11.0 || ^8.0.0-alpha.37", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": "*" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "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==", - "dev": true, + "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", - "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.1.0", - "eslint-scope": "^8.0.0" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": "*" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" } }, - "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==", - "dev": true, + "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", - "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.1.0" - }, - "peerDependencies": { - "@typescript-eslint/utils": "^7.11.0 || ^8.0.0-alpha.37", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": "*" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "tslib": "^2.3.0" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/core": "18.2.8" + "node": ">=18" } }, - "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==", + "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", - "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", - "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-syntax-import-attributes": "7.24.7", - "@inquirer/confirm": "3.1.22", - "@vitejs/plugin-basic-ssl": "1.1.0", - "browserslist": "^4.23.0", - "critters": "0.0.24", - "esbuild": "0.23.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", - "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", - "semver": "7.6.3", - "vite": "5.4.6", - "watchpack": "2.4.1" - }, + "optional": true, + "os": [ + "freebsd" + ], "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", - "@angular/localize": "^18.0.0", - "@angular/platform-server": "^18.0.0", - "@angular/service-worker": "^18.0.0", - "less": "^4.2.0", - "postcss": "^8.4.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.4 <5.6" - }, - "peerDependenciesMeta": { - "@angular/localize": { - "optional": true - }, - "@angular/platform-server": { - "optional": true - }, - "@angular/service-worker": { - "optional": true - }, - "less": { - "optional": true - }, - "postcss": { - "optional": true - }, - "tailwindcss": { - "optional": true - } + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "tslib": "^2.3.0" - }, - "optionalDependencies": { - "parse5": "^7.1.2" - }, - "peerDependencies": { - "@angular/common": "^18.0.0 || ^19.0.0", - "@angular/core": "^18.0.0 || ^19.0.0", - "rxjs": "^6.5.3 || ^7.4.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "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==", - "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", - "@yarnpkg/lockfile": "1.1.0", - "ini": "4.1.3", - "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", - "resolve": "1.22.8", - "semver": "7.6.3", - "symbol-observable": "4.0.0", - "yargs": "17.7.2" - }, - "bin": { - "ng": "bin/ng.js" - }, + "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.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "tslib": "^2.3.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/core": "18.2.8", - "rxjs": "^6.5.3 || ^7.4.0" + "node": ">=18" } }, - "node_modules/@angular/compiler": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.8.tgz", - "integrity": "sha512-JRedHNfK1CCPVyeGQB5w3WBYqMA6X8Q240CkvjlGfn0pVXihf9DWk3nkSQJVgYxpvpHfxdgjaYZ5IpMzlkmkhw==", + "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", - "dependencies": { - "tslib": "^2.3.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/core": "18.2.8" - }, - "peerDependenciesMeta": { - "@angular/core": { - "optional": true - } + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "@babel/core": "7.25.2", - "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^4.0.0", - "convert-source-map": "^1.5.1", - "reflect-metadata": "^0.2.0", - "semver": "^7.0.0", - "tslib": "^2.3.0", - "yargs": "^17.2.1" - }, - "bin": { - "ng-xi18n": "bundles/src/bin/ng_xi18n.js", - "ngc": "bundles/src/bin/ngc.js", - "ngcc": "bundles/ngcc/index.js" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/compiler": "18.2.8", - "typescript": ">=5.4 <5.6" + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "readdirp": "^4.0.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node": ">=18" } }, - "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==", + "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": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "node": ">=18" } }, - "node_modules/@angular/compiler-cli/node_modules/reflect-metadata": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", - "license": "Apache-2.0" - }, - "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==", + "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", - "dependencies": { - "tslib": "^2.3.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.14.10" + "node": ">=18" } }, - "node_modules/@angular/forms": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.8.tgz", - "integrity": "sha512-JCLki7KC6D5vF6dE6yGlBmW33khIgpHs8N9SzuiJtkQqNDTIQA8cPsGV6qpLpxflxASynQOX5lDkWYdQyfm77Q==", + "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", - "dependencies": { - "tslib": "^2.3.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "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", - "rxjs": "^6.5.3 || ^7.4.0" + "node": ">=18" } }, - "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==", - "dev": true, + "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.19.1 || ^20.11.1 || >=22.0.0" + "node": ">=18" } }, - "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==", - "devOptional": true, + "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", - "dependencies": { - "@babel/core": "7.25.2", - "@types/babel__core": "7.20.5", - "fast-glob": "3.3.2", - "yargs": "^17.2.1" - }, - "bin": { - "localize-extract": "tools/bundles/src/extract/cli.js", - "localize-migrate": "tools/bundles/src/migrate/cli.js", - "localize-translate": "tools/bundles/src/translate/cli.js" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/compiler": "18.2.8", - "@angular/compiler-cli": "18.2.8" + "node": ">=18" } }, - "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==", + "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", - "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", - "rxjs": "^6.5.3 || ^7.4.0" + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "tslib": "^2.3.0" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "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" - }, - "peerDependenciesMeta": { - "@angular/animations": { - "optional": true - } + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "tslib": "^2.3.0" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "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" + "node": ">=18" } }, - "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==", - "dev": true, + "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", - "dependencies": { - "@angular-devkit/schematics": "18.2.9", - "@schematics/angular": "18.2.9", - "parse5-html-rewriting-stream": "7.0.0" - }, + "optional": true, + "os": [ + "win32" + ], "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/cli": "^18.0.0" - }, - "peerDependenciesMeta": { - "@angular/cli": { - "optional": true - } + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "tslib": "^2.3.0" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "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", - "rxjs": "^6.5.3 || ^7.4.0" + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "tslib": "^2.3.0" - }, - "bin": { - "ngsw-config": "ngsw-config.js" - }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + "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/common": "18.2.8", - "@angular/core": "18.2.8" + "@angular/compiler-cli": "^19.0.0", + "typescript": ">=5.5 <5.7", + "webpack": "^5.54.0" } }, - "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==", + "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": { - "@babel/highlight": "^7.25.7", - "picocolors": "^1.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "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==", + "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", - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "ajv": "^6.9.1" } }, - "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==", + "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": { - "@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", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "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": ">=6.9.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", - "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", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" } }, - "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==", + "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": { - "@babel/types": "^7.25.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "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==", + "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": { - "@babel/types": "^7.24.7" + "fast-deep-equal": "^3.1.3" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "ajv": "^8.8.2" } }, - "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==", + "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": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">=6.9.0" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "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==", + "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": { - "@babel/compat-data": "^7.25.7", - "@babel/helper-validator-option": "^7.25.7", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "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==", + "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": { - "@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", - "semver": "^6.3.1" + "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": ">=6.9.0" + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, - "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==", + "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", - "dependencies": { - "@babel/types": "^7.25.7" + "optional": true, + "bin": { + "esbuild": "bin/esbuild" }, "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", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "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==", + "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": { - "@babel/helper-annotate-as-pure": "^7.25.7", - "regexpu-core": "^6.1.1", - "semver": "^6.3.1" + "@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": ">=6.9.0" + "node": ">=18" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "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": { - "@babel/types": "^7.25.7" + "@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": ">=6.9.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.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", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", + "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": { - "semver": "bin/semver.js" + "js-yaml": "bin/js-yaml.js" } }, - "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==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } + "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/@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } + "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/@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", - "dev": true, + "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", - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, "engines": { - "node": ">=6.9.0" + "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/@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", - "dev": 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", - "dependencies": { - "@babel/types": "^7.24.7" - }, "engines": { - "node": ">=6.9.0" + "node": ">= 12.13.0" } }, - "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==", + "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": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" }, "engines": { - "node": ">=6.9.0" + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.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==", + "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": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "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==", + "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": { - "@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" - }, - "engines": { - "node": ">=6.9.0" + "fast-deep-equal": "^3.1.3" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "ajv": "^8.8.2" } }, - "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==", + "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": { - "@babel/types": "^7.25.7" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">=6.9.0" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "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==", + "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": ">=6.9.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "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": { - "@babel/helper-annotate-as-pure": "^7.25.7", - "@babel/helper-wrap-function": "^7.25.7", - "@babel/traverse": "^7.25.7" + "cosmiconfig": "^9.0.0", + "jiti": "^1.20.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=6.9.0" + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@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/@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==", + "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": { - "@babel/types": "^7.25.7" + "neo-async": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "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/@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==", + "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": { - "@babel/helper-member-expression-to-functions": "^7.25.7", - "@babel/helper-optimise-call-expression": "^7.25.7", - "@babel/traverse": "^7.25.7" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, "engines": { - "node": ">=6.9.0" + "node": ">= 10.13.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "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==", + "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", - "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" - }, "engines": { - "node": ">=6.9.0" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "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": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" + "@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": ">=6.9.0" + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "node_modules/@angular-devkit/core": { + "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": { - "@babel/types": "^7.24.7" + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" }, "engines": { - "node": ">=6.9.0" + "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": "^4.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } } }, - "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==", + "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", - "engines": { - "node": ">=6.9.0" + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "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==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } + "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/@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==", - "license": "MIT", + "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": ">=6.9.0" + "node": ">= 8" } }, - "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==", + "node_modules/@angular-devkit/schematics": { + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.0.6.tgz", + "integrity": "sha512-R9hlHfAh1HKoIWgnYJlOEKhUezhTNl0fpUmHxG2252JSY5FLRxmYArTtJYYmbNdBbsBLNg3UHyM/GBPvJSA3NQ==", "license": "MIT", "dependencies": { - "@babel/template": "^7.25.7", - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" + "@angular-devkit/core": "19.0.6", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.12", + "ora": "5.4.1", + "rxjs": "7.8.1" }, "engines": { - "node": ">=6.9.0" + "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/@babel/helpers": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", - "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", + "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": { - "@babel/template": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" + "@jridgewell/sourcemap-codec": "^1.5.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==", + "node_modules/@angular-eslint/bundled-angular-compiler": { + "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": "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": { - "@babel/helper-validator-identifier": "^7.25.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@angular-eslint/bundled-angular-compiler": "19.0.2", + "@angular-eslint/utils": "19.0.2" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" } }, - "node_modules/@babel/parser": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", - "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", + "node_modules/@angular-eslint/eslint-plugin-template": { + "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": { - "@babel/types": "^7.25.8" - }, - "bin": { - "parser": "bin/babel-parser.js" + "@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/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": ">=6.0.0" + "node": ">= 0.4" } }, - "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==", + "node_modules/@angular-eslint/template-parser": { + "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": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/traverse": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" + "@angular-eslint/bundled-angular-compiler": "19.0.2", + "eslint-scope": "^8.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" } }, - "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==", - "license": "MIT", + "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": { - "@babel/helper-plugin-utils": "^7.25.7" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=6.9.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://opencollective.com/eslint" } }, - "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==", + "node_modules/@angular-eslint/utils": { + "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": { - "@babel/helper-plugin-utils": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" + "@angular-eslint/bundled-angular-compiler": "19.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" } }, - "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==", + "node_modules/@angular/animations": { + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.0.5.tgz", + "integrity": "sha512-HCOF2CrhUvjoZWusd4nh32VOxpUrg6bV+3Z8Q36Ix3aZdni8v0qoP2rl5wGbotaPtYg5RtyDH60Z2AOPKqlrZg==", "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" + "tslib": "^2.3.0" }, "engines": { - "node": ">=6.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@babel/core": "^7.13.0" + "@angular/core": "19.0.5" } }, - "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==", + "node_modules/@angular/build": { + "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": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/traverse": "^7.25.7" + "@ampproject/remapping": "2.3.0", + "@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.26.0", + "@inquirer/confirm": "5.0.2", + "@vitejs/plugin-basic-ssl": "1.1.0", + "beasties": "0.1.0", + "browserslist": "^4.23.0", + "esbuild": "0.24.0", + "fast-glob": "3.3.2", + "https-proxy-agent": "7.0.5", + "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.7.0", + "rollup": "4.26.0", + "sass": "1.80.7", + "semver": "7.6.3", + "vite": "5.4.11", + "watchpack": "2.4.2" }, "engines": { - "node": ">=6.9.0" + "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": { - "@babel/core": "^7.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.5 <5.7" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "@angular/ssr": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tailwindcss": { + "optional": true + } } }, - "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==", - "dev": true, + "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", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/plugin-syntax-decorators": "^7.25.7" - }, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "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": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "devOptional": true, + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "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==", - "dev": true, + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "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==", - "devOptional": true, + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "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==", - "devOptional": true, + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "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", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=18" } }, - "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==", + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "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==", + "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": { - "@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" + "agent-base": "^7.0.2", + "debug": "4" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 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==", + "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": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "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==", + "node_modules/@angular/cdk": { + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.0.4.tgz", + "integrity": "sha512-P8V1n6AFFjBUJG3YRgw8DiiNDWPZVrwQ42wbwgZxd4s2TQAuNFg3YY8h/DSMVxt2sXpavrshZsoLtP9yLKZjHA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "tslib": "^2.3.0" }, - "engines": { - "node": ">=6.9.0" + "optionalDependencies": { + "parse5": "^7.1.2" }, "peerDependencies": { - "@babel/core": "^7.0.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/@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==", + "node_modules/@angular/cli": { + "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": { - "@babel/helper-plugin-utils": "^7.25.7" + "@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": "5.0.0", + "jsonc-parser": "3.3.1", + "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", + "yargs": "17.7.2" }, - "engines": { - "node": ">=6.9.0" + "bin": { + "ng": "bin/ng.js" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "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/@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==", - "license": "MIT", + "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": { - "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^6.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "^18.17.0 || >=20.5.0" } }, - "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==", + "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": { - "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">=6.9.0" + "bin": { + "resolve": "bin/resolve" }, - "peerDependencies": { - "@babel/core": "^7.12.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/@angular/common": { + "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": { - "@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", - "globals": "^11.1.0" + "tslib": "^2.3.0" }, "engines": { - "node": ">=6.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@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" + "@angular/core": "19.0.5", + "rxjs": "^6.5.3 || ^7.4.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==", + "node_modules/@angular/compiler": { + "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": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/template": "^7.25.7" + "tslib": "^2.3.0" }, "engines": { - "node": ">=6.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@angular/core": "19.0.5" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } } }, - "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==", + "node_modules/@angular/compiler-cli": { + "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/helper-plugin-utils": "^7.25.7" + "@babel/core": "7.26.0", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^4.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.2.0", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" }, "engines": { - "node": ">=6.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@angular/compiler": "19.0.5", + "typescript": ">=5.5 <5.7" } }, - "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==", + "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", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/@angular/core": { + "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": { - "@babel/helper-create-regexp-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "tslib": "^2.3.0" }, "engines": { - "node": ">=6.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.15.0" } }, - "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==", + "node_modules/@angular/forms": { + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.0.5.tgz", + "integrity": "sha512-OhNFkfOoguqCDq07vNBV28FFrmTM8S11Z3Cd6PQZJJF9TgAtpV5KtF7A3eXBCN92W4pmqluomPjfK7YyImzIYQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "tslib": "^2.3.0" }, "engines": { - "node": ">=6.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@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/@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==", + "node_modules/@angular/language-service": { + "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", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" } }, - "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==", + "node_modules/@angular/localize": { + "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/helper-plugin-utils": "^7.25.7" + "@babel/core": "7.26.0", + "@types/babel__core": "7.20.5", + "fast-glob": "3.3.2", + "yargs": "^17.2.1" + }, + "bin": { + "localize-extract": "tools/bundles/src/extract/cli.js", + "localize-migrate": "tools/bundles/src/migrate/cli.js", + "localize-translate": "tools/bundles/src/translate/cli.js" }, "engines": { - "node": ">=6.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@angular/compiler": "19.0.5", + "@angular/compiler-cli": "19.0.5" } }, - "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==", + "node_modules/@angular/material": { + "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": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" + "tslib": "^2.3.0" }, "peerDependencies": { - "@babel/core": "^7.0.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/@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==", + "node_modules/@angular/platform-browser": { + "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": { - "@babel/helper-plugin-utils": "^7.25.7" + "tslib": "^2.3.0" }, "engines": { - "node": ">=6.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@angular/animations": "19.0.5", + "@angular/common": "19.0.5", + "@angular/core": "19.0.5" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } } }, - "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==", + "node_modules/@angular/platform-browser-dynamic": { + "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": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" + "tslib": "^2.3.0" }, "engines": { - "node": ">=6.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@angular/common": "19.0.5", + "@angular/compiler": "19.0.5", + "@angular/core": "19.0.5", + "@angular/platform-browser": "19.0.5" } }, - "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==", + "node_modules/@angular/pwa": { + "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": { - "@babel/helper-compilation-targets": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/traverse": "^7.25.7" + "@angular-devkit/schematics": "19.0.6", + "@schematics/angular": "19.0.6", + "parse5-html-rewriting-stream": "7.0.0" }, "engines": { - "node": ">=6.9.0" + "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": { - "@babel/core": "^7.0.0-0" + "@angular/cli": "^19.0.0-next.0" + }, + "peerDependenciesMeta": { + "@angular/cli": { + "optional": true + } } }, - "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==", + "node_modules/@angular/router": { + "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": { - "@babel/helper-plugin-utils": "^7.25.7" + "tslib": "^2.3.0" }, "engines": { - "node": ">=6.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@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/@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==", + "node_modules/@angular/service-worker": { + "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": { - "@babel/helper-plugin-utils": "^7.25.7" + "tslib": "^2.3.0" + }, + "bin": { + "ngsw-config": "ngsw-config.js" }, "engines": { - "node": ">=6.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@angular/common": "19.0.5", + "@angular/core": "19.0.5" } }, - "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==", + "node_modules/@babel/code-frame": { + "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/helper-plugin-utils": "^7.25.7" + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/compat-data": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", + "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" - }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/core": { + "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": { - "@babel/helper-module-transforms": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@ampproject/remapping": "^2.2.0", + "@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", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "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==", + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "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/helper-module-transforms": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-simple-access": "^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" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/helper-annotate-as-pure": { + "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/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/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/helper-compilation-targets": { + "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/helper-module-transforms": "^7.25.7", - "@babel/helper-plugin-utils": "^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" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "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==", - "license": "MIT", + "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": { - "@babel/helper-create-regexp-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "yallist": "^3.0.2" } }, - "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==", + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "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.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-plugin-utils": "^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": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "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==", + "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", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "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-plugin-utils": "^7.25.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "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==", + "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", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "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-plugin-utils": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "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==", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, "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/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-replace-supers": "^7.25.7" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/helper-member-expression-to-functions": { + "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/helper-plugin-utils": "^7.25.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/helper-module-imports": { + "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/helper-plugin-utils": "^7.25.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/helper-module-transforms": { + "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-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^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" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "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==", + "node_modules/@babel/helper-optimise-call-expression": { + "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/helper-annotate-as-pure": "^7.25.7", - "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@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==", + "node_modules/@babel/helper-plugin-utils": { + "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", - "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==", + "node_modules/@babel/helper-remap-async-to-generator": { + "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-plugin-utils": "^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" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "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==", + "node_modules/@babel/helper-replace-supers": { + "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-plugin-utils": "^7.25.7", - "regenerator-transform": "^0.15.2" + "@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" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.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/helper-skip-transparent-expression-wrappers": { + "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/helper-plugin-utils": "^7.25.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime": { + "node_modules/@babel/helper-split-export-declaration": { "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==", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.1", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "semver": "^6.3.1" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/@babel/helper-string-parser": { + "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/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==", + "node_modules/@babel/helper-validator-identifier": { + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" - }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/helper-validator-option": { + "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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" - }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/helper-wrap-function": { + "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/helper-plugin-utils": "^7.25.7" + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "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.26.3" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" } }, - "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==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "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/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "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==", - "dev": true, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "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-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-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.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, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "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/types": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.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==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "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-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" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.13.0" } }, - "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==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "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-create-regexp-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "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==", + "node_modules/@babel/plugin-proposal-decorators": { + "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-regexp-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", + "@babel/plugin-syntax-decorators": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2687,154 +2918,65 @@ "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" - }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "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==", - "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/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-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/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-regenerator": "^0.6.1", - "core-js-compat": "^3.37.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" + "node_modules/@babel/plugin-syntax-async-generators": { + "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" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "node_modules/@babel/plugin-syntax-class-properties": { + "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.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" + "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.0.0-0" } }, - "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==", - "dev": true, + "node_modules/@babel/plugin-syntax-class-static-block": { + "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.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.14.5" }, "engines": { "node": ">=6.9.0" @@ -2843,4070 +2985,4075 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/runtime": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", - "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "node_modules/@babel/plugin-syntax-decorators": { + "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": { - "regenerator-runtime": "^0.14.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "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/code-frame": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/types": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "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/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", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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==", + "node_modules/@babel/plugin-syntax-import-meta": { + "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/types": "^7.25.7", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-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==", + "node_modules/@babel/plugin-syntax-json-strings": { + "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", - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/types": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", - "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", + "node_modules/@babel/plugin-syntax-jsx": { + "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-string-parser": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "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" - }, - "node_modules/@braintree/sanitize-url": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz", - "integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==", "license": "MIT", - "optional": true + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@codewithdan/observable-store": { - "version": "2.2.15", - "resolved": "https://registry.npmjs.org/@codewithdan/observable-store/-/observable-store-2.2.15.tgz", - "integrity": "sha512-LVCSMZzTCvoDo5n7YDmtIIEhTmvJ8O21k36Vwu/A4kumdXQ1YVs4sKoSK3vlINZPL4AYY2MRsBVtvre4QIETFw==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "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" + }, "peerDependencies": { - "rxjs": ">=6.4.0 <8" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "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", - "optional": true, - "engines": { - "node": ">=0.1.90" + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "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": { - "@jridgewell/trace-mapping": "0.3.9" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=12" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "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": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cypress/listr-verbose-renderer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", - "integrity": "sha512-EDiBsVPWC27DDLEJCo+dpl9ODHhdrwU57ccr9tspwCdG2ni0QVkf6LF0FGbhfujcjPxnXLIwsaks4sOrwrA4Qw==", - "dev": true, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "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": { - "chalk": "^1.1.3", - "cli-cursor": "^1.0.2", - "date-fns": "^1.27.2", - "figures": "^1.7.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=4" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cypress/listr-verbose-renderer/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, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "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" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, + "node_modules/@babel/plugin-syntax-top-level-await": { + "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" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, + "node_modules/@babel/plugin-syntax-typescript": { + "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": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", - "dev": true, - "license": "MIT" - }, - "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", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, + "node_modules/@babel/plugin-transform-arrow-functions": { + "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.9" + }, "engines": { - "node": ">=0.8.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cypress/request": { - "version": "2.88.12", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.12.tgz", - "integrity": "sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA==", - "dev": true, - "license": "Apache-2.0", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "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": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "http-signature": "~1.3.6", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "performance-now": "^2.1.0", - "qs": "~6.10.3", - "safe-buffer": "^5.1.2", - "tough-cookie": "^4.1.3", - "tunnel-agent": "^0.6.0", - "uuid": "^8.3.2" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { - "node": ">= 6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cypress/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, + "node_modules/@babel/plugin-transform-async-to-generator": { + "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": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "@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": ">= 0.12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "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": { - "side-channel": "^1.0.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=0.6" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cypress/request/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, + "node_modules/@babel/plugin-transform-block-scoping": { + "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", - "bin": { - "uuid": "dist/bin/uuid" + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cypress/xvfb": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", - "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", - "dev": true, + "node_modules/@babel/plugin-transform-class-properties": { + "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": { - "debug": "^3.1.0", - "lodash.once": "^4.1.1" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cypress/xvfb/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "node_modules/@babel/plugin-transform-class-static-block": { + "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": { - "ms": "^2.1.1" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "node_modules/@cypress/xvfb/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/@dfinity/agent": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.15.7.tgz", - "integrity": "sha512-w34yvlUTpPBG8nLOD0t/ao3k2xonOFq4QGvfJ1HiS/nIggdza/3xC3nLBszGrjVYWj1jqu8BLFvQXCAeWin75A==", - "license": "Apache-2.0", + "node_modules/@babel/plugin-transform-classes": { + "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": { - "base64-arraybuffer": "^0.2.0", - "bignumber.js": "^9.0.0", - "borc": "^2.1.1", - "js-sha256": "0.9.0", - "simple-cbor": "^0.4.1", - "ts-node": "^10.8.2" + "@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": { + "node": ">=6.9.0" }, "peerDependencies": { - "@dfinity/candid": "^0.15.7", - "@dfinity/principal": "^0.15.7" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@dfinity/auth-client": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/@dfinity/auth-client/-/auth-client-0.15.7.tgz", - "integrity": "sha512-f6cRqXayCf+7+9gNcDnAZZwJrgBYKIzfxjxeRLlpsueQeo+E/BX2yVSANxzTkCNc4U3p+ttHI1RNtasLunYTcA==", - "license": "Apache-2.0", + "node_modules/@babel/plugin-transform-computed-properties": { + "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": { - "idb": "^7.0.2" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@dfinity/agent": "^0.15.7", - "@dfinity/identity": "^0.15.7", - "@dfinity/principal": "^0.15.7" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@dfinity/candid": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.15.7.tgz", - "integrity": "sha512-lTcjK/xrSyT7wvUQ2pApG+yklQAwxaofQ04D1IWv0/8gKbY0eUbh8G2w6+CypJ15Hb1CH24ijUj8nWdeX/z3jg==", - "license": "Apache-2.0", + "node_modules/@babel/plugin-transform-destructuring": { + "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": { - "ts-node": "^10.8.2" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@dfinity/identity": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/@dfinity/identity/-/identity-0.15.7.tgz", - "integrity": "sha512-kBAkx9wq78jSQf6T5aayLyWm8YgtOZw8bW6+OuzX6tR3hkAEa85A9TcKA7BjkmMWSIskjEDVQub4fFfKWS2vOQ==", - "license": "Apache-2.0", + "node_modules/@babel/plugin-transform-dotall-regex": { + "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": { - "borc": "^2.1.1", - "js-sha256": "^0.9.0", - "tweetnacl": "^1.0.1" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@dfinity/agent": "^0.15.7", - "@dfinity/principal": "^0.15.7", - "@peculiar/webcrypto": "^1.4.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@dfinity/principal": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.15.7.tgz", - "integrity": "sha512-6/AkYzpGEH6Jw/0+B/EeeQn+5u2GDDvRLt1kQPhIG4txQYFnOy04H3VvyrymmfAj6/CXUgrOrux6OxgYSLYVJg==", - "license": "Apache-2.0", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "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": { - "js-sha256": "^0.9.0", - "ts-node": "^10.8.2" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@dinero.js/currencies": { - "version": "2.0.0-alpha.8", - "resolved": "https://registry.npmjs.org/@dinero.js/currencies/-/currencies-2.0.0-alpha.8.tgz", - "integrity": "sha512-zApiqtuuPwjiM9LJA5/kNcT48VSHRiz2/mktkXjIpfxrJKzthXybUAgEenExIH6dYhLDgVmsLQZtZFOsdYl0Ag==", - "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==", + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "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.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=14.17.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@emnapi/core": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", - "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", - "dev": true, + "node_modules/@babel/plugin-transform-dynamic-import": { + "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": { - "@emnapi/wasi-threads": "1.0.1", - "tslib": "^2.4.0" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@emnapi/runtime": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", - "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", - "dev": true, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "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": { - "tslib": "^2.4.0" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", - "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", - "dev": true, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "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": { - "tslib": "^2.4.0" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "ppc64" - ], + "node_modules/@babel/plugin-transform-for-of": { + "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", - "optional": true, - "os": [ - "aix" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "arm" - ], + "node_modules/@babel/plugin-transform-function-name": { + "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", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-json-strings": { + "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", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-literals": { + "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", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "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", - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-member-expression-literals": { + "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", - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-modules-amd": { + "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", - "optional": true, - "os": [ - "freebsd" - ], + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-modules-commonjs": { + "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", - "optional": true, - "os": [ - "freebsd" - ], + "dependencies": { + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "arm" - ], + "node_modules/@babel/plugin-transform-modules-systemjs": { + "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", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@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": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-modules-umd": { + "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", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "ia32" - ], + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "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", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "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==", - "cpu": [ - "loong64" - ], + "node_modules/@babel/plugin-transform-new-target": { + "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", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "mips64el" - ], + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "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", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "ppc64" - ], + "node_modules/@babel/plugin-transform-numeric-separator": { + "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", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "riscv64" - ], + "node_modules/@babel/plugin-transform-object-rest-spread": { + "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", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "s390x" - ], + "node_modules/@babel/plugin-transform-object-super": { + "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", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "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", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-optional-chaining": { + "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", - "optional": true, - "os": [ - "netbsd" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-parameters": { + "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", - "optional": true, - "os": [ - "openbsd" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-private-methods": { + "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", - "optional": true, - "os": [ - "openbsd" - ], + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-private-property-in-object": { + "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", - "optional": true, - "os": [ - "sunos" - ], + "dependencies": { + "@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": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-property-literals": { + "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", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "ia32" - ], + "node_modules/@babel/plugin-transform-regenerator": { + "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", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", - "cpu": [ - "x64" - ], + "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", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "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==", - "dev": true, + "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": { - "eslint-visitor-keys": "^3.3.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "@babel/core": "^7.0.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==", - "dev": true, + "node_modules/@babel/plugin-transform-runtime": { + "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.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "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": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc/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, + "node_modules/@babel/plugin-transform-spread": { + "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": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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, + "node_modules/@babel/plugin-transform-sticky-regex": { + "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": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, + "node_modules/@babel/plugin-transform-template-literals": { + "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": { - "type-fest": "^0.20.2" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc/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==", - "dev": true, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "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": { - "argparse": "^2.0.1" + "@babel/helper-plugin-utils": "^7.25.9" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc/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/@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==", + "node_modules/@babel/plugin-transform-typescript": { + "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": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.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": "*" - } - }, - "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", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "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.9" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@hexagon/base64": { - "version": "1.1.28", - "resolved": "https://registry.npmjs.org/@hexagon/base64/-/base64-1.1.28.tgz", - "integrity": "sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw==", - "license": "MIT" - }, - "node_modules/@humanwhocodes/config-array": { - "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", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "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": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=10.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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, + "node_modules/@babel/plugin-transform-unicode-regex": { + "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": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@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-0" } }, - "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", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "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": { - "brace-expansion": "^1.1.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "*" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", + "node_modules/@babel/preset-env": { + "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.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-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.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.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.38.1", + "semver": "^6.3.1" + }, "engines": { - "node": ">=12.22" + "node": ">=6.9.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/object-schema": { - "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/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } }, - "node_modules/@inquirer/checkbox": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.5.0.tgz", - "integrity": "sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==", - "dev": true, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.3", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" }, - "engines": { - "node": ">=18" + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@inquirer/confirm": { - "version": "3.1.22", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.22.tgz", - "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", + "node_modules/@babel/preset-typescript": { + "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": { - "@inquirer/core": "^9.0.10", - "@inquirer/type": "^1.5.2" + "@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": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/runtime": { + "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": { - "@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", - "ansi-escapes": "^4.3.2", - "cli-width": "^4.1.0", - "mute-stream": "^1.0.0", - "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=18" + "node": ">=6.9.0" } }, - "node_modules/@inquirer/core/node_modules/@inquirer/type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-2.0.0.tgz", - "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", + "node_modules/@babel/template": { + "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": { - "mute-stream": "^1.0.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { - "node": ">=18" + "node": ">=6.9.0" } }, - "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==", + "node_modules/@babel/traverse": { + "version": "7.26.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", + "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "@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" + }, + "engines": { + "node": ">=6.9.0" } }, - "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==", - "dev": true, + "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==", "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", - "external-editor": "^3.1.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { - "node": ">=18" + "node": ">=6.9.0" } }, - "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==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@braintree/sanitize-url": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz", + "integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==", + "license": "MIT", + "optional": true + }, + "node_modules/@codewithdan/observable-store": { + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/@codewithdan/observable-store/-/observable-store-2.2.15.tgz", + "integrity": "sha512-LVCSMZzTCvoDo5n7YDmtIIEhTmvJ8O21k36Vwu/A4kumdXQ1YVs4sKoSK3vlINZPL4AYY2MRsBVtvre4QIETFw==", + "license": "MIT", + "peerDependencies": { + "rxjs": ">=6.4.0 <8" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", - "yoctocolors-cjs": "^2.1.2" + "@jridgewell/trace-mapping": "0.3.9" }, "engines": { - "node": ">=18" + "node": ">=12" } }, - "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==", + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "license": "MIT", - "engines": { - "node": ">=18" + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@inquirer/input": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.3.0.tgz", - "integrity": "sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==", + "node_modules/@cypress/listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha512-EDiBsVPWC27DDLEJCo+dpl9ODHhdrwU57ccr9tspwCdG2ni0QVkf6LF0FGbhfujcjPxnXLIwsaks4sOrwrA4Qw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3" + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" }, "engines": { - "node": ">=18" + "node": ">=4" } }, - "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==", + "node_modules/@cypress/listr-verbose-renderer/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, "license": "MIT", - "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3" - }, "engines": { - "node": ">=18" + "node": ">=0.10.0" } }, - "node_modules/@inquirer/password": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.2.0.tgz", - "integrity": "sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==", + "node_modules/@cypress/listr-verbose-renderer/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, "license": "MIT", - "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", - "ansi-escapes": "^4.3.2" - }, "engines": { - "node": ">=18" + "node": ">=0.10.0" } }, - "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==", + "node_modules/@cypress/listr-verbose-renderer/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "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" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "engines": { - "node": ">=18" + "node": ">=0.10.0" } }, - "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==", + "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": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", - "yoctocolors-cjs": "^2.1.2" + "restore-cursor": "^1.0.1" }, "engines": { - "node": ">=18" + "node": ">=0.10.0" } }, - "node_modules/@inquirer/search": { + "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", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cypress/listr-verbose-renderer/node_modules/onetime": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-1.1.0.tgz", - "integrity": "sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", "dev": true, "license": "MIT", - "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.3", - "yoctocolors-cjs": "^2.1.2" - }, "engines": { - "node": ">=18" + "node": ">=0.10.0" } }, - "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==", + "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": { - "@inquirer/core": "^9.1.0", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.3", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" }, "engines": { - "node": ">=18" + "node": ">=0.10.0" } }, - "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==", + "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", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, "license": "MIT", "dependencies": { - "mute-stream": "^1.0.0" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">=18" + "node": ">=0.10.0" } }, - "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==", + "node_modules/@cypress/listr-verbose-renderer/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@cypress/request": { + "version": "2.88.12", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.12.tgz", + "integrity": "sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA==", + "dev": true, "license": "Apache-2.0", "dependencies": { - "@swc/helpers": "^0.5.0" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "~6.10.3", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/@ioredis/commands": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", - "license": "MIT" - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "license": "ISC", + "node_modules/@cypress/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "license": "MIT", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=12" + "node": ">= 0.12" } }, - "node_modules/@isaacs/cliui/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", + "node_modules/@cypress/request/node_modules/qs": { + "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": { + "side-channel": "^1.0.4" + }, "engines": { - "node": ">=12" + "node": ">=0.6" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@isaacs/cliui/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==", + "node_modules/@cypress/request/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "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==", + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "debug": "^3.1.0", + "lodash.once": "^4.1.1" } }, - "node_modules/@isaacs/cliui/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==", + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "ms": "^2.1.1" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } + "node_modules/@cypress/xvfb/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/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "devOptional": true, - "license": "ISC", + "node_modules/@dfinity/agent": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.15.7.tgz", + "integrity": "sha512-w34yvlUTpPBG8nLOD0t/ao3k2xonOFq4QGvfJ1HiS/nIggdza/3xC3nLBszGrjVYWj1jqu8BLFvQXCAeWin75A==", + "license": "Apache-2.0", "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "base64-arraybuffer": "^0.2.0", + "bignumber.js": "^9.0.0", + "borc": "^2.1.1", + "js-sha256": "0.9.0", + "simple-cbor": "^0.4.1", + "ts-node": "^10.8.2" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@dfinity/candid": "^0.15.7", + "@dfinity/principal": "^0.15.7" } }, - "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==", - "devOptional": true, - "license": "MIT", + "node_modules/@dfinity/auth-client": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@dfinity/auth-client/-/auth-client-0.15.7.tgz", + "integrity": "sha512-f6cRqXayCf+7+9gNcDnAZZwJrgBYKIzfxjxeRLlpsueQeo+E/BX2yVSANxzTkCNc4U3p+ttHI1RNtasLunYTcA==", + "license": "Apache-2.0", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "idb": "^7.0.2" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@dfinity/agent": "^0.15.7", + "@dfinity/identity": "^0.15.7", + "@dfinity/principal": "^0.15.7" } }, - "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", + "node_modules/@dfinity/candid": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.15.7.tgz", + "integrity": "sha512-lTcjK/xrSyT7wvUQ2pApG+yklQAwxaofQ04D1IWv0/8gKbY0eUbh8G2w6+CypJ15Hb1CH24ijUj8nWdeX/z3jg==", + "license": "Apache-2.0", "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "ts-node": "^10.8.2" } }, - "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", + "node_modules/@dfinity/identity": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@dfinity/identity/-/identity-0.15.7.tgz", + "integrity": "sha512-kBAkx9wq78jSQf6T5aayLyWm8YgtOZw8bW6+OuzX6tR3hkAEa85A9TcKA7BjkmMWSIskjEDVQub4fFfKWS2vOQ==", + "license": "Apache-2.0", "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" + "borc": "^2.1.1", + "js-sha256": "^0.9.0", + "tweetnacl": "^1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@dfinity/agent": "^0.15.7", + "@dfinity/principal": "^0.15.7", + "@peculiar/webcrypto": "^1.4.0" } }, - "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", + "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", + "integrity": "sha512-6/AkYzpGEH6Jw/0+B/EeeQn+5u2GDDvRLt1kQPhIG4txQYFnOy04H3VvyrymmfAj6/CXUgrOrux6OxgYSLYVJg==", + "license": "Apache-2.0", "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "js-sha256": "^0.9.0", + "ts-node": "^10.8.2" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@dinero.js/currencies": { + "version": "2.0.0-alpha.8", + "resolved": "https://registry.npmjs.org/@dinero.js/currencies/-/currencies-2.0.0-alpha.8.tgz", + "integrity": "sha512-zApiqtuuPwjiM9LJA5/kNcT48VSHRiz2/mktkXjIpfxrJKzthXybUAgEenExIH6dYhLDgVmsLQZtZFOsdYl0Ag==", + "license": "MIT" + }, + "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": ">=8" + "node": ">=10.0.0" } }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "devOptional": true, - "license": "MIT", + "node_modules/@emnapi/core": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", + "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", + "dev": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.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==", - "devOptional": true, - "license": "MIT", + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "tslib": "^2.4.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==", - "devOptional": true, - "license": "MIT", + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "tslib": "^2.4.0" } }, - "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, + "node_modules/@esbuild/aix-ppc64": { + "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": [ + "aix" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "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, + "node_modules/@esbuild/android-arm": { + "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", - "dependencies": { - "has-flag": "^4.0.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "devOptional": true, + "node_modules/@esbuild/android-arm64": { + "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", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">=18" } }, - "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==", - "devOptional": true, + "node_modules/@esbuild/android-x64": { + "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", - "dependencies": { - "color-convert": "^2.0.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18" } }, - "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, + "node_modules/@esbuild/darwin-arm64": { + "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", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=18" } }, - "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" - } + "node_modules/@esbuild/darwin-x64": { + "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": [ + "darwin" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "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, + "node_modules/@esbuild/freebsd-arm64": { + "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": [ + "freebsd" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "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, + "node_modules/@esbuild/freebsd-x64": { + "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", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "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, + "node_modules/@esbuild/linux-arm": { + "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": [ + "linux" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18" } }, - "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==", - "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, + "node_modules/@esbuild/linux-arm64": { + "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", - "dependencies": { - "has-flag": "^4.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "devOptional": true, + "node_modules/@esbuild/linux-ia32": { + "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", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "devOptional": true, + "node_modules/@esbuild/linux-loong64": { + "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", - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "devOptional": true, + "node_modules/@esbuild/linux-mips64el": { + "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", - "dependencies": { - "jest-get-type": "^29.6.3" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "devOptional": true, + "node_modules/@esbuild/linux-ppc64": { + "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", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "devOptional": true, + "node_modules/@esbuild/linux-riscv64": { + "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", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "devOptional": true, + "node_modules/@esbuild/linux-s390x": { + "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", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">=18" } }, - "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==", - "devOptional": true, + "node_modules/@esbuild/linux-x64": { + "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", - "dependencies": { - "color-convert": "^2.0.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18" } }, - "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==", - "devOptional": true, + "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", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=18" } }, - "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, + "node_modules/@esbuild/netbsd-x64": { + "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": [ + "netbsd" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "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, + "node_modules/@esbuild/openbsd-arm64": { + "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", - "dependencies": { - "has-flag": "^4.0.0" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "devOptional": true, + "node_modules/@esbuild/openbsd-x64": { + "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", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "devOptional": true, + "node_modules/@esbuild/sunos-x64": { + "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", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, + "node_modules/@esbuild/win32-arm64": { + "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": [ + "win32" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "devOptional": true, + "node_modules/@esbuild/win32-ia32": { + "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", - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "devOptional": true, + "node_modules/@esbuild/win32-x64": { + "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", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "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, + "node_modules/@eslint-community/eslint-utils": { + "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": { - "color-convert": "^2.0.1" + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "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, + "node_modules/@eslint-community/regexpp": { + "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", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "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", + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "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", + "node_modules/@eslint/core": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "has-flag": "^4.0.0" + "@types/json-schema": "^7.0.15" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "devOptional": true, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "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==", - "devOptional": true, + "node_modules/@eslint/eslintrc/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": { - "color-convert": "^2.0.1" + "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/@eslint/eslintrc/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": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://opencollective.com/eslint" } }, - "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==", - "devOptional": true, - "license": "MIT", + "node_modules/@eslint/eslintrc/node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://opencollective.com/eslint" } }, - "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, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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, + "node_modules/@eslint/eslintrc/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==", + "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "argparse": "^2.0.1" }, - "engines": { - "node": ">=8" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "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==", + "node_modules/@eslint/eslintrc/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/@eslint/js": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", + "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", + "dev": true, "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, "engines": { - "node": ">=6.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=6.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "license": "MIT", + "node_modules/@eslint/plugin-kit": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" + "@eslint/core": "^0.10.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "node_modules/@hexagon/base64": { + "version": "1.1.28", + "resolved": "https://registry.npmjs.org/@hexagon/base64/-/base64-1.1.28.tgz", + "integrity": "sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw==", "license": "MIT" }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "license": "MIT", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" } }, - "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==", + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=10.0" + "node": ">=18.18" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "url": "https://github.com/sponsors/nzakas" } }, - "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==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, "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" + "node": ">=12.22" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "url": "https://github.com/sponsors/nzakas" } }, - "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==", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=10.0" + "node": ">=18.18" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "url": "https://github.com/sponsors/nzakas" } }, - "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==", - "license": "MIT" - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "license": "MIT" - }, - "node_modules/@levischuck/tiny-cbor": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@levischuck/tiny-cbor/-/tiny-cbor-0.2.2.tgz", - "integrity": "sha512-f5CnPw997Y2GQ8FAvtuVVC19FX8mwNNC+1XJcIi16n/LTJifKO6QBgGLgN3YEmqtGMk17SKSuoWES3imJVxAVw==", - "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==", + "node_modules/@inquirer/checkbox": { + "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/type": "^1.5.1" + "@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.0.0" + "node": ">=18" }, "peerDependencies": { - "@inquirer/prompts": ">= 3 < 6" + "@types/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==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "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" - ], + "node_modules/@inquirer/confirm": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.0.2.tgz", + "integrity": "sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } }, - "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" - ], + "node_modules/@inquirer/core": { + "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", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } }, - "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/@inquirer/core/node_modules/mute-stream": { + "version": "2.0.0", + "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/@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/@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/@lukeed/csprng": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", - "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "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": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { "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/@inquirer/editor": { + "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": { - "@types/mdx": "^2.0.0" + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2", + "external-editor": "^3.1.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=18" }, "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" + "@types/node": ">=18" } }, - "node_modules/@module-federation/bridge-react-webpack-plugin": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@module-federation/bridge-react-webpack-plugin/-/bridge-react-webpack-plugin-0.6.6.tgz", - "integrity": "sha512-NANaSOKem+1t/Fbd1GjXnStJRe7O33ya+FR/yYkTUd1H5hmlzVDNo/lYxYuUl3O/gH9Lnlr2Gf9unyWoIW0wHw==", + "node_modules/@inquirer/expand": { + "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": { - "@module-federation/sdk": "0.6.6", - "@types/semver": "7.5.8", - "semver": "7.6.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/@module-federation/data-prefetch": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@module-federation/data-prefetch/-/data-prefetch-0.6.6.tgz", - "integrity": "sha512-rakEHrg2pqbOqJ3uWT2p3kgTCOxBQdEIqmew3XBAXTZ0NblZtkXeMHupcW/W6+ccvbPdn/T/PSICx9HHSvfEVg==", + "node_modules/@inquirer/figures": { + "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": "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": { - "@module-federation/runtime": "0.6.6", - "@module-federation/sdk": "0.6.6", - "fs-extra": "9.1.0" + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2" + }, + "engines": { + "node": ">=18" }, "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" + "@types/node": ">=18" } }, - "node_modules/@module-federation/dts-plugin": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@module-federation/dts-plugin/-/dts-plugin-0.6.6.tgz", - "integrity": "sha512-sNCghGgrpCOOVk2xpzgAGAFeo2ONcv6eAnEfe7Q2gD7R6NrGgOrB5KVhN/uWIzFJG8tqNfSSjam+woTyrrayfg==", + "node_modules/@inquirer/number": { + "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": { - "@module-federation/managers": "0.6.6", - "@module-federation/sdk": "0.6.6", - "@module-federation/third-party-dts-extractor": "0.6.6", - "adm-zip": "^0.5.10", - "ansi-colors": "^4.1.3", - "axios": "^1.7.4", - "chalk": "3.0.0", - "fs-extra": "9.1.0", - "isomorphic-ws": "5.0.0", - "koa": "2.15.3", - "lodash.clonedeepwith": "4.5.0", - "log4js": "6.9.1", - "node-schedule": "2.1.1", - "rambda": "^9.1.0", - "ws": "8.17.1" + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2" }, - "peerDependencies": { - "typescript": "^4.9.0 || ^5.0.0", - "vue-tsc": ">=1.0.24" + "engines": { + "node": ">=18" }, - "peerDependenciesMeta": { - "vue-tsc": { - "optional": true - } + "peerDependencies": { + "@types/node": ">=18" } }, - "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==", + "node_modules/@inquirer/password": { + "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": { - "color-convert": "^2.0.1" + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2", + "ansi-escapes": "^4.3.2" }, "engines": { - "node": ">=8" + "node": ">=18" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@types/node": ">=18" } }, - "node_modules/@module-federation/dts-plugin/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "node_modules/@inquirer/prompts": { + "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@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": ">=8" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, - "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/@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": ">=8" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, - "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==", + "node_modules/@inquirer/rawlist": { + "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": { - "has-flag": "^4.0.0" + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, - "node_modules/@module-federation/enhanced": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@module-federation/enhanced/-/enhanced-0.6.6.tgz", - "integrity": "sha512-gGU1tjaksk5Q5X2zpVb/OmlwvKwVVjTXreuFwkK0Z+9QKM9jbu0B/tPSh6sqibPFeu1yM2HOFlOHJhvFs1PmsA==", + "node_modules/@inquirer/search": { + "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": { - "@module-federation/bridge-react-webpack-plugin": "0.6.6", - "@module-federation/data-prefetch": "0.6.6", - "@module-federation/dts-plugin": "0.6.6", - "@module-federation/managers": "0.6.6", - "@module-federation/manifest": "0.6.6", - "@module-federation/rspack": "0.6.6", - "@module-federation/runtime-tools": "0.6.6", - "@module-federation/sdk": "0.6.6", - "btoa": "^1.2.1", - "upath": "2.0.1" + "@inquirer/core": "^10.1.2", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", + "yoctocolors-cjs": "^2.1.2" }, - "peerDependencies": { - "typescript": "^4.9.0 || ^5.0.0", - "vue-tsc": ">=1.0.24", - "webpack": "^5.0.0" + "engines": { + "node": ">=18" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "vue-tsc": { - "optional": true - }, - "webpack": { - "optional": true - } + "peerDependencies": { + "@types/node": ">=18" } }, - "node_modules/@module-federation/managers": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@module-federation/managers/-/managers-0.6.6.tgz", - "integrity": "sha512-ryj2twbQmo2KhwKn1xYivpaW94l5wfplDU9FwVvW0wc8hC2lJnuGhoiZqXKL7lNaBrZXge3b43Zlgx5OnFfr6A==", + "node_modules/@inquirer/select": { + "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": { - "@module-federation/sdk": "0.6.6", - "find-pkg": "2.0.0", - "fs-extra": "9.1.0" + "@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/@module-federation/manifest": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@module-federation/manifest/-/manifest-0.6.6.tgz", - "integrity": "sha512-45ol0fC8RS2d+0iEt5zdp0vctE2CiOfA2kCmOFz79K33occi8sKmyevfSeZGckZy54NiMnLFteIYBsyIa+g7gg==", - "dev": true, + "node_modules/@inquirer/type": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.2.tgz", + "integrity": "sha512-ZhQ4TvhwHZF+lGhQ2O/rsjo80XoZR5/5qhOY3t6FJuX5XBg5Be8YzYTvaUGJnc12AUGI2nr4QSUE4PhKSigx7g==", "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@internationalized/number": { + "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": { - "@module-federation/dts-plugin": "0.6.6", - "@module-federation/managers": "0.6.6", - "@module-federation/sdk": "0.6.6", - "chalk": "3.0.0", - "find-pkg": "2.0.0" + "@swc/helpers": "^0.5.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", + "node_modules/@ioredis/commands": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", + "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui": { + "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": { - "color-convert": "^2.0.1" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=12" } }, - "node_modules/@module-federation/manifest/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "devOptional": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "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, + "node_modules/@isaacs/cliui/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==", + "devOptional": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "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": { - "has-flag": "^4.0.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@module-federation/rspack": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@module-federation/rspack/-/rspack-0.6.6.tgz", - "integrity": "sha512-30X6QPrJ/eCcmUL4GQ06Z9bQwURBnJI0607Fw2ufmAbhDA0PJFtg7NFFfXzsdChms1ACVbgvgfBH8SJg8j3wBg==", - "dev": true, + "node_modules/@isaacs/cliui/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==", + "devOptional": true, "license": "MIT", "dependencies": { - "@module-federation/bridge-react-webpack-plugin": "0.6.6", - "@module-federation/dts-plugin": "0.6.6", - "@module-federation/managers": "0.6.6", - "@module-federation/manifest": "0.6.6", - "@module-federation/runtime-tools": "0.6.6", - "@module-federation/sdk": "0.6.6" + "ansi-regex": "^6.0.1" }, - "peerDependencies": { - "typescript": "^4.9.0 || ^5.0.0", - "vue-tsc": ">=1.0.24" + "engines": { + "node": ">=12" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "vue-tsc": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@module-federation/runtime": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.6.6.tgz", - "integrity": "sha512-QsKHUV2HALRzL6mPCdJEZTDuPReKC8MMXf+/VMCtQPp6JhLEjZIO06bfEZqXMbTbTYlMzntIwu1tGCbtJRZDOQ==", - "dev": true, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "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": { - "@module-federation/sdk": "0.6.6" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@module-federation/runtime-tools": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.6.6.tgz", - "integrity": "sha512-w2qHa41p6rADWMS1yBjpqNhaLZ4R5oRy9OYGPe6ywjh+8oqbiBl1CfQglcgEBIpHktEjV/upsgsnjHSdJBdeZw==", + "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": "MIT", + "license": "ISC", "dependencies": { - "@module-federation/runtime": "0.6.6", - "@module-federation/webpack-bundler-runtime": "0.6.6" + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@module-federation/sdk": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.6.6.tgz", - "integrity": "sha512-tUv2kPi0FvplcpGi/g4nITAYVAR1RUZ6QvP71T8inmRZSrfcvk1QpGJiL36IjuS67SM3VAoXS0iJ2WX1Rgjvhg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@module-federation/third-party-dts-extractor": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@module-federation/third-party-dts-extractor/-/third-party-dts-extractor-0.6.6.tgz", - "integrity": "sha512-xX9p17PpElzATNEulwlJJT731xST7T7OUIDSkkIghp/ICDmZd6WhYJvNBto7xbpaj5SIB7Ocdj4chNGv0xdYPw==", - "dev": true, - "license": "MIT", + "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", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "devOptional": true, + "license": "ISC", "dependencies": { - "find-pkg": "2.0.0", - "fs-extra": "9.1.0", - "resolve": "1.22.8" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@module-federation/webpack-bundler-runtime": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.6.6.tgz", - "integrity": "sha512-0UnY9m1fBgHwTpacYWbht1jB5X4Iqspiu1q8kfjUrv6y+R224//ydUFYYO8xfWx4V9SGQFKlU8XFH0FP/r0Hng==", - "dev": true, + "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": { - "@module-federation/runtime": "0.6.6", - "@module-federation/sdk": "0.6.6" + "engines": { + "node": ">=6" } }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", - "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "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" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "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==", - "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" - ], - "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" - ] - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", - "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", - "dev": true, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "license": "MIT", - "dependencies": { - "@emnapi/core": "^1.1.0", - "@emnapi/runtime": "^1.1.0", - "@tybys/wasm-util": "^0.9.0" + "engines": { + "node": ">=8" } }, - "node_modules/@nestjs/bull": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@nestjs/bull/-/bull-10.0.1.tgz", - "integrity": "sha512-1GcJ8BkHDgQdBMZ7SqAqgUHiFnISXmpGvewFeTc8wf87JLk2PweiKv9j9/KQKU+NI237pCe82XB0bXzTnsdxSw==", + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "devOptional": true, "license": "MIT", "dependencies": { - "@nestjs/bull-shared": "^10.0.1", - "tslib": "2.6.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" }, - "peerDependencies": { - "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", - "@nestjs/core": "^8.0.0 || ^9.0.0 || ^10.0.0", - "bull": "^3.3 || ^4.0.0" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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==", + "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": { - "tslib": "2.6.3" - }, - "peerDependencies": { - "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", - "@nestjs/core": "^8.0.0 || ^9.0.0 || ^10.0.0" + "undici-types": "~6.20.0" } }, - "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==", - "license": "0BSD" - }, - "node_modules/@nestjs/cache-manager": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@nestjs/cache-manager/-/cache-manager-2.2.2.tgz", - "integrity": "sha512-+n7rpU1QABeW2WV17Dl1vZCG3vWjJU1MaamWgZvbGxYE9EeCM0lVLfw3z7acgDTNwOy+K68xuQPoIMxD0bhjlA==", - "license": "MIT", - "peerDependencies": { - "@nestjs/common": "^9.0.0 || ^10.0.0", - "@nestjs/core": "^9.0.0 || ^10.0.0", - "cache-manager": "<=5", - "rxjs": "^7.0.0" - } + "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" }, - "node_modules/@nestjs/common": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.1.3.tgz", - "integrity": "sha512-xSyXBwgcmiFwQqek1Urw/AL3pRPq9bp/tpgfTxmnJg3gP6XNUbx1fDr0de50irXgZYzFKfVFo9ptC3b2du5YKA==", + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "devOptional": true, "license": "MIT", "dependencies": { - "iterare": "1.2.1", - "tslib": "2.6.1", - "uid": "2.0.2" + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "class-transformer": "*", - "class-validator": "*", - "reflect-metadata": "^0.1.12", - "rxjs": "^7.1.0" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { - "class-transformer": { - "optional": true - }, - "class-validator": { + "node-notifier": { "optional": true } } }, - "node_modules/@nestjs/common/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", - "license": "0BSD" - }, - "node_modules/@nestjs/config": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-3.0.0.tgz", - "integrity": "sha512-fzASk1Uv6AjdE6uA1na8zpqRCXAhRpcfgpCVv3SAKlgJ3VR3bEjcI4G17WHLgLBsmPzI1ofdkSI451WLD1F1Rw==", + "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": { - "dotenv": "16.1.4", - "dotenv-expand": "10.0.0", - "lodash": "4.17.21", - "uuid": "9.0.0" - }, - "peerDependencies": { - "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", - "reflect-metadata": "^0.1.13" + "undici-types": "~6.20.0" } }, - "node_modules/@nestjs/config/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "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/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "devOptional": true, "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@nestjs/core": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.1.3.tgz", - "integrity": "sha512-VzK54TuacC3Vmq3b5xTyMVTlDNJeKbjpKfV9fNqm4TbIBm8ZPo3FC0osJAbAK4XwbVvv2Flq1yA3CutasupVjw==", - "hasInstallScript": true, + "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": { - "@nuxtjs/opencollective": "0.3.2", - "fast-safe-stringify": "2.1.1", - "iterare": "1.2.1", - "path-to-regexp": "3.2.0", - "tslib": "2.6.1", - "uid": "2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" - }, - "peerDependencies": { - "@nestjs/common": "^10.0.0", - "@nestjs/microservices": "^10.0.0", - "@nestjs/platform-express": "^10.0.0", - "@nestjs/websockets": "^10.0.0", - "reflect-metadata": "^0.1.12", - "rxjs": "^7.1.0" - }, - "peerDependenciesMeta": { - "@nestjs/microservices": { - "optional": true - }, - "@nestjs/platform-express": { - "optional": true - }, - "@nestjs/websockets": { - "optional": true - } + "undici-types": "~6.20.0" } }, - "node_modules/@nestjs/core/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", - "license": "0BSD" + "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/@nestjs/event-emitter": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nestjs/event-emitter/-/event-emitter-2.0.4.tgz", - "integrity": "sha512-quMiw8yOwoSul0pp3mOonGz8EyXWHSBTqBy8B0TbYYgpnG1Ix2wGUnuTksLWaaBiiOTDhciaZ41Y5fJZsSJE1Q==", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "devOptional": true, "license": "MIT", "dependencies": { - "eventemitter2": "6.4.9" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, - "peerDependencies": { - "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", - "@nestjs/core": "^8.0.0 || ^9.0.0 || ^10.0.0" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@nestjs/jwt": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@nestjs/jwt/-/jwt-10.1.0.tgz", - "integrity": "sha512-iLwCGS25ybUxGS7i5j/Mwuyzvp/WxJftHlm8aLEBv5GV92apz6L1QVjxLdZrqXbzo++C8gdJauhzil8qitY+6w==", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "devOptional": true, "license": "MIT", "dependencies": { - "@types/jsonwebtoken": "9.0.2", - "jsonwebtoken": "9.0.0" + "jest-get-type": "^29.6.3" }, - "peerDependencies": { - "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0" - } - }, - "node_modules/@nestjs/passport": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@nestjs/passport/-/passport-10.0.3.tgz", - "integrity": "sha512-znJ9Y4S8ZDVY+j4doWAJ8EuuVO7SkQN3yOBmzxbGaXbvcSwFDAdGJ+OMCg52NdzIO4tQoN4pYKx8W6M0ArfFRQ==", - "license": "MIT", - "peerDependencies": { - "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", - "passport": "^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@nestjs/platform-express": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.1.3.tgz", - "integrity": "sha512-RSf7ooCrxiWJlWl3CLfpaYmAf3U0tRsN7pJakujWdvzVJU2EzVZTLcy1MtnSg/HBm9/Rvg98VI5QI6oOhOpt+A==", + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "devOptional": true, "license": "MIT", "dependencies": { - "body-parser": "1.20.2", - "cors": "2.8.5", - "express": "4.18.2", - "multer": "1.4.4-lts.1", - "tslib": "2.6.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, - "peerDependencies": { - "@nestjs/common": "^10.0.0", - "@nestjs/core": "^10.0.0" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@nestjs/platform-express/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", - "license": "0BSD" - }, - "node_modules/@nestjs/schedule": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@nestjs/schedule/-/schedule-3.0.2.tgz", - "integrity": "sha512-INhpzkyquosLbVrXx4v+rfAnomwBTgKQvs7e9BZ2LSZdWQOqCQD2PmvWDiu8c4wdJIH6wcWQh98w5KxIcKuVBA==", + "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": { - "cron": "2.4.0", - "uuid": "9.0.0" - }, - "peerDependencies": { - "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", - "@nestjs/core": "^8.0.0 || ^9.0.0 || ^10.0.0", - "reflect-metadata": "^0.1.12" + "undici-types": "~6.20.0" } }, - "node_modules/@nestjs/schedule/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } + "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/@nestjs/schematics": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-10.0.1.tgz", - "integrity": "sha512-buxpYtSwOmWyf0nUJWJCkCkYITwbOfIEKHTnGS7sDbcfaajrOFXb5pPAGD2E1CUb3C1+NkQIURPKzs0IouZTQg==", - "dev": true, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "devOptional": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "16.1.0", - "@angular-devkit/schematics": "16.1.0", - "comment-json": "4.2.3", - "jsonc-parser": "3.2.0", - "pluralize": "8.0.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, - "peerDependencies": { - "typescript": ">=4.8.2" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@nestjs/schematics/node_modules/@angular-devkit/core": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.1.0.tgz", - "integrity": "sha512-mrWpuDvttmhrCGcLc68RIXKtTzUhkBTsE5ZZFZNO1+FSC+vO/ZpyCpPd6C+6coM68NfXYjHlms5XF6KbxeGn/Q==", - "dev": true, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "devOptional": true, "license": "MIT", "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "7.8.1", - "source-map": "0.7.4" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "chokidar": "^3.5.2" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { - "chokidar": { + "node-notifier": { "optional": true } } }, - "node_modules/@nestjs/schematics/node_modules/@angular-devkit/schematics": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.1.0.tgz", - "integrity": "sha512-LM35PH9DT3eQRSZgrkk2bx1ZQjjVh8BCByTlr37/c+FnF9mNbeBsa1YkxrlsN/CwO+045OwEwRHnkM9Zcx0U/A==", - "dev": true, + "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": { - "@angular-devkit/core": "16.1.0", - "jsonc-parser": "3.2.0", - "magic-string": "0.30.0", - "ora": "5.4.1", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "undici-types": "~6.20.0" } }, - "node_modules/@nestjs/schematics/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, + "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" + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "devOptional": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "@sinclair/typebox": "^0.27.8" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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==", - "dev": true, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "devOptional": true, "license": "MIT", "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "devOptional": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@nestjs/schematics/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==", - "dev": true, - "license": "Apache-2.0", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "devOptional": true, + "license": "MIT", "dependencies": { - "tslib": "^2.1.0" + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@nestjs/serve-static": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@nestjs/serve-static/-/serve-static-4.0.0.tgz", - "integrity": "sha512-8cTrNV2ngdHIjiLNsXePnw0+KY1ThrZGz/WeyAG5gIvmZNDbnZBOrPoYlKL+MOzlXlQStxR5jKLYmn+nJeoncQ==", + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "devOptional": true, "license": "MIT", "dependencies": { - "path-to-regexp": "0.2.5" + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, - "peerDependencies": { - "@fastify/static": "^6.5.0", - "@nestjs/common": "^9.0.0 || ^10.0.0", - "@nestjs/core": "^9.0.0 || ^10.0.0", - "express": "^4.18.1", - "fastify": "^4.7.0" - }, - "peerDependenciesMeta": { - "@fastify/static": { - "optional": true - }, - "express": { - "optional": true - }, - "fastify": { - "optional": true - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@nestjs/serve-static/node_modules/path-to-regexp": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.2.5.tgz", - "integrity": "sha512-l6qtdDPIkmAmzEO6egquYDfqQGPMRNGjYtrU13HAXb3YSRrt7HSb1sJY0pKp6o2bAa86tSB6iwaW2JbthPKr7Q==", - "license": "MIT" - }, - "node_modules/@nestjs/testing": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-10.1.3.tgz", - "integrity": "sha512-zMrO9xLPYnKtC6q1diWubuMshIp0v2aGHa58jcIfZaAlJlU/6RKsgCOiFQ42aFzxUEBRWF0LBF0aiwt04LKMyQ==", - "dev": true, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "devOptional": true, "license": "MIT", "dependencies": { - "tslib": "2.6.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" - }, - "peerDependencies": { - "@nestjs/common": "^10.0.0", - "@nestjs/core": "^10.0.0", - "@nestjs/microservices": "^10.0.0", - "@nestjs/platform-express": "^10.0.0" + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, - "peerDependenciesMeta": { - "@nestjs/microservices": { - "optional": true - }, - "@nestjs/platform-express": { - "optional": true - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@nestjs/testing/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", - "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==", + "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", - "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" + "dependencies": { + "undici-types": "~6.20.0" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "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" + }, + "node_modules/@jridgewell/gen-mapping": { + "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": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { - "node": ">= 8" + "node": ">=6.0.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=6.0.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, "engines": { - "node": ">= 8" + "node": ">=6.0.0" } }, - "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==", - "dev": true, - "license": "ISC", + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "license": "MIT", "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "node_modules/@npmcli/agent/node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "license": "MIT", "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.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==", - "dev": true, - "license": "ISC" + "node_modules/@kurkle/color": { + "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/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" + }, + "node_modules/@levischuck/tiny-cbor": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@levischuck/tiny-cbor/-/tiny-cbor-0.2.2.tgz", + "integrity": "sha512-f5CnPw997Y2GQ8FAvtuVVC19FX8mwNNC+1XJcIi16n/LTJifKO6QBgGLgN3YEmqtGMk17SKSuoWES3imJVxAVw==", + "license": "MIT" + }, + "node_modules/@listr2/prompt-adapter-inquirer": { + "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": "ISC", + "license": "MIT", "dependencies": { - "semver": "^7.3.5" + "@inquirer/type": "^1.5.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18.0.0" + }, + "peerDependencies": { + "@inquirer/prompts": ">= 3 < 8" } }, - "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==", + "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": "ISC", + "license": "MIT", "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "ini": "^4.1.3", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" + "mute-stream": "^1.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=18" } }, - "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", + "node_modules/@lmdb/lmdb-darwin-arm64": { + "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" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lukeed/csprng": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", + "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=8" } }, - "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==", + "node_modules/@module-federation/bridge-react-webpack-plugin": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/bridge-react-webpack-plugin/-/bridge-react-webpack-plugin-0.8.9.tgz", + "integrity": "sha512-gM5fnWvFfTEfh5UjSmNod1H/np/pUUjvJnnN31ucKcZ21mL6wJo0A+Vfj8a5gv34S+1n5lWR1b6eVv9CofwgDQ==", "dev": true, - "license": "ISC", "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" + "@module-federation/sdk": "0.8.9", + "@types/semver": "7.5.8", + "semver": "7.6.3" } }, - "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==", + "node_modules/@module-federation/data-prefetch": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/data-prefetch/-/data-prefetch-0.8.9.tgz", + "integrity": "sha512-doUzJ5uuLPrN5e/NMvKuyUE/lqiZFgGzFITwBF90/KKqOq7R2ZWh43R4RJgkUYfs/F119AYXZ9jxrSphIh+cjg==", "dev": true, - "license": "ISC", "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "bin/index.js" + "@module-federation/runtime": "0.8.9", + "@module-federation/sdk": "0.8.9", + "fs-extra": "9.1.0" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.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==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.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==", + "node_modules/@module-federation/dts-plugin": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/dts-plugin/-/dts-plugin-0.8.9.tgz", + "integrity": "sha512-Q40yqdQvTV8QRoegjUquTejhLl2gZoPv623hc8MWmGuP2vXLBIJJ9iV849LkFLeE8xaUgtwmn2uCQeBh2aJNjg==", "dev": true, - "license": "ISC", "dependencies": { - "@npmcli/git": "^5.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", - "semver": "^7.5.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/package-json/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" + "@module-federation/error-codes": "0.8.9", + "@module-federation/managers": "0.8.9", + "@module-federation/sdk": "0.8.9", + "@module-federation/third-party-dts-extractor": "0.8.9", + "adm-zip": "^0.5.10", + "ansi-colors": "^4.1.3", + "axios": "^1.7.4", + "chalk": "3.0.0", + "fs-extra": "9.1.0", + "isomorphic-ws": "5.0.0", + "koa": "2.15.3", + "lodash.clonedeepwith": "4.5.0", + "log4js": "6.9.1", + "node-schedule": "2.1.1", + "rambda": "^9.1.0", + "ws": "8.18.0" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "vue-tsc": { + "optional": true + } } }, - "node_modules/@npmcli/package-json/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/@module-federation/dts-plugin/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, - "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==", - "dev": true, - "license": "ISC", - "dependencies": { - "which": "^4.0.0" + "node_modules/@module-federation/enhanced": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/enhanced/-/enhanced-0.8.9.tgz", + "integrity": "sha512-feZUhznCyFkyivWNSFPN+FHMZmyrxlKBhWW8ldWsp/LlKIzWI75vMLimpiydBWnWTZgnOhQDBZGZVxSlfnfKHQ==", + "dev": true, + "dependencies": { + "@module-federation/bridge-react-webpack-plugin": "0.8.9", + "@module-federation/data-prefetch": "0.8.9", + "@module-federation/dts-plugin": "0.8.9", + "@module-federation/error-codes": "0.8.9", + "@module-federation/inject-external-runtime-core-plugin": "0.8.9", + "@module-federation/managers": "0.8.9", + "@module-federation/manifest": "0.8.9", + "@module-federation/rspack": "0.8.9", + "@module-federation/runtime-tools": "0.8.9", + "@module-federation/sdk": "0.8.9", + "btoa": "^1.2.1", + "upath": "2.0.1" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "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/@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==", + "node_modules/@module-federation/error-codes": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.8.9.tgz", + "integrity": "sha512-yUA3GZjOy8Ll6l193faXir2veexDaUiLdmptbzC9tIee/iSQiSwIlibdTafCfqaJ62cLZaytOUdmAFAKLv8QQw==", + "dev": true + }, + "node_modules/@module-federation/inject-external-runtime-core-plugin": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/inject-external-runtime-core-plugin/-/inject-external-runtime-core-plugin-0.8.9.tgz", + "integrity": "sha512-F3s/3Iny20c0Y0CaXgOZdgl7PzgXj6ftCiT5FO6QWmyhzfl2R0o3KFuv54BmwtoimSFky1ShuC/jPluz4EGG1g==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" + "peerDependencies": { + "@module-federation/runtime-tools": "0.8.9" } }, - "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==", + "node_modules/@module-federation/managers": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/managers/-/managers-0.8.9.tgz", + "integrity": "sha512-Fb28sa2iAqwSSSgiPBoL5Kp0RB9ZKJvdwLAEwZBV2c2LyZUqJCdTjmYuB5Q2sWB9wsudd/ijV6WWNK/nVoJxdA==", "dev": true, - "license": "ISC", "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" + "@module-federation/sdk": "0.8.9", + "find-pkg": "2.0.0", + "fs-extra": "9.1.0" } }, - "node_modules/@npmcli/redact": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", - "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", + "node_modules/@module-federation/manifest": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/manifest/-/manifest-0.8.9.tgz", + "integrity": "sha512-48jIv50l0tTx+CVzs2JKMlTO0mcUvFRDxqO79nJaL1DLfpRQoCRQjCA8sXUp5PPIyJ8MHQqkHK/dnaal4NlR/A==", "dev": true, - "license": "ISC", - "engines": { - "node": "^16.14.0 || >=18.0.0" + "dependencies": { + "@module-federation/dts-plugin": "0.8.9", + "@module-federation/managers": "0.8.9", + "@module-federation/sdk": "0.8.9", + "chalk": "3.0.0", + "find-pkg": "2.0.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==", + "node_modules/@module-federation/manifest/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "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" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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": ">=8" } }, - "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==", + "node_modules/@module-federation/node": { + "version": "2.6.22", + "resolved": "https://registry.npmjs.org/@module-federation/node/-/node-2.6.22.tgz", + "integrity": "sha512-KlBJXakBO0KMCLTv7622aQNQk3JLfUqXJtd28nUt7xJNV9OZclHvRmKS83zHGEV/6hBKuLtYlP/+S4LMoMKiOw==", "dev": true, - "license": "ISC", "dependencies": { - "isexe": "^3.1.1" + "@module-federation/enhanced": "0.8.9", + "@module-federation/runtime": "0.8.9", + "@module-federation/sdk": "0.8.9", + "@module-federation/utilities": "3.1.40", + "btoa": "1.2.1", + "encoding": "^0.1.13", + "node-fetch": "2.7.0" }, - "bin": { - "node-which": "bin/which.js" + "peerDependencies": { + "react": "^16||^17||^18", + "react-dom": "^16||^17||^18", + "webpack": "^5.40.0" }, - "engines": { - "node": "^16.13.0 || >=18.0.0" + "peerDependenciesMeta": { + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } }, - "node_modules/@nuxtjs/opencollective": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", - "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", - "license": "MIT", + "node_modules/@module-federation/rspack": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/rspack/-/rspack-0.8.9.tgz", + "integrity": "sha512-wuHRx+aUYhsrAQzU5yKQksaOJ8pwhuQJDl8I86xmzkEsnxcWsZcn49xIR4t7v1HcYAqjBXLNXSoQwkIMH9zu2w==", + "dev": true, "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.0", - "node-fetch": "^2.6.1" + "@module-federation/bridge-react-webpack-plugin": "0.8.9", + "@module-federation/dts-plugin": "0.8.9", + "@module-federation/inject-external-runtime-core-plugin": "0.8.9", + "@module-federation/managers": "0.8.9", + "@module-federation/manifest": "0.8.9", + "@module-federation/runtime-tools": "0.8.9", + "@module-federation/sdk": "0.8.9" }, - "bin": { - "opencollective": "bin/opencollective.js" + "peerDependencies": { + "@rspack/core": ">=0.7", + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24" }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + } } }, - "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", + "node_modules/@module-federation/runtime": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.8.9.tgz", + "integrity": "sha512-i+a+/hoT/c+EE52mT+gJrbA6DhL86PY9cd/dIv/oKpLz9i+yYBlG+RA+puc7YsUEO4irbFLvnIMq6AGDUKVzYA==", + "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "@module-federation/error-codes": "0.8.9", + "@module-federation/runtime-core": "0.6.17", + "@module-federation/sdk": "0.8.9" } }, - "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", + "node_modules/@module-federation/runtime-core": { + "version": "0.6.17", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-core/-/runtime-core-0.6.17.tgz", + "integrity": "sha512-PXFN/TT9f64Un6NQYqH1Z0QLhpytW15jkZvTEOV8W7Ed319BECFI0Rv4xAsAGa8zJGFoaM/c7QOQfdFXtKj5Og==", + "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "@module-federation/error-codes": "0.8.9", + "@module-federation/sdk": "0.8.9" } }, - "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/@module-federation/runtime-tools": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.8.9.tgz", + "integrity": "sha512-xBUGx1oOZNuxXjPGdTMrLtAIDrbrN6jE2Mgb9w1qr2mQ4AW9b5TOlxbARBoX4q98xt9oFCGU6Q0eW5XJpsl8AQ==", + "dev": true, + "dependencies": { + "@module-federation/runtime": "0.8.9", + "@module-federation/webpack-bundler-runtime": "0.8.9" } }, - "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", + "node_modules/@module-federation/sdk": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.8.9.tgz", + "integrity": "sha512-QJ60itWC/SPjqduT7wDiF8UGwVU/yJ/Sz+QbnoxB9b7gNLzvI//swAXTo9eOtKsCy/V2BMwjt0F3eOcfnaqllA==", + "dev": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "isomorphic-rslog": "0.0.7" } }, - "node_modules/@nx/angular": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/angular/-/angular-20.0.6.tgz", - "integrity": "sha512-0UfCEp4JeQEYMpUjaipHEH/V/GRHGCd+vgPN9EdhpkSqw2YyuBXlZiX1q0DgzMxZRRBRTB+p37FgRPu32lOI6g==", + "node_modules/@module-federation/third-party-dts-extractor": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/third-party-dts-extractor/-/third-party-dts-extractor-0.8.9.tgz", + "integrity": "sha512-53v6B5zfhGlAPpH0SrlJDp9B6kcOcZaUPi6J4L/7ie5F0YVe0vq/mJGOOzAStN9ggJjSrjBZLFT3gFmBYM3Z9A==", "dev": true, - "license": "MIT", "dependencies": { - "@module-federation/enhanced": "0.6.6", - "@nx/devkit": "20.0.6", - "@nx/eslint": "20.0.6", - "@nx/js": "20.0.6", - "@nx/web": "20.0.6", - "@nx/webpack": "20.0.6", - "@nx/workspace": "20.0.6", - "@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", - "rxjs": "^6.5.3 || ^7.5.0" + "find-pkg": "2.0.0", + "fs-extra": "9.1.0", + "resolve": "1.22.8" } }, - "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/@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": { - "color-convert": "^2.0.1" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">=8" + "bin": { + "resolve": "bin/resolve" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "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/@module-federation/utilities": { + "version": "3.1.40", + "resolved": "https://registry.npmjs.org/@module-federation/utilities/-/utilities-3.1.40.tgz", + "integrity": "sha512-/Oa0jtNCEEfQhXIV0/H/pm+PEfYy4QUfCIcgTr5TJ1QB3OR1D+tBYRFGYYJaTeMRzS4PI4Rh1vv/egzQ9pbgSg==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@module-federation/sdk": "0.8.9" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18", + "webpack": "^5.40.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependenciesMeta": { + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } }, - "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/@module-federation/webpack-bundler-runtime": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.8.9.tgz", + "integrity": "sha512-DYLvVi4b2MUYu/B4g5wIC5SHxiODboKHkYGHYapOhCcqOchca/N16gtiAI8eSNjJPc+fgUXUGIyGiB18IlFEeQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@module-federation/runtime": "0.8.9", + "@module-federation/sdk": "0.8.9" } }, - "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, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" + "optional": true, + "os": [ + "darwin" + ] + }, + "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, + "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/@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": [ + "darwin" + ], "engines": { - "node": ">=8" + "node": ">= 10" } }, - "node_modules/@nx/angular/node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", + "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", "dev": true, - "license": "MIT", "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" + "@emnapi/core": "^1.1.0", + "@emnapi/runtime": "^1.1.0", + "@tybys/wasm-util": "^0.9.0" } }, - "node_modules/@nx/cypress": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/cypress/-/cypress-20.0.6.tgz", - "integrity": "sha512-b26Ucgf+dAdTRlBGhFi8Xjeqw1mbUrxn3nwAOYNwuivc+CZCeokba5/orldNAlBlJKvHe0QmSAI3wpDjdU05Ww==", - "dev": true, + "node_modules/@nestjs/bull": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/@nestjs/bull/-/bull-10.2.3.tgz", + "integrity": "sha512-Gy90JjFCfYhWFBeoBSidc7rEEf2BNhkJ3RfK8ym589POOldwAra2xcnFBi0ZuhhOV60GcrCJBBkdrUbAMM670w==", "license": "MIT", "dependencies": { - "@nx/devkit": "20.0.6", - "@nx/eslint": "20.0.6", - "@nx/js": "20.0.6", - "@phenomnomnominal/tsquery": "~5.0.1", - "detect-port": "^1.5.1", - "tslib": "^2.3.0" + "@nestjs/bull-shared": "^10.2.3", + "tslib": "2.8.1" }, "peerDependencies": { - "cypress": ">= 3 < 14" - }, - "peerDependenciesMeta": { - "cypress": { - "optional": true - } + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "@nestjs/core": "^8.0.0 || ^9.0.0 || ^10.0.0", + "bull": "^3.3 || ^4.0.0" } }, - "node_modules/@nx/devkit": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-20.0.6.tgz", - "integrity": "sha512-vUjVVEJgfq/roCzDDZDXduwnhVXl1MM5No2UELUka2oNBK09pPigdFxzUNh8XvmOyFskCGDTLKH/dAO5yTD5Bg==", - "dev": true, + "node_modules/@nestjs/bull-shared": { + "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": { - "ejs": "^3.1.7", - "enquirer": "~2.3.6", - "ignore": "^5.0.4", - "minimatch": "9.0.3", - "semver": "^7.5.3", - "tmp": "~0.2.1", - "tslib": "^2.3.0", - "yargs-parser": "21.1.1" + "tslib": "2.8.1" }, "peerDependencies": { - "nx": ">= 19 <= 21" + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "@nestjs/core": "^8.0.0 || ^9.0.0 || ^10.0.0" } }, - "node_modules/@nx/eslint": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/eslint/-/eslint-20.0.6.tgz", - "integrity": "sha512-07Ign5GQXZif6zHDR2oB4wkf2amSvoGhYWJ17fmqDsMF/nWYOohL+DbjAaqDORXWXL1bnmRBaj/lAkDNsmW3QA==", - "dev": true, + "node_modules/@nestjs/cache-manager": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@nestjs/cache-manager/-/cache-manager-2.3.0.tgz", + "integrity": "sha512-pxeBp9w/s99HaW2+pezM1P3fLiWmUEnTUoUMLa9UYViCtjj0E0A19W/vaT5JFACCzFIeNrwH4/16jkpAhQ25Vw==", "license": "MIT", - "dependencies": { - "@nx/devkit": "20.0.6", - "@nx/js": "20.0.6", - "semver": "^7.5.3", - "tslib": "^2.3.0", - "typescript": "~5.4.2" - }, "peerDependencies": { - "@zkochan/js-yaml": "0.0.7", - "eslint": "^8.0.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "@zkochan/js-yaml": { - "optional": true - } + "@nestjs/common": "^9.0.0 || ^10.0.0", + "@nestjs/core": "^9.0.0 || ^10.0.0", + "cache-manager": "<=5", + "rxjs": "^7.0.0" } }, - "node_modules/@nx/eslint-plugin": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/eslint-plugin/-/eslint-plugin-20.0.6.tgz", - "integrity": "sha512-wFWg9X4dhRVY5pIAuqXLKTQSL3FzWHbV5kpg7S+y2X3jFg3pezqa8EDBkAcerSk7rour1G2hlXAfHX/W3HCrBQ==", - "dev": true, + "node_modules/@nestjs/common": { + "version": "10.4.15", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.4.15.tgz", + "integrity": "sha512-vaLg1ZgwhG29BuLDxPA9OAcIlgqzp9/N8iG0wGapyUNTf4IY4O6zAHgN6QalwLhFxq7nOI021vdRojR1oF3bqg==", "license": "MIT", "dependencies": { - "@nx/devkit": "20.0.6", - "@nx/js": "20.0.6", - "@typescript-eslint/type-utils": "^8.0.0", - "@typescript-eslint/utils": "^8.0.0", - "chalk": "^4.1.0", - "confusing-browser-globals": "^1.0.9", - "globals": "^15.9.0", - "jsonc-eslint-parser": "^2.1.0", - "semver": "^7.5.3", - "tslib": "^2.3.0" + "iterare": "1.2.1", + "tslib": "2.8.1", + "uid": "2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" }, "peerDependencies": { - "@typescript-eslint/parser": "^6.13.2 || ^7.0.0 || ^8.0.0", - "eslint-config-prettier": "^9.0.0" + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12 || ^0.2.0", + "rxjs": "^7.1.0" }, "peerDependenciesMeta": { - "eslint-config-prettier": { + "class-transformer": { + "optional": true + }, + "class-validator": { "optional": true } } }, - "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, + "node_modules/@nestjs/config": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-3.3.0.tgz", + "integrity": "sha512-pdGTp8m9d0ZCrjTpjkUbZx6gyf2IKf+7zlkrPNMsJzYZ4bFRRTpXrnj+556/5uiI6AfL5mMrJc2u7dB6bvM+VA==", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "dotenv": "16.4.5", + "dotenv-expand": "10.0.0", + "lodash": "4.17.21" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "rxjs": "^7.1.0" } }, - "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" - }, + "node_modules/@nestjs/config/node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "license": "BSD-2-Clause", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://dotenvx.com" } }, - "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==", - "dev": true, + "node_modules/@nestjs/core": { + "version": "10.4.15", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.4.15.tgz", + "integrity": "sha512-UBejmdiYwaH6fTsz2QFBlC1cJHM+3UDeLZN+CiP9I1fRv2KlBZsmozGLbV5eS1JAVWJB4T5N5yQ0gjN8ZvcS2w==", + "hasInstallScript": true, "license": "MIT", - "engines": { - "node": ">=18" + "dependencies": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "path-to-regexp": "3.3.0", + "tslib": "2.8.1", + "uid": "2.0.2" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/microservices": "^10.0.0", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/websockets": "^10.0.0", + "reflect-metadata": "^0.1.12 || ^0.2.0", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + }, + "@nestjs/websockets": { + "optional": true + } } }, - "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==", - "dev": true, + "node_modules/@nestjs/core/node_modules/path-to-regexp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", + "license": "MIT" + }, + "node_modules/@nestjs/event-emitter": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@nestjs/event-emitter/-/event-emitter-2.1.1.tgz", + "integrity": "sha512-6L6fBOZTyfFlL7Ih/JDdqlCzZeCW0RjCX28wnzGyg/ncv5F/EOeT1dfopQr1loBRQ3LTgu8OWM7n4zLN4xigsg==", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "eventemitter2": "6.4.9" + }, + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "@nestjs/core": "^8.0.0 || ^9.0.0 || ^10.0.0" } }, - "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==", - "dev": true, + "node_modules/@nestjs/jwt": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/jwt/-/jwt-10.2.0.tgz", + "integrity": "sha512-x8cG90SURkEiLOehNaN2aRlotxT0KZESUliOPKKnjWiyJOcWurkF3w345WOX0P4MgFzUjGoZ1Sy0aZnxeihT0g==", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@types/jsonwebtoken": "9.0.5", + "jsonwebtoken": "9.0.2" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0" } }, - "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" - } - }, - "node_modules/@nx/jest": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/jest/-/jest-20.0.6.tgz", - "integrity": "sha512-/v9NavOOWcUpzgbjfYip0zipneJPhKUQd5rU3bTr0CqCJw0I+YQXotToUkzzMQYT6zmNrq7ySTMH1N8rXdy7NQ==", - "dev": true, + "node_modules/@nestjs/passport": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@nestjs/passport/-/passport-10.0.3.tgz", + "integrity": "sha512-znJ9Y4S8ZDVY+j4doWAJ8EuuVO7SkQN3yOBmzxbGaXbvcSwFDAdGJ+OMCg52NdzIO4tQoN4pYKx8W6M0ArfFRQ==", "license": "MIT", - "dependencies": { - "@jest/reporters": "^29.4.1", - "@jest/test-result": "^29.4.1", - "@nx/devkit": "20.0.6", - "@nx/js": "20.0.6", - "@phenomnomnominal/tsquery": "~5.0.1", - "chalk": "^4.1.0", - "identity-obj-proxy": "3.0.0", - "jest-config": "^29.4.1", - "jest-resolve": "^29.4.1", - "jest-util": "^29.4.1", - "minimatch": "9.0.3", - "resolve.exports": "1.1.0", - "semver": "^7.5.3", - "tslib": "^2.3.0", - "yargs-parser": "21.1.1" + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "passport": "^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0" } }, - "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==", - "dev": true, + "node_modules/@nestjs/platform-express": { + "version": "10.4.15", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.4.15.tgz", + "integrity": "sha512-63ZZPkXHjoDyO7ahGOVcybZCRa7/Scp6mObQKjcX/fTEq1YJeU75ELvMsuQgc8U2opMGOBD7GVuc4DV0oeDHoA==", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "body-parser": "1.20.3", + "cors": "2.8.5", + "express": "4.21.2", + "multer": "1.4.4-lts.1", + "tslib": "2.8.1" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/core": "^10.0.0" } }, - "node_modules/@nx/jest/node_modules/chalk": { + "node_modules/@nestjs/schedule": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "resolved": "https://registry.npmjs.org/@nestjs/schedule/-/schedule-4.1.2.tgz", + "integrity": "sha512-hCTQ1lNjIA5EHxeu8VvQu2Ed2DBLS1GSC6uKPYlBiQe6LL9a7zfE9iVSK+zuK8E2odsApteEBmfAQchc8Hx0Gg==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "cron": "3.2.1", + "uuid": "11.0.3" }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "@nestjs/core": "^8.0.0 || ^9.0.0 || ^10.0.0" } }, - "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, + "node_modules/@nestjs/schedule/node_modules/uuid": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.3.tgz", + "integrity": "sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", - "engines": { - "node": ">=8" + "bin": { + "uuid": "dist/esm/bin/uuid" } }, - "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==", + "node_modules/@nestjs/schematics": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-10.2.3.tgz", + "integrity": "sha512-4e8gxaCk7DhBxVUly2PjYL4xC2ifDFexCqq1/u4TtivLGXotVk0wHdYuPYe1tHTHuR1lsOkRbfOCpkdTnigLVg==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@angular-devkit/core": "17.3.11", + "@angular-devkit/schematics": "17.3.11", + "comment-json": "4.2.5", + "jsonc-parser": "3.3.1", + "pluralize": "8.0.0" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "typescript": ">=4.8.2" } }, - "node_modules/@nx/js": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/js/-/js-20.0.6.tgz", - "integrity": "sha512-/bAMtcgKX1Te3yCzbbv+QQLnFwb6SxE0iCc6EzxiLepmGhnd0iOArUqepB1mVipfeaO37n00suFjFv1xsaqLHg==", + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/core": { + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.11.tgz", + "integrity": "sha512-vTNDYNsLIWpYk2I969LMQFH29GTsLzxNk/0cLw5q56ARF0v5sIWfHYwGTS88jdDqIpuuettcSczbxeA7EuAmqQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.23.2", - "@babel/plugin-proposal-decorators": "^7.22.7", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-runtime": "^7.23.2", - "@babel/preset-env": "^7.23.2", - "@babel/preset-typescript": "^7.22.5", - "@babel/runtime": "^7.22.6", - "@nx/devkit": "20.0.6", - "@nx/workspace": "20.0.6", - "@zkochan/js-yaml": "0.0.7", - "babel-plugin-const-enum": "^1.0.1", - "babel-plugin-macros": "^2.8.0", - "babel-plugin-transform-typescript-metadata": "^0.3.1", - "chalk": "^4.1.0", - "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", - "minimatch": "9.0.3", - "npm-package-arg": "11.0.1", - "npm-run-path": "^4.0.1", - "ora": "5.3.0", - "semver": "^7.5.3", - "source-map-support": "0.5.19", - "ts-node": "10.9.1", - "tsconfig-paths": "^4.1.2", - "tslib": "^2.3.0" + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.1", + "picomatch": "4.0.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" }, "peerDependencies": { - "verdaccio": "^5.0.4" + "chokidar": "^3.5.2" }, "peerDependenciesMeta": { - "verdaccio": { + "chokidar": { "optional": true } } }, - "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/@nestjs/schematics/node_modules/@angular-devkit/core/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==", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "license": "MIT" }, - "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/@nestjs/schematics/node_modules/@angular-devkit/schematics": { + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.11.tgz", + "integrity": "sha512-I5wviiIqiFwar9Pdk30Lujk8FczEEc18i22A5c6Z9lbmhPQdTroDnEQdsfXjy404wPe8H62s0I15o4pmMGfTYQ==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@angular-devkit/core": "17.3.11", + "jsonc-parser": "3.2.1", + "magic-string": "0.30.8", + "ora": "5.4.1", + "rxjs": "7.8.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" } }, - "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==", + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/schematics/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nestjs/schematics/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "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==", + "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": { - "@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" + "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://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/@nx/js/node_modules/glob-parent": { + "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" }, @@ -6914,1887 +7061,2043 @@ "node": ">= 6" } }, - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "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==", + "node_modules/@nestjs/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==", "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", - "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", + "node_modules/@nestjs/schematics/node_modules/magic-string": { + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "@jridgewell/sourcemap-codec": "^1.4.15" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=12" } }, - "node_modules/@nx/js/node_modules/ora": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", - "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", + "node_modules/@nestjs/schematics/node_modules/picomatch": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", + "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", "dev": true, "license": "MIT", - "dependencies": { - "bl": "^4.0.3", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "log-symbols": "^4.0.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@nx/js/node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "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==", + "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": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "picomatch": "^2.2.1" }, "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": ">=8.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", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "node_modules/@nestjs/schematics/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==", "dev": true, "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "optional": true, + "peer": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "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==", + "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": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" + "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", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, + "node_modules/@nestjs/serve-static": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@nestjs/serve-static/-/serve-static-4.0.2.tgz", + "integrity": "sha512-cT0vdWN5ar7jDI2NKbhf4LcwJzU4vS5sVpMkVrHuyLcltbrz6JdGi1TfIMMatP2pNiq5Ie/uUdPSFDVaZX/URQ==", "license": "MIT", "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "path-to-regexp": "0.2.5" }, "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "@fastify/static": "^6.5.0 || ^7.0.0", + "@nestjs/common": "^9.0.0 || ^10.0.0", + "@nestjs/core": "^9.0.0 || ^10.0.0", + "express": "^4.18.1", + "fastify": "^4.7.0" }, "peerDependenciesMeta": { - "@swc/core": { + "@fastify/static": { "optional": true }, - "@swc/wasm": { + "express": { + "optional": true + }, + "fastify": { "optional": true } } }, - "node_modules/@nx/nest": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/nest/-/nest-20.0.6.tgz", - "integrity": "sha512-vACNZ+jTURJfVIpLQURgbR12O7mOqoVjCSfqbXBIC9pc4kYqShPW0SnAybwxKR+zpWGeO1nel7VXEH95HgAXuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nestjs/schematics": "^9.1.0", - "@nx/devkit": "20.0.6", - "@nx/eslint": "20.0.6", - "@nx/js": "20.0.6", - "@nx/node": "20.0.6", - "tslib": "^2.3.0" - } + "node_modules/@nestjs/serve-static/node_modules/path-to-regexp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.2.5.tgz", + "integrity": "sha512-l6qtdDPIkmAmzEO6egquYDfqQGPMRNGjYtrU13HAXb3YSRrt7HSb1sJY0pKp6o2bAa86tSB6iwaW2JbthPKr7Q==", + "license": "MIT" }, - "node_modules/@nx/nest/node_modules/@angular-devkit/core": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.0.1.tgz", - "integrity": "sha512-2uz98IqkKJlgnHbWQ7VeL4pb+snGAZXIama2KXi+k9GsRntdcw+udX8rL3G9SdUGUF+m6+147Y1oRBMHsO/v4w==", + "node_modules/@nestjs/testing": { + "version": "10.4.15", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-10.4.15.tgz", + "integrity": "sha512-eGlWESkACMKti+iZk1hs6FUY/UqObmMaa8HAN9JLnaYkoLf1Jeh+EuHlGnfqo/Rq77oznNLIyaA3PFjrFDlNUg==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "7.8.1", - "source-map": "0.7.4" + "tslib": "2.8.1" }, - "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" }, "peerDependencies": { - "chokidar": "^3.5.2" + "@nestjs/common": "^10.0.0", + "@nestjs/core": "^10.0.0", + "@nestjs/microservices": "^10.0.0", + "@nestjs/platform-express": "^10.0.0" }, "peerDependenciesMeta": { - "chokidar": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { "optional": true } } }, - "node_modules/@nx/nest/node_modules/@angular-devkit/schematics": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.0.1.tgz", - "integrity": "sha512-A9D0LTYmiqiBa90GKcSuWb7hUouGIbm/AHbJbjL85WLLRbQA2PwKl7P5Mpd6nS/ZC0kfG4VQY3VOaDvb3qpI9g==", - "dev": true, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "license": "MIT", "dependencies": { - "@angular-devkit/core": "16.0.1", - "jsonc-parser": "3.2.0", - "magic-string": "0.30.0", - "ora": "5.4.1", - "rxjs": "7.8.1" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">= 8" } }, - "node_modules/@nx/nest/node_modules/@nestjs/schematics": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-9.2.0.tgz", - "integrity": "sha512-wHpNJDPzM6XtZUOB3gW0J6mkFCSJilzCM3XrHI1o0C8vZmFE1snbmkIXNyoi1eV0Nxh1BMymcgz5vIMJgQtTqw==", - "dev": true, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "license": "MIT", "dependencies": { - "@angular-devkit/core": "16.0.1", - "@angular-devkit/schematics": "16.0.1", - "jsonc-parser": "3.2.0", - "pluralize": "8.0.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, - "peerDependencies": { - "typescript": ">=4.3.5" + "engines": { + "node": ">= 8" } }, - "node_modules/@nx/nest/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/@npmcli/agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", + "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "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/@npmcli/agent/node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "engines": { + "node": ">= 14" } }, - "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==", + "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": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "agent-base": "^7.1.2", + "debug": "4" }, "engines": { - "node": ">=12" + "node": ">= 14" } }, - "node_modules/@nx/nest/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==", + "node_modules/@npmcli/fs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz", + "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==", "dev": true, - "license": "Apache-2.0", + "license": "ISC", "dependencies": { - "tslib": "^2.1.0" + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@nx/node": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/node/-/node-20.0.6.tgz", - "integrity": "sha512-/6khofVKgpdglkSE6XDz9tk4kCeEXQaIPOH1PgWqY25hoim/VSXjZ1XMVmPvnvd7m2lsFLDrqZlwIGWTrT2cFw==", + "node_modules/@npmcli/git": { + "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": "MIT", + "license": "ISC", "dependencies": { - "@nx/devkit": "20.0.6", - "@nx/eslint": "20.0.6", - "@nx/jest": "20.0.6", - "@nx/js": "20.0.6", - "tslib": "^2.3.0" + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", + "lru-cache": "^10.0.1", + "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": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@nx/nx-darwin-arm64": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-20.0.6.tgz", - "integrity": "sha512-SUVfEqzl/iy2NzTbpY2E9lHSxs8c9QERhTILp5OOt0Vgmhn9iTxVEIoSCjzz/MyX066eARarUymUyK4JCg3mqw==", - "cpu": [ - "arm64" - ], + "node_modules/@npmcli/installed-package-contents": { + "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": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "license": "ISC", + "dependencies": { + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, "engines": { - "node": ">= 10" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@nx/nx-darwin-x64": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-20.0.6.tgz", - "integrity": "sha512-JI0kcJGBeIj3sb+kC0nZMOSXFnvCOtGbAVK3HHJ9DSRxckLq5bImwqdfYSNJL9ocU8YU+Qds/SercEV02gQOkQ==", - "cpu": [ - "x64" - ], + "node_modules/@npmcli/node-gyp": { + "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": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "license": "ISC", "engines": { - "node": ">= 10" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@nx/nx-freebsd-x64": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-20.0.6.tgz", - "integrity": "sha512-om9Sh5Pg5aRDlBWyHMAX/1swLSj2pCqk1grXN6RcJ8O3tXLI35fj4wz6sPDRASwC1xuHwET2DG/20Ec6n1Ko3A==", - "cpu": [ - "x64" - ], + "node_modules/@npmcli/package-json": { + "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": "MIT", - "optional": true, - "os": [ - "freebsd" - ], + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "glob": "^10.2.2", + "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": ">= 10" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-20.0.6.tgz", - "integrity": "sha512-XIomXUqnH3w1aqRu0T+Wcn9roXT1bG1PjuX+bmGLkSiZ+ZyY/zYfhg6WKbox3TqQcdC1jNUkzEQlLGcfWaGc6w==", - "cpu": [ - "arm" - ], + "node_modules/@npmcli/package-json/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": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" + "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/@nx/nx-linux-arm64-gnu": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-20.0.6.tgz", - "integrity": "sha512-Asx2F+WtauELssmrQf1y4ZeiMIsgbL/+PnD+WgbvHVWbl7cRUfLJqEhOR5fQG6CiNTIXvOyzXMoaJVA9hTub+Q==", - "cpu": [ - "arm64" - ], + "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", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">= 10" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@nx/nx-linux-arm64-musl": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-20.0.6.tgz", - "integrity": "sha512-4lyBaLWSv7VNMOXWxtuDNiSOE4M5QGiVHimSvQ9PBwgnrvEuc6fCv/Nc8ecU0rINHRQJruYMTD/kKBCsahwJUQ==", - "cpu": [ - "arm64" - ], + "node_modules/@npmcli/package-json/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": "MIT", - "optional": true, - "os": [ - "linux" - ], + "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/@nx/nx-linux-x64-gnu": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.0.6.tgz", - "integrity": "sha512-HGZzX7un/rJvADKwN27HM0e3Gx19hSndCoqZUtqHgrFRdUvTfHTWNpT6uZ5XW/5bNnRKdUinY9DHhlYpE0u4KQ==", - "cpu": [ - "x64" - ], + "node_modules/@npmcli/promise-spawn": { + "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": "MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "ISC", + "dependencies": { + "which": "^5.0.0" + }, "engines": { - "node": ">= 10" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@nx/nx-linux-x64-musl": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-20.0.6.tgz", - "integrity": "sha512-OwMq+ozzCOCtAViOouHbe/MXqep/q4EKg44YelUqVNIe/2XimcIfMlBQFk1DOcmibesxa3yWMKAdg2IGUnG+pQ==", - "cpu": [ - "x64" - ], + "node_modules/@npmcli/redact": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.0.0.tgz", + "integrity": "sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "ISC", "engines": { - "node": ">= 10" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-20.0.6.tgz", - "integrity": "sha512-2D8TIjyi5dJLy4cx8u7YKunW6+EG9FAuBUo75qMCozTBw1EPTK2lzwLE2d8C7WOxBA148O2wzD5uiX1vCt2Tzg==", - "cpu": [ - "arm64" - ], + "node_modules/@npmcli/run-script": { + "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": "^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": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, "engines": { - "node": ">= 10" + "node": ">=8.0.0", + "npm": ">=5.0.0" } }, - "node_modules/@nx/nx-win32-x64-msvc": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-20.0.6.tgz", - "integrity": "sha512-B83kpN1+KdJ97P0Rw/KRyZ5fZPtKimvwg/TAJdWR1D8oqdrpaZwgTd9dcsTNavvynUsPqM3GdjmFKzTYTZ4MFQ==", - "cpu": [ - "x64" - ], + "node_modules/@nx/angular": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/angular/-/angular-20.3.3.tgz", + "integrity": "sha512-KaZK7pW43FmLGhOfnnSpEddlwDjwXCXIyy10m7RHz3cOQ4xMZz5aktWbgjc6Ovphyh5Tmh4C9BVLBi+MPRJd4A==", + "dev": true, + "dependencies": { + "@nx/devkit": "20.3.3", + "@nx/eslint": "20.3.3", + "@nx/js": "20.3.3", + "@nx/module-federation": "20.3.3", + "@nx/web": "20.3.3", + "@nx/webpack": "20.3.3", + "@nx/workspace": "20.3.3", + "@phenomnomnominal/tsquery": "~5.0.1", + "@typescript-eslint/type-utils": "^8.0.0", + "magic-string": "~0.30.2", + "minimatch": "9.0.3", + "picocolors": "^1.1.0", + "piscina": "^4.4.0", + "semver": "^7.5.3", + "tslib": "^2.3.0", + "webpack-merge": "^5.8.0" + }, + "peerDependencies": { + "@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/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", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@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": ">= 10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@nx/storybook": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/storybook/-/storybook-20.0.6.tgz", - "integrity": "sha512-eqQKs67bRb9vutCt+dcR5CUhnSiQ2X82cYNryHEu/u8qE0LRfmCxxWh1DUNGxz1v1SYquo6RBo0qORm8oef3Pg==", + "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": { - "@nx/cypress": "20.0.6", - "@nx/devkit": "20.0.6", - "@nx/eslint": "20.0.6", - "@nx/js": "20.0.6", - "@phenomnomnominal/tsquery": "~5.0.1", - "semver": "^7.5.3", - "tslib": "^2.3.0" + "optionalDependencies": { + "@napi-rs/nice": "^1.0.1" } }, - "node_modules/@nx/web": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/web/-/web-20.0.6.tgz", - "integrity": "sha512-lYu9FddREZYbjbjS9YYnXu+uGQUB6MptNvPNSvYRRUcdq7c8Kh10P21YyK2Ox7FsEUeqly+XVvhlKNXeQF5anw==", + "node_modules/@nx/angular/node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "20.0.6", - "@nx/js": "20.0.6", - "detect-port": "^1.5.1", - "http-server": "^14.1.0", - "picocolors": "^1.1.0", - "tslib": "^2.3.0" + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/@nx/webpack": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/webpack/-/webpack-20.0.6.tgz", - "integrity": "sha512-LvjkJ0yVXDCNgxxIKYLMtEJVVdvBVHcB9mgwPdBfl38STAf/HwTuB7XXTZVYu+m9iPusU1VpFpaUlbpQN79f8A==", + "node_modules/@nx/cypress": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/cypress/-/cypress-20.3.3.tgz", + "integrity": "sha512-YapRzAiYGM9k8EI2u+aY/gSDlWiEJEV66MPwb+2KPuGz6xBCLopshC/xQ8twYSlX8hPOLAIYL8BDvd7klcjyeA==", "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.0.6", - "@nx/js": "20.0.6", + "@nx/devkit": "20.3.3", + "@nx/eslint": "20.3.3", + "@nx/js": "20.3.3", "@phenomnomnominal/tsquery": "~5.0.1", - "ajv": "^8.12.0", - "autoprefixer": "^10.4.9", - "babel-loader": "^9.1.2", - "browserslist": "^4.21.4", - "chalk": "^4.1.0", - "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.0", - "less": "4.1.3", - "less-loader": "11.1.0", - "license-webpack-plugin": "^4.0.2", - "loader-utils": "^2.0.3", - "mini-css-extract-plugin": "~2.4.7", - "parse5": "4.0.0", - "postcss": "^8.4.38", - "postcss-import": "~14.1.0", - "postcss-loader": "^6.1.1", - "rxjs": "^7.8.0", - "sass": "^1.42.1", - "sass-loader": "^12.2.0", - "source-map-loader": "^5.0.0", - "style-loader": "^3.3.0", - "stylus": "^0.59.0", - "stylus-loader": "^7.1.0", - "terser-webpack-plugin": "^5.3.3", - "ts-loader": "^9.3.1", - "tsconfig-paths-webpack-plugin": "4.0.0", - "tslib": "^2.3.0", - "webpack": "^5.80.0", - "webpack-dev-server": "^5.0.4", - "webpack-node-externals": "^3.0.0", - "webpack-subresource-integrity": "^5.1.0" + "detect-port": "^1.5.1", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "cypress": ">= 3 < 14" + }, + "peerDependenciesMeta": { + "cypress": { + "optional": true + } } }, - "node_modules/@nx/webpack/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/devkit": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-20.3.3.tgz", + "integrity": "sha512-YwVQQpyeMpQeXzu4/Yv6Ng3ZZxJ45RGbGqbb+VWQfDKkZIHcyR7iLLQDaLpyl34HkrLYdZez9BB8wnyn3IaxqA==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "ejs": "^3.1.7", + "enquirer": "~2.3.6", + "ignore": "^5.0.4", + "minimatch": "9.0.3", + "semver": "^7.5.3", + "tmp": "~0.2.1", + "tslib": "^2.3.0", + "yargs-parser": "21.1.1" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "nx": ">= 19 <= 21" } }, - "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/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": "MIT", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "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==", + "node_modules/@nx/eslint": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/eslint/-/eslint-20.3.3.tgz", + "integrity": "sha512-yWr/GUAhlpj2CywgaKvTsHHWD/YCFmxRDjOTRUvH5CB5LqkR5+5H4Mj85mb4AwOxH1JlA0Ta20KEhRS1e8hPwA==", "dev": true, - "license": "MIT", - "engines": { - "node": "*" + "dependencies": { + "@nx/devkit": "20.3.3", + "@nx/js": "20.3.3", + "semver": "^7.5.3", + "tslib": "^2.3.0", + "typescript": "~5.6.2" + }, + "peerDependencies": { + "@zkochan/js-yaml": "0.0.7", + "eslint": "^8.0.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "@zkochan/js-yaml": { + "optional": true + } } }, - "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==", + "node_modules/@nx/eslint-plugin": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/eslint-plugin/-/eslint-plugin-20.3.3.tgz", + "integrity": "sha512-y1OLK0lCpkiDr0uAwH5+H4TdIRosu/A/+vBbNB9ZlaSQEeBpduNvMvBXnAts52SIVWJASKHxrkQuH2534dIaxA==", "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" + "@nx/devkit": "20.3.3", + "@nx/js": "20.3.3", + "@typescript-eslint/type-utils": "^8.0.0", + "@typescript-eslint/utils": "^8.0.0", + "chalk": "^4.1.0", + "confusing-browser-globals": "^1.0.9", + "globals": "^15.9.0", + "jsonc-eslint-parser": "^2.1.0", + "semver": "^7.5.3", + "tslib": "^2.3.0" }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "peerDependencies": { + "@typescript-eslint/parser": "^6.13.2 || ^7.0.0 || ^8.0.0", + "eslint-config-prettier": "^9.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/@nx/webpack/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/eslint-plugin/node_modules/globals": { + "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", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/@nx/jest": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/jest/-/jest-20.3.3.tgz", + "integrity": "sha512-iRYJL3r92Kut4gg3ha0rlkOJ7ckxbQPP/HErq+eKX7hRFEqO7ToABkCXOrw2NEAgj82bPeJyop3ukcPcAz3cHA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "@jest/reporters": "^29.4.1", + "@jest/test-result": "^29.4.1", + "@nx/devkit": "20.3.3", + "@nx/js": "20.3.3", + "@phenomnomnominal/tsquery": "~5.0.1", + "identity-obj-proxy": "3.0.0", + "jest-config": "^29.4.1", + "jest-resolve": "^29.4.1", + "jest-util": "^29.4.1", + "minimatch": "9.0.3", + "picocolors": "^1.1.0", + "resolve.exports": "2.0.3", + "semver": "^7.5.3", + "tslib": "^2.3.0", + "yargs-parser": "21.1.1" } }, - "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==", + "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": { - "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" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 12.20.0" + "node": ">=16 || 14 >=14.17" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@nx/js": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/js/-/js-20.3.3.tgz", + "integrity": "sha512-IVECDcjUv3mzM4uIR/BhWs1IbmvGAw2EkGoISsaiXqffFlQpQBOqypZmKORTjQr7Qyn4kHzEJ7EyuQM9w/MYpA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.2", + "@babel/plugin-proposal-decorators": "^7.22.7", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-runtime": "^7.23.2", + "@babel/preset-env": "^7.23.2", + "@babel/preset-typescript": "^7.22.5", + "@babel/runtime": "^7.22.6", + "@nx/devkit": "20.3.3", + "@nx/workspace": "20.3.3", + "@zkochan/js-yaml": "0.0.7", + "babel-plugin-const-enum": "^1.0.1", + "babel-plugin-macros": "^2.8.0", + "babel-plugin-transform-typescript-metadata": "^0.3.1", + "chalk": "^4.1.0", + "columnify": "^1.6.0", + "detect-port": "^1.5.1", + "enquirer": "~2.3.6", + "ignore": "^5.0.4", + "js-tokens": "^4.0.0", + "jsonc-parser": "3.2.0", + "minimatch": "9.0.3", + "npm-package-arg": "11.0.1", + "npm-run-path": "^4.0.1", + "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" }, "peerDependencies": { - "webpack": "^5.1.0" + "verdaccio": "^5.0.4" + }, + "peerDependenciesMeta": { + "verdaccio": { + "optional": true + } } }, - "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==", + "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": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, + "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": { "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", + "import-fresh": "^3.1.0", "parse-json": "^5.0.0", "path-type": "^4.0.0", - "yaml": "^1.10.0" + "yaml": "^1.7.2" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "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==", + "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": "MIT", + "license": "ISC", "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" + "lru-cache": "^10.0.1" }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/@nx/webpack/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/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": "^16.14.0 || >=18.0.0" } }, - "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==", + "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": { - "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" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 0.10.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "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==", + "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", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", "dev": true, - "license": "MIT", + "license": "ISC", "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" + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": ">= 0.8" + "node": "^16.14.0 || >=18.0.0" } }, - "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==", + "node_modules/@nx/js/node_modules/ora": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", + "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", "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" + "bl": "^4.0.3", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@nx/webpack/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/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@nx/webpack/node_modules/less": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", - "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", + "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", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^3.1.0", - "source-map": "~0.6.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/@nx/webpack/node_modules/less-loader": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", - "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "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", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "license": "MIT", "dependencies": { - "klona": "^2.0.4" - }, - "engines": { - "node": ">= 14.15.0" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" }, "peerDependencies": { - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } } }, - "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==", + "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": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, + "license": "ISC", "engines": { - "node": ">=8.9.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.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==", + "node_modules/@nx/module-federation": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/module-federation/-/module-federation-20.3.3.tgz", + "integrity": "sha512-fbIw3XJvh3xQS6qvZKJ1NB9aMjoAHYJj069GufYuviK7YIDK944ffXBSt3pIP8VZX51cnc2jSi+6FVaAufUcRA==", "dev": true, - "license": "MIT", - "optional": true, "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" + "@module-federation/enhanced": "^0.8.8", + "@module-federation/node": "^2.6.21", + "@module-federation/sdk": "^0.8.8", + "@nx/devkit": "20.3.3", + "@nx/js": "20.3.3", + "@nx/web": "20.3.3", + "@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/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==", + "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": "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" + "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": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@nx/webpack/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/parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "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==", + "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/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/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", - "optional": true, + "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": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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/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 + }, + "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": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.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==", + "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": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "@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": ">=0.6" + "node": ">=10.13.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } } }, - "node_modules/@nx/webpack/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==", + "node_modules/@nx/nest": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/nest/-/nest-20.3.3.tgz", + "integrity": "sha512-mt06dDMLdS/PIPOVrtjroLk4twulJ0MN+LFbR1G0eMdlH60sNf0Cb0KPROpNfftRMLRC5z0se6EXvx4VkltREA==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "tslib": "^2.1.0" + "@nestjs/schematics": "^9.1.0", + "@nx/devkit": "20.3.3", + "@nx/eslint": "20.3.3", + "@nx/js": "20.3.3", + "@nx/node": "20.3.3", + "tslib": "^2.3.0" } }, - "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", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "node_modules/@nx/nest/node_modules/@angular-devkit/core": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.0.1.tgz", + "integrity": "sha512-2uz98IqkKJlgnHbWQ7VeL4pb+snGAZXIama2KXi+k9GsRntdcw+udX8rL3G9SdUGUF+m6+147Y1oRBMHsO/v4w==", "dev": true, "license": "MIT", "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "7.8.1", + "source-map": "0.7.4" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" }, "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" + "chokidar": "^3.5.2" }, "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { + "chokidar": { "optional": true } } }, - "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==", + "node_modules/@nx/nest/node_modules/@angular-devkit/schematics": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.0.1.tgz", + "integrity": "sha512-A9D0LTYmiqiBa90GKcSuWb7hUouGIbm/AHbJbjL85WLLRbQA2PwKl7P5Mpd6nS/ZC0kfG4VQY3VOaDvb3qpI9g==", "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" + "@angular-devkit/core": "16.0.1", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.0", + "ora": "5.4.1", + "rxjs": "7.8.1" }, "engines": { - "node": ">= 0.8.0" + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" } }, - "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==", + "node_modules/@nx/nest/node_modules/@nestjs/schematics": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-9.2.0.tgz", + "integrity": "sha512-wHpNJDPzM6XtZUOB3gW0J6mkFCSJilzCM3XrHI1o0C8vZmFE1snbmkIXNyoi1eV0Nxh1BMymcgz5vIMJgQtTqw==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.8" + "dependencies": { + "@angular-devkit/core": "16.0.1", + "@angular-devkit/schematics": "16.0.1", + "jsonc-parser": "3.2.0", + "pluralize": "8.0.0" + }, + "peerDependencies": { + "typescript": ">=4.3.5" } }, - "node_modules/@nx/webpack/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/@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==", + "node_modules/@nx/nest/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "license": "MIT", "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">= 0.8.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@nx/webpack/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "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": { + "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://github.com/sponsors/sindresorhus" + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "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/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": "BSD-3-Clause", + "license": "ISC", "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nx/webpack/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", + "peer": true, "dependencies": { - "has-flag": "^4.0.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/workspace": { - "version": "20.0.6", - "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-20.0.6.tgz", - "integrity": "sha512-A7lle47I4JggbhXoUVvkuvULqF0Xejy4LpE0txz9OIM5a9HxW1aIHYYQFuROBuVlMFxAJusPeYFJCCvb+qBxKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/devkit": "20.0.6", - "chalk": "^4.1.0", - "enquirer": "~2.3.6", - "nx": "20.0.6", - "tslib": "^2.3.0", - "yargs-parser": "21.1.1" + "node": ">= 6" } }, - "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/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", - "dependencies": { - "color-convert": "^2.0.1" - }, + "optional": true, + "peer": true, "engines": { - "node": ">=8" + "node": ">=8.6" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "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==", + "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8.10.0" } }, - "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==", + "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": "MIT", + "license": "BSD-3-Clause", "engines": { - "node": ">=8" + "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==", + "node_modules/@nx/node": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/node/-/node-20.3.3.tgz", + "integrity": "sha512-6VDnqYjxUwsFlfrj5csFOWqQAq5vofwDNHvehE9dfMNE8swL43kMUtSSyUKSzU0xEfRPWdbY56EpEmLlhite3w==", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "asn1js": "^3.0.5", - "tslib": "^2.6.2" - } - }, - "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==", - "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==", - "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", - "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "@nx/devkit": "20.3.3", + "@nx/eslint": "20.3.3", + "@nx/jest": "20.3.3", + "@nx/js": "20.3.3", + "tslib": "^2.3.0" } }, - "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==", - "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==", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", - "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "node_modules/@nx/nx-darwin-arm64": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-20.3.3.tgz", + "integrity": "sha512-4C7ShMrqp1vbH1ZgvSlkt0f35hJcqKtRcf8n/tCck46rnMkj4egXi3K1dE6uQcOorwiD1ttAr0DHcI1TTqcNXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" } }, - "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==", - "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==", - "license": "MIT", - "dependencies": { - "asn1js": "^3.0.5", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2" + "node_modules/@nx/nx-darwin-x64": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-20.3.3.tgz", + "integrity": "sha512-OUtJ7gA09pJC+a+RcZf1bGbMM4T7a/IcPb97z1xOoxr5Wm2s8BGBQUW2CKJ5gCp5iI1pGo44F12u0G9gbYClow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" } }, - "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==", - "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==", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "asn1js": "^3.0.5", - "ipaddr.js": "^2.1.0", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2" + "node_modules/@nx/nx-freebsd-x64": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-20.3.3.tgz", + "integrity": "sha512-q4SABgKYWPGOcdfRZne6n8HF4CzltRL5nJ3q093jQAUO93yPXtWzhQBaKZIZr6aPoqq0/NuH6xY4gNo4w9F8Bg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" } }, - "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==", - "license": "0BSD" - }, - "node_modules/@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "peer": true, - "dependencies": { - "tslib": "^2.0.0" - }, + "node_modules/@nx/nx-linux-arm-gnueabihf": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-20.3.3.tgz", + "integrity": "sha512-e07PJcVsBT/Aelo/Vj6hLplDZamGCZ3zOJpW3XVBhdG4DC4sn+jodsdrIASoEpmF70VB89lzQsm9GrAgQPaWOA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8.0.0" + "node": ">= 10" } }, - "node_modules/@peculiar/webcrypto": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.5.0.tgz", - "integrity": "sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg==", - "peer": true, - "dependencies": { - "@peculiar/asn1-schema": "^2.3.8", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2", - "webcrypto-core": "^1.8.0" - }, + "node_modules/@nx/nx-linux-arm64-gnu": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-20.3.3.tgz", + "integrity": "sha512-1Z9chlN0/hWzliMer7TvdLT8cb6BKpGjZ15a+rQuUbO/CyLhY21Ct+lXtnaBERnNPYJpNOJlrbBDuF/9wpZ4CQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.12.0" + "node": ">= 10" } }, - "node_modules/@peculiar/webcrypto/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==", - "peer": true - }, - "node_modules/@phenomnomnominal/tsquery": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-5.0.1.tgz", - "integrity": "sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==", + "node_modules/@nx/nx-linux-arm64-musl": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-20.3.3.tgz", + "integrity": "sha512-RrLgujPU5NfDrsDRa7Y2isxGb8XkoQeJkTMUl1xmBK2Qnf4jAUn0PH0ULWrRMNgChi4nYUTn/Sf+2m6Uyoqcfw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "esquery": "^1.4.0" - }, - "peerDependencies": { - "typescript": "^3 || ^4 || ^5" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "license": "MIT", + "node_modules/@nx/nx-linux-x64-gnu": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.3.3.tgz", + "integrity": "sha512-/WmCnPxv1eR8tyYiFp4XoMbcXrJ8a/OIw1rpZZ5ceMKgH8lPaF2/KFf04JZZygrCKletEdqqIojBXz4AHoaueQ==", + "cpu": [ + "x64" + ], + "dev": true, "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=14" + "node": ">= 10" } }, - "node_modules/@polka/url": { - "version": "1.0.0-next.28", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", - "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "node_modules/@nx/nx-linux-x64-musl": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-20.3.3.tgz", + "integrity": "sha512-y4BJsR0fgJrXY3P7GkWfUZAeQEHMTXvaRHvzJfBSBPmnVcVZDYNTfEQYnslp8m8ahKdlJwtflxzykJ4Bwf55fw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT" - }, - "node_modules/@prisma/client": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.21.1.tgz", - "integrity": "sha512-3n+GgbAZYjaS/k0M03yQsQfR1APbr411r74foknnsGpmhNKBG49VuUkxIU6jORgvJPChoD4WC4PqoHImN1FP0w==", - "hasInstallScript": true, - "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=16.13" - }, - "peerDependencies": { - "prisma": "*" - }, - "peerDependenciesMeta": { - "prisma": { - "optional": true - } + "node": ">= 10" } }, - "node_modules/@prisma/debug": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.21.1.tgz", - "integrity": "sha512-uY8SAhcnORhvgtOrNdvWS98Aq/nkQ9QDUxrWAgW8XrCZaI3j2X7zb7Xe6GQSh6xSesKffFbFlkw0c2luHQviZA==", - "devOptional": true, - "license": "Apache-2.0" - }, - "node_modules/@prisma/engines": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.21.1.tgz", - "integrity": "sha512-hGVTldUkIkTwoV8//hmnAAiAchi4oMEKD3aW5H2RrnI50tTdwza7VQbTTAyN3OIHWlK5DVg6xV7X8N/9dtOydA==", - "devOptional": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@prisma/debug": "5.21.1", - "@prisma/engines-version": "5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36", - "@prisma/fetch-engine": "5.21.1", - "@prisma/get-platform": "5.21.1" + "node_modules/@nx/nx-win32-arm64-msvc": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-20.3.3.tgz", + "integrity": "sha512-BHqZitBaGT9ybv386B5QKxP5N66+xpTiYlKClzQ44o6Ca8QxnkugI64exBdcQyj+DRiL6HJhN14kaPJ1KrsKRA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@prisma/engines-version": { - "version": "5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36.tgz", - "integrity": "sha512-qvnEflL0//lh44S/T9NcvTMxfyowNeUxTunPcDfKPjyJNrCNf2F1zQLcUv5UHAruECpX+zz21CzsC7V2xAeM7Q==", - "devOptional": true, - "license": "Apache-2.0" + "node_modules/@nx/nx-win32-x64-msvc": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-20.3.3.tgz", + "integrity": "sha512-6HcbAKghEypt4aMAoDjPn2sa6FG0MyiDabpV/cVLKokK09ngyy6qQDa5vSCUSDwI542XBxqtcv0AcZi7Ez+XUQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } }, - "node_modules/@prisma/fetch-engine": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.21.1.tgz", - "integrity": "sha512-70S31vgpCGcp9J+mh/wHtLCkVezLUqe/fGWk3J3JWZIN7prdYSlr1C0niaWUyNK2VflLXYi8kMjAmSxUVq6WGQ==", - "devOptional": true, - "license": "Apache-2.0", + "node_modules/@nx/storybook": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/storybook/-/storybook-20.3.3.tgz", + "integrity": "sha512-w5dYm7kpT1jfs26V6xwKWuI+8PEqbzrJT3eoCo02VAomkSk2cg8nw2PHu7pouMzSoUweUDnV+Er6VbdsjhHszg==", + "dev": true, "dependencies": { - "@prisma/debug": "5.21.1", - "@prisma/engines-version": "5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36", - "@prisma/get-platform": "5.21.1" + "@nx/cypress": "20.3.3", + "@nx/devkit": "20.3.3", + "@nx/eslint": "20.3.3", + "@nx/js": "20.3.3", + "@phenomnomnominal/tsquery": "~5.0.1", + "semver": "^7.5.3", + "tslib": "^2.3.0" } }, - "node_modules/@prisma/get-platform": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.21.1.tgz", - "integrity": "sha512-sRxjL3Igst3ct+e8ya/x//cDXmpLbZQ5vfps2N4tWl4VGKQAmym77C/IG/psSMsQKszc8uFC/q1dgmKFLUgXZQ==", - "devOptional": true, - "license": "Apache-2.0", + "node_modules/@nx/web": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/web/-/web-20.3.3.tgz", + "integrity": "sha512-dDf2idn2u8IDkjoKorX0SmlmWO8RtEHteHa5xXNDlftR2zT5laQ1Se4Fmz4fOsDCIt+qolbB2d8cG+W3WuZWZA==", + "dev": true, "dependencies": { - "@prisma/debug": "5.21.1" + "@nx/devkit": "20.3.3", + "@nx/js": "20.3.3", + "detect-port": "^1.5.1", + "http-server": "^14.1.0", + "picocolors": "^1.1.0", + "tslib": "^2.3.0" } }, - "node_modules/@redis/bloom": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz", - "integrity": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==", - "license": "MIT", - "peerDependencies": { - "@redis/client": "^1.0.0" + "node_modules/@nx/webpack": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/webpack/-/webpack-20.3.3.tgz", + "integrity": "sha512-el9FI9voPI4G5tXbGKall6ne75BQgOLTwx3kp7VQqpBhQZs8ZxPdRHYtahh5GwfUI6yWzHhxsvVPrSHGvSQOCw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.2", + "@nx/devkit": "20.3.3", + "@nx/js": "20.3.3", + "@phenomnomnominal/tsquery": "~5.0.1", + "ajv": "^8.12.0", + "autoprefixer": "^10.4.9", + "babel-loader": "^9.1.2", + "browserslist": "^4.21.4", + "copy-webpack-plugin": "^10.2.4", + "css-loader": "^6.4.0", + "css-minimizer-webpack-plugin": "^5.0.0", + "fork-ts-checker-webpack-plugin": "7.2.13", + "less": "4.1.3", + "less-loader": "11.1.0", + "license-webpack-plugin": "^4.0.2", + "loader-utils": "^2.0.3", + "mini-css-extract-plugin": "~2.4.7", + "parse5": "4.0.0", + "picocolors": "^1.1.0", + "postcss": "^8.4.38", + "postcss-import": "~14.1.0", + "postcss-loader": "^6.1.1", + "rxjs": "^7.8.0", + "sass": "^1.42.1", + "sass-loader": "^12.2.0", + "source-map-loader": "^5.0.0", + "style-loader": "^3.3.0", + "stylus": "^0.64.0", + "stylus-loader": "^7.1.0", + "terser-webpack-plugin": "^5.3.3", + "ts-loader": "^9.3.1", + "tsconfig-paths-webpack-plugin": "4.0.0", + "tslib": "^2.3.0", + "webpack": "^5.80.0", + "webpack-dev-server": "^5.0.4", + "webpack-node-externals": "^3.0.0", + "webpack-subresource-integrity": "^5.1.0" } }, - "node_modules/@redis/client": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.6.0.tgz", - "integrity": "sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==", - "license": "MIT", + "node_modules/@nx/webpack/node_modules/less": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", + "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", + "dev": true, "dependencies": { - "cluster-key-slot": "1.1.2", - "generic-pool": "3.9.0", - "yallist": "4.0.0" + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" }, "engines": { - "node": ">=14" - } - }, - "node_modules/@redis/graph": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.1.tgz", - "integrity": "sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==", - "license": "MIT", - "peerDependencies": { - "@redis/client": "^1.0.0" + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" } }, - "node_modules/@redis/json": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.7.tgz", - "integrity": "sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==", - "license": "MIT", - "peerDependencies": { - "@redis/client": "^1.0.0" - } + "node_modules/@nx/webpack/node_modules/parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true }, - "node_modules/@redis/search": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.2.0.tgz", - "integrity": "sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==", - "license": "MIT", - "peerDependencies": { - "@redis/client": "^1.0.0" + "node_modules/@nx/webpack/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==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tsconfig-paths": "^4.0.0" + }, + "engines": { + "node": ">=10.13.0" } }, - "node_modules/@redis/time-series": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.1.0.tgz", - "integrity": "sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==", - "license": "MIT", - "peerDependencies": { - "@redis/client": "^1.0.0" + "node_modules/@nx/workspace": { + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-20.3.3.tgz", + "integrity": "sha512-eN7W9H2yLDZ4ZWegdS+pChdFETMUgjsLgvGijRpZONIguo6wR+aU2LhSfj2ww8JKNJ4rcSnOw4soaaHg2W3dTQ==", + "dev": true, + "dependencies": { + "@nx/devkit": "20.3.3", + "chalk": "^4.1.0", + "enquirer": "~2.3.6", + "nx": "20.3.3", + "tslib": "^2.3.0", + "yargs-parser": "21.1.1" } }, - "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" - ], + "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, - "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==", + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "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/@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", "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==", - "cpu": [ - "arm64" + "darwin" ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@peculiar/asn1-android": { + "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", - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@peculiar/asn1-schema": "^2.3.15", + "asn1js": "^3.0.5", + "tslib": "^2.8.1" + } }, - "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==", - "cpu": [ - "x64" - ], + "node_modules/@peculiar/asn1-ecc": { + "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", - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", + "asn1js": "^3.0.5", + "tslib": "^2.8.1" + } }, - "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/@peculiar/asn1-rsa": { + "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", - "optional": true, - "os": [ - "linux" - ] - }, - "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" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "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" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "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/@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" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "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" - ], - "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" - ] + "dependencies": { + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", + "asn1js": "^3.0.5", + "tslib": "^2.8.1" + } }, - "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" - ], + "node_modules/@peculiar/asn1-schema": { + "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", - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } }, - "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" - ], + "node_modules/@peculiar/asn1-x509": { + "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", - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@peculiar/asn1-schema": "^2.3.15", + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } }, - "node_modules/@samverschueren/stream-to-observable": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", - "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", - "dev": true, - "license": "MIT", + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "peer": true, "dependencies": { - "any-observable": "^0.3.0" + "tslib": "^2.0.0" }, "engines": { - "node": ">=6" - }, - "peerDependenciesMeta": { - "rxjs": { - "optional": true - }, - "zen-observable": { - "optional": true - } + "node": ">=8.0.0" } }, - "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==", - "license": "MIT", + "node_modules/@peculiar/webcrypto": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.5.0.tgz", + "integrity": "sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg==", + "peer": true, "dependencies": { - "@angular-devkit/core": "18.2.9", - "@angular-devkit/schematics": "18.2.9", - "jsonc-parser": "3.3.1" + "@peculiar/asn1-schema": "^2.3.8", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2", + "webcrypto-core": "^1.8.0" }, "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": ">=10.12.0" } }, - "node_modules/@sigstore/bundle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", - "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", + "node_modules/@phenomnomnominal/tsquery": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-5.0.1.tgz", + "integrity": "sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" + "esquery": "^1.4.0" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "peerDependencies": { + "typescript": "^3 || ^4 || ^5" } }, - "node_modules/@sigstore/core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", - "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", + "node_modules/@pkgjs/parseargs": { + "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": "Apache-2.0", + "license": "MIT", + "optional": true, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=14" } }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", - "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", + "node_modules/@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", "dev": true, + "license": "MIT" + }, + "node_modules/@prisma/client": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.2.1.tgz", + "integrity": "sha512-msKY2iRLISN8t5X0Tj7hU0UWet1u0KuxSPHWuf3IRkB4J95mCvGpyQBfQ6ufcmvKNOMQSq90O2iUmJEN2e5fiA==", + "hasInstallScript": true, "license": "Apache-2.0", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=18.18" + }, + "peerDependencies": { + "prisma": "*" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + } } }, - "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==", - "dev": true, + "node_modules/@prisma/debug": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.2.1.tgz", + "integrity": "sha512-0KItvt39CmQxWkEw6oW+RQMD6RZ43SJWgEUnzxN8VC9ixMysa7MzZCZf22LCK5DSooiLNf8vM3LHZm/I/Ni7bQ==", + "devOptional": true, + "license": "Apache-2.0" + }, + "node_modules/@prisma/engines": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.2.1.tgz", + "integrity": "sha512-lTBNLJBCxVT9iP5I7Mn6GlwqAxTpS5qMERrhebkUhtXpGVkBNd/jHnNJBZQW4kGDCKaQg/r2vlJYkzOHnAb7ZQ==", + "devOptional": true, + "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^13.0.1", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "@prisma/debug": "6.2.1", + "@prisma/engines-version": "6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69", + "@prisma/fetch-engine": "6.2.1", + "@prisma/get-platform": "6.2.1" } }, - "node_modules/@sigstore/tuf": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", - "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", - "dev": true, + "node_modules/@prisma/engines-version": { + "version": "6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69.tgz", + "integrity": "sha512-7tw1qs/9GWSX6qbZs4He09TOTg1ff3gYsB3ubaVNN0Pp1zLm9NC5C5MZShtkz7TyQjx7blhpknB7HwEhlG+PrQ==", + "devOptional": true, + "license": "Apache-2.0" + }, + "node_modules/@prisma/fetch-engine": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.2.1.tgz", + "integrity": "sha512-OO7O9d6Mrx2F9i+Gu1LW+DGXXyUFkP7OE5aj9iBfA/2jjDXEJjqa9X0ZmM9NZNo8Uo7ql6zKm6yjDcbAcRrw1A==", + "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", - "tuf-js": "^2.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "@prisma/debug": "6.2.1", + "@prisma/engines-version": "6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69", + "@prisma/get-platform": "6.2.1" } }, - "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==", - "dev": true, + "node_modules/@prisma/get-platform": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.2.1.tgz", + "integrity": "sha512-zp53yvroPl5m5/gXYLz7tGCNG33bhG+JYCm74ohxOq1pPnrL47VQYFfF3RbTZ7TzGWCrR3EtoiYMywUBw7UK6Q==", + "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "@prisma/debug": "6.2.1" } }, - "node_modules/@simplewebauthn/browser": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@simplewebauthn/browser/-/browser-9.0.1.tgz", - "integrity": "sha512-wD2WpbkaEP4170s13/HUxPcAV5y4ZXaKo1TfNklS5zDefPinIgXOpgz1kpEvobAsaLPa2KeH7AKKX/od1mrBJw==", + "node_modules/@redis/bloom": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz", + "integrity": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==", "license": "MIT", - "dependencies": { - "@simplewebauthn/types": "^9.0.1" + "peerDependencies": { + "@redis/client": "^1.0.0" } }, - "node_modules/@simplewebauthn/server": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@simplewebauthn/server/-/server-9.0.3.tgz", - "integrity": "sha512-FMZieoBosrVLFxCnxPFD9Enhd1U7D8nidVDT4MsHc6l4fdVcjoeHjDueeXCloO1k5O/fZg1fsSXXPKbY2XTzDA==", + "node_modules/@redis/client": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.6.0.tgz", + "integrity": "sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==", "license": "MIT", "dependencies": { - "@hexagon/base64": "^1.1.27", - "@levischuck/tiny-cbor": "^0.2.2", + "cluster-key-slot": "1.1.2", + "generic-pool": "3.9.0", + "yallist": "4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@redis/graph": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.1.tgz", + "integrity": "sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/json": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.7.tgz", + "integrity": "sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/search": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.2.0.tgz", + "integrity": "sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/time-series": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.1.0.tgz", + "integrity": "sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "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" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "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": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "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", + "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/@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", + "dependencies": { + "@module-federation/sdk": "0.5.1" + } + }, + "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", + "dependencies": { + "@module-federation/runtime": "0.5.1", + "@module-federation/webpack-bundler-runtime": "0.5.1" + } + }, + "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/@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", + "dependencies": { + "@module-federation/runtime": "0.5.1", + "@module-federation/sdk": "0.5.1" + } + }, + "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", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@samverschueren/stream-to-observable": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", + "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-observable": "^0.3.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependenciesMeta": { + "rxjs": { + "optional": true + }, + "zen-observable": { + "optional": true + } + } + }, + "node_modules/@schematics/angular": { + "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": "19.0.6", + "@angular-devkit/schematics": "19.0.6", + "jsonc-parser": "3.3.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/@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": "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": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/core": { + "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": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign": { + "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": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^14.0.1", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/tuf": { + "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": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/verify": { + "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": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@simplewebauthn/browser": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@simplewebauthn/browser/-/browser-9.0.1.tgz", + "integrity": "sha512-wD2WpbkaEP4170s13/HUxPcAV5y4ZXaKo1TfNklS5zDefPinIgXOpgz1kpEvobAsaLPa2KeH7AKKX/od1mrBJw==", + "license": "MIT", + "dependencies": { + "@simplewebauthn/types": "^9.0.1" + } + }, + "node_modules/@simplewebauthn/server": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@simplewebauthn/server/-/server-9.0.3.tgz", + "integrity": "sha512-FMZieoBosrVLFxCnxPFD9Enhd1U7D8nidVDT4MsHc6l4fdVcjoeHjDueeXCloO1k5O/fZg1fsSXXPKbY2XTzDA==", + "license": "MIT", + "dependencies": { + "@hexagon/base64": "^1.1.27", + "@levischuck/tiny-cbor": "^0.2.2", "@peculiar/asn1-android": "^2.3.10", "@peculiar/asn1-ecc": "^2.3.8", "@peculiar/asn1-rsa": "^2.3.8", @@ -8807,6 +9110,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", @@ -8820,18 +9132,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", @@ -8865,9 +9165,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" @@ -8878,9 +9178,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": { @@ -8895,13 +9195,27 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" + } + }, + "node_modules/@storybook/addon-actions/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" } }, "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": { @@ -8914,19 +9228,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": { @@ -8934,27 +9247,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": { @@ -8962,40 +9270,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==", - "dev": true, - "license": "MIT", + "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.14" + "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": ">=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": { @@ -9003,13 +9400,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": { @@ -9020,19 +9417,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" }, @@ -9041,13 +9438,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": { @@ -9059,13 +9456,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": { @@ -9077,13 +9474,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": { @@ -9091,13 +9488,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": { @@ -9108,23 +9505,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", @@ -9147,19 +9544,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" }, @@ -9170,141 +9567,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" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "p-locate": "^5.0.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "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" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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/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": { - "has-flag": "^4.0.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.7.0", - "tsconfig-paths": "^4.1.2" + "node": ">=10" }, - "engines": { - "node": ">=10.13.0" + "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", @@ -9313,9 +9648,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", @@ -9337,7 +9670,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" }, "peerDependenciesMeta": { "typescript": { @@ -9346,13 +9679,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": { @@ -9382,479 +9715,421 @@ "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" + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "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==", + "node_modules/@storybook/builder-webpack5/node_modules/fork-ts-checker-webpack-plugin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz", + "integrity": "sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==", "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" + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=12.13.0", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "webpack": "^5.11.0" } }, - "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==", + "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==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" } }, - "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==", + "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": "MIT", + "license": "ISC", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">= 6" } }, - "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==", + "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": ">= 0.6" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "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==", + "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": { - "@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" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=10" + "node": ">=8.10.0" } }, - "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==", + "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==", "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" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@storybook/builder-webpack5/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/@storybook/builder-webpack5/node_modules/webpack-dev-middleware": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.3.tgz", + "integrity": "sha512-A4ChP0Qj8oGociTs6UdlRUGANIGrCDL3y+pmQMc+dSsraXHCatFpmMey4mYELA+juqwUqwQsUgJJISXl1KWmiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.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==", + "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": { - "ms": "2.0.0" + "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/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "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", - "engines": { - "node": ">= 0.8" + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" } }, - "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==", + "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": { - "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" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 0.10.0" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "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==", + "node_modules/@storybook/components": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.4.7.tgz", + "integrity": "sha512-uyJIcoyeMWKAvjrG9tJBUCKxr2WZk+PomgrgrUwejkIfXMO76i6jw9BwLa0NZjYdlthDv30r9FfbYZyeNPmF0g==", "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" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": ">= 0.8" + "peerDependencies": { + "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" } }, - "node_modules/@storybook/builder-webpack5/node_modules/fork-ts-checker-webpack-plugin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz", - "integrity": "sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==", + "node_modules/@storybook/core": { + "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": { - "@babel/code-frame": "^7.16.7", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "cosmiconfig": "^7.0.1", - "deepmerge": "^4.2.2", - "fs-extra": "^10.0.0", - "memfs": "^3.4.1", - "minimatch": "^3.0.4", - "node-abort-controller": "^3.0.1", - "schema-utils": "^3.1.1", - "semver": "^7.3.5", - "tapable": "^2.2.1" + "@storybook/csf": "^0.1.11", + "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 || ^0.24.0", + "esbuild-register": "^3.5.0", + "jsdoc-type-pratt-parser": "^4.0.0", + "process": "^0.11.10", + "recast": "^0.23.5", + "semver": "^7.6.2", + "util": "^0.12.5", + "ws": "^8.2.3" }, - "engines": { - "node": ">=12.13.0", - "yarn": ">=1.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "typescript": ">3.6.0", - "webpack": "^5.11.0" + "prettier": "^2 || ^3" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } } }, - "node_modules/@storybook/builder-webpack5/node_modules/fork-ts-checker-webpack-plugin/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==", + "node_modules/@storybook/core-server": { + "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", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": ">=12" + "peerDependencies": { + "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" } }, - "node_modules/@storybook/builder-webpack5/node_modules/fork-ts-checker-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==", + "node_modules/@storybook/core-webpack": { + "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": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" + "@types/node": "^22.0.0", + "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "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==", + "node_modules/@storybook/core-webpack/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": { - "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" + "undici-types": "~6.20.0" } }, - "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==", + "node_modules/@storybook/core-webpack/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/@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==", + "node_modules/@storybook/csf": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.13.tgz", + "integrity": "sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==", "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": "*" + "type-fest": "^2.19.0" } }, - "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==", + "node_modules/@storybook/csf-plugin": { + "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": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" + "unplugin": "^1.3.1" }, "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" + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": ">= 0.8.0" + "peerDependencies": { + "storybook": "^8.4.7" } }, - "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==", + "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", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">= 0.8" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/@storybook/global": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", + "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", "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==", + "node_modules/@storybook/instrumenter": { + "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": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" + "@storybook/global": "^5.0.0", + "@vitest/utils": "^2.1.1" }, - "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" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "storybook": "^8.4.7" } }, - "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==", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/builder-webpack5/node_modules/webpack-dev-middleware": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.3.tgz", - "integrity": "sha512-A4ChP0Qj8oGociTs6UdlRUGANIGrCDL3y+pmQMc+dSsraXHCatFpmMey4mYELA+juqwUqwQsUgJJISXl1KWmiw==", + "node_modules/@storybook/manager-api": { + "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", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.12", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } + "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" } }, - "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==", + "node_modules/@storybook/preview-api": { + "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": { @@ -9862,39 +10137,37 @@ "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==", + "node_modules/@storybook/test": { + "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", - "@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-register": "^3.5.0", - "express": "^4.19.2", - "jsdoc-type-pratt-parser": "^4.0.0", - "process": "^0.11.10", - "recast": "^0.23.5", - "semver": "^7.6.2", - "util": "^0.12.5", - "ws": "^8.2.3" + "@storybook/global": "^5.0.0", + "@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" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "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==", + "node_modules/@storybook/theming": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.4.7.tgz", + "integrity": "sha512-99rgLEjf7iwfSEmdqlHkSG3AyLcK0sfExcr0jnc6rLiAkBhzuIsvcHjjUwkR210SOCgXqBPW0ZA6uhnuyppHLw==", "dev": true, "license": "MIT", "funding": { @@ -9902,1066 +10175,713 @@ "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==", - "dev": true, + "node_modules/@stripe/stripe-js": { + "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.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", "dependencies": { - "@types/node": "^22.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.6" + "tslib": "^2.8.0" } }, - "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==", + "node_modules/@testing-library/dom": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" } }, - "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==", - "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==", + "node_modules/@testing-library/dom/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", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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==", + "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": "MIT", + "license": "Apache-2.0", "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" + "dequal": "^2.0.3" } }, - "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==", + "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": { - "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" + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "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==", + "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": ">= 0.6" - } + "license": "MIT" }, - "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==", + "node_modules/@testing-library/jest-dom": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.5.0.tgz", + "integrity": "sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==", "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", + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.21", + "redent": "^3.0.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" } }, - "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==", + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "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" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.10.0" + "node": ">=8" } }, - "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==", + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", "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" - } + "license": "MIT" }, - "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==", + "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", + "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" } }, - "node_modules/@storybook/core/node_modules/ms": { + "node_modules/@tootallnate/once": { "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" + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } }, - "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==", + "node_modules/@trivago/prettier-plugin-sort-imports": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz", + "integrity": "sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==", "dev": true, - "license": "BSD-3-Clause", + "license": "Apache-2.0", "dependencies": { - "side-channel": "^1.0.6" + "@babel/generator": "7.17.7", + "@babel/parser": "^7.20.5", + "@babel/traverse": "7.23.2", + "@babel/types": "7.17.0", + "javascript-natural-sort": "0.7.1", + "lodash": "^4.17.21" }, - "engines": { - "node": ">=0.6" + "peerDependencies": { + "@vue/compiler-sfc": "3.x", + "prettier": "2.x - 3.x" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + } } }, - "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==", + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/generator": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", "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" + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6.9.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==", + "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": ">= 0.8" + "node": ">=6.9.0" } }, - "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==", + "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", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dev": true, "license": "MIT", "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6.9.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==", + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/node_modules/@babel/generator": { + "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": { - "type-fest": "^2.19.0" + "@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" + }, + "engines": { + "node": ">=6.9.0" } }, - "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==", + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/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": { - "unplugin": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, - "peerDependencies": { - "storybook": "^8.3.6" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@storybook/global": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", - "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", - "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==", + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=14.0.0" + "bin": { + "jsesc": "bin/jsesc" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "engines": { + "node": ">=6" } }, - "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==", + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0", - "@vitest/utils": "^2.0.5", - "util": "^0.12.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" }, - "peerDependencies": { - "storybook": "^8.3.6" + "engines": { + "node": ">=6.9.0" } }, - "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==", + "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", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "bin": { + "jsesc": "bin/jsesc" }, - "peerDependencies": { - "storybook": "^8.3.6" + "engines": { + "node": ">=4" } }, - "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==", + "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", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.6" + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "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==", + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "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" + "engines": { + "node": ">=10.13.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==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf": "^0.1.11", - "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.3.6", - "@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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.6" - } + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "license": "MIT" }, - "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==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.6" - } + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "license": "MIT" }, - "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==", - "license": "MIT", - "engines": { - "node": ">=12.16" - } + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "license": "MIT" }, - "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==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.4.0" - } + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "license": "MIT" }, - "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==", + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@testing-library/dom": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", - "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", + "node_modules/@tufjs/models": { + "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": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.3.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.5" }, "engines": { - "node": ">=18" + "node": "^18.17.0 || >=20.5.0" } }, - "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==", + "node_modules/@tufjs/models/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": "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/@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/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", "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" + "tslib": "^2.4.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/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "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, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "devOptional": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/@testing-library/jest-dom": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.5.0.tgz", - "integrity": "sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==", - "dev": true, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "devOptional": true, "license": "MIT", "dependencies": { - "@adobe/css-tools": "^4.4.0", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.6.3", - "lodash": "^4.17.21", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=14", - "npm": ">=6", - "yarn": ">=1" + "@babel/types": "^7.0.0" } }, - "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, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/@testing-library/jest-dom/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "devOptional": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" + "@babel/types": "^7.20.7" } }, - "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", - "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "node_modules/@types/big.js": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/@types/big.js/-/big.js-6.2.2.tgz", + "integrity": "sha512-e2cOW9YlVzFY2iScnGBBkplKsrn2CsObHQ2Hiw4V1sSyiGbgWL8IyqE3zFi1Pt5o1pdAtYkDAIsF3KKUPjdzaA==", "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, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@types/connect": "*", + "@types/node": "*" } }, - "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, + "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": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "undici-types": "~6.20.0" } }, - "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", - "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12", - "npm": ">=6" - }, - "peerDependencies": { - "@testing-library/dom": ">=7.21.4" - } + "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/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "devOptional": true, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@trivago/prettier-plugin-sort-imports": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz", - "integrity": "sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==", - "dev": true, - "license": "Apache-2.0", "dependencies": { - "@babel/generator": "7.17.7", - "@babel/parser": "^7.20.5", - "@babel/traverse": "7.23.2", - "@babel/types": "7.17.0", - "javascript-natural-sort": "0.7.1", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@vue/compiler-sfc": "3.x", - "prettier": "2.x - 3.x" - }, - "peerDependenciesMeta": { - "@vue/compiler-sfc": { - "optional": true - } + "@types/node": "*" } }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", - "dev": true, + "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": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" + "undici-types": "~6.20.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", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "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", + "integrity": "sha512-8qL93MF05/xrzFm/LSPtzNEOE1eQF3VwGHAcQEylgp5hDSTe41jtFwbSYAPfyYcVa28y1vYSjIt0c1fLLUiC/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/color": { + "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": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" + "@types/color-convert": "*" } }, - "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==", + "node_modules/@types/color-convert": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.4.tgz", + "integrity": "sha512-Ub1MmDdyZ7mX//g25uBAoH/mWGd9swVbt8BseymnaE18SU4po/PjmCrHxqIIRjBo3hV/vh1KGr0eMxUhp+t+dQ==", "dev": true, "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" + "@types/color-name": "^1.1.0" } }, - "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==", + "node_modules/@types/color-name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.5.tgz", + "integrity": "sha512-j2K5UJqGTxeesj6oQuGpMgifpT5k9HprgQd8D1Y0lOFqKHl3PJu5GMeS4Y5EgjS55AE6OQxf8mPED9uaGbf4Cg==", "dev": true, + "license": "MIT" + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@types/node": "*" } }, - "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==", - "dev": true, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" } }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, + "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": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "undici-types": "~6.20.0" } }, - "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", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.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/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10.13.0" + "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/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "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/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "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", + "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/d3-time": "*" + } }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "license": "MIT" + "node_modules/@types/d3-scale-chromatic": { + "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/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "license": "MIT" + "node_modules/@types/d3-time": { + "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 }, - "node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", - "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", - "dev": true, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "license": "MIT", - "engines": { - "node": "^16.14.0 || >=18.0.0" + "optional": true, + "dependencies": { + "@types/ms": "*" } }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models/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/@tybys/wasm-util": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", - "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", - "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "devOptional": true, + "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": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "devOptional": true, + "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": { - "@babel/types": "^7.20.7" + "@types/eslint": "*", + "@types/estree": "*" } }, - "node_modules/@types/big.js": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@types/big.js/-/big.js-6.2.2.tgz", - "integrity": "sha512-e2cOW9YlVzFY2iScnGBBkplKsrn2CsObHQ2Hiw4V1sSyiGbgWL8IyqE3zFi1Pt5o1pdAtYkDAIsF3KKUPjdzaA==", - "dev": true, + "node_modules/@types/estree": { + "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/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "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==", "license": "MIT", "dependencies": { - "@types/node": "*" + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" } }, - "node_modules/@types/cache-manager": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/cache-manager/-/cache-manager-4.0.6.tgz", - "integrity": "sha512-8qL93MF05/xrzFm/LSPtzNEOE1eQF3VwGHAcQEylgp5hDSTe41jtFwbSYAPfyYcVa28y1vYSjIt0c1fLLUiC/Q==", - "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==", + "node_modules/@types/express-serve-static-core": { + "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/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/color-convert": "*" + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" } }, - "node_modules/@types/color-convert": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.4.tgz", - "integrity": "sha512-Ub1MmDdyZ7mX//g25uBAoH/mWGd9swVbt8BseymnaE18SU4po/PjmCrHxqIIRjBo3hV/vh1KGr0eMxUhp+t+dQ==", - "dev": true, + "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": { - "@types/color-name": "^1.1.0" + "undici-types": "~6.20.0" } }, - "node_modules/@types/color-name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.5.tgz", - "integrity": "sha512-j2K5UJqGTxeesj6oQuGpMgifpT5k9HprgQd8D1Y0lOFqKHl3PJu5GMeS4Y5EgjS55AE6OQxf8mPED9uaGbf4Cg==", - "dev": true, + "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/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/d3-scale": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", - "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", + "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", - "optional": true, "dependencies": { - "@types/d3-time": "*" + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" } }, - "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==", - "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==", - "license": "MIT", - "optional": true - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "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", - "optional": true, "dependencies": { - "@types/ms": "*" + "undici-types": "~6.20.0" } }, - "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==", + "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/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/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==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, "node_modules/@types/google-spreadsheet": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/@types/google-spreadsheet/-/google-spreadsheet-3.1.5.tgz", @@ -10979,16 +10899,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", @@ -10996,12 +10923,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", @@ -11017,6 +10938,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", @@ -11055,52 +10991,34 @@ "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, + "node_modules/@types/jsdom": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", + "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "devOptional": true, "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" } }, - "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, + "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": { - "@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" + "undici-types": "~6.20.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", - "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "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", - "dependencies": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" - } + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", @@ -11116,18 +11034,9 @@ "license": "MIT" }, "node_modules/@types/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-drE6uz7QBKq1fYqqoFKTDRdFCPHd5TCub75BM+D+cMx7NU9hUz7SESLfC2fSCXVFMO5Yj8sOWHuGqPgjc+fz0Q==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "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==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.5.tgz", + "integrity": "sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -11140,6 +11049,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/luxon": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.4.2.tgz", + "integrity": "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==", + "license": "MIT" + }, "node_modules/@types/mdast": { "version": "3.0.15", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", @@ -11170,15 +11085,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", @@ -11197,6 +11103,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", @@ -11207,6 +11128,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", @@ -11217,6 +11155,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", @@ -11225,9 +11180,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": { @@ -11246,6 +11201,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", @@ -11258,17 +11226,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": { @@ -11278,9 +11272,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": { @@ -11289,22 +11283,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": "*" - } - }, - "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": "*" + "peerDependencies": { + "@types/react": "^18.0.0" } }, "node_modules/@types/retry": { @@ -11330,6 +11315,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", @@ -11339,6 +11339,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", @@ -11350,6 +11362,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", @@ -11358,9 +11385,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" }, @@ -11373,6 +11400,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", @@ -11390,8 +11432,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", @@ -11413,21 +11455,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", @@ -11446,136 +11497,72 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.20.0.tgz", + "integrity": "sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/type-utils": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/type-utils": "8.20.0", + "@typescript-eslint/utils": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "graphemer": "^1.4.0", - "ignore": "^5.2.4", + "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "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", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" + "ts-api-utils": "^2.0.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.20.0.tgz", + "integrity": "sha512-gKXG7A5HMyjDIedBi6bUrDcun8GIjnI8qOwVLiY3rx6T/sHP/19XLJOnIq/FgQvWLHja5JN/LSE7eklNBr612g==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/typescript-estree": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "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", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.20.0.tgz", + "integrity": "sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -11583,16 +11570,16 @@ } }, "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.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.20.0.tgz", + "integrity": "sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.10.0", - "@typescript-eslint/utils": "8.10.0", + "@typescript-eslint/typescript-estree": "8.20.0", + "@typescript-eslint/utils": "8.20.0", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11601,16 +11588,15 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "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/types": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.10.0.tgz", - "integrity": "sha512-k/E48uzsfJCRRbGLapdZgrX52csmWJ2rcowwPvOZ8lwPUv3xW6CcFeJAXgx4uJm+Ge4+a4tFOkdYvSpxhRhg1w==", + "node_modules/@typescript-eslint/types": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.20.0.tgz", + "integrity": "sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==", "dev": true, "license": "MIT", "engines": { @@ -11621,21 +11607,21 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "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==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.20.0.tgz", + "integrity": "sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==", "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.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11644,31 +11630,11 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.10.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", @@ -11684,192 +11650,61 @@ "url": "https://github.com/sponsors/isaacs" } }, - "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==", + "node_modules/@typescript-eslint/utils": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.20.0.tgz", + "integrity": "sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==", "dev": true, "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/typescript-estree": "8.20.0" + }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "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/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.20.0.tgz", + "integrity": "sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "@typescript-eslint/types": "8.20.0", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "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==", - "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" - }, - "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" - } - }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.10.0", - "@typescript-eslint/visitor-keys": "8.10.0" - }, - "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/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==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "8.10.0", - "@typescript-eslint/visitor-keys": "8.10.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, - "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==", + "node_modules/@typescript-eslint/visitor-keys/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": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.10.0", - "eslint-visitor-keys": "^3.4.3" - }, + "license": "Apache-2.0", "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/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/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/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==", - "dev": true, - "license": "ISC" - }, "node_modules/@vitejs/plugin-basic-ssl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", @@ -11928,9 +11763,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": { @@ -11954,14 +11789,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": { @@ -11969,148 +11804,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" } }, @@ -12134,17 +11969,16 @@ "license": "BSD-2-Clause" }, "node_modules/@yarnpkg/parsers": { - "version": "3.0.0-rc.46", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz", - "integrity": "sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.2.tgz", + "integrity": "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "js-yaml": "^3.10.0", "tslib": "^2.4.0" }, "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" } }, "node_modules/@zkochan/js-yaml": { @@ -12164,7 +11998,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" }, @@ -12204,9 +12037,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" @@ -12226,11 +12059,12 @@ "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==", - "license": "MIT", + "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==", + "deprecated": "package has been renamed to acorn-import-attributes", + "dev": true, "peerDependencies": { "acorn": "^8" } @@ -12280,75 +12114,24 @@ "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", "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.0" } }, "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", @@ -12366,9 +12149,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" @@ -12406,15 +12189,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", @@ -12439,18 +12213,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", @@ -12473,32 +12235,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_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": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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", @@ -12584,24 +12334,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" @@ -12645,13 +12395,15 @@ "license": "MIT" }, "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "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": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/array.prototype.findlastindex": { @@ -12676,16 +12428,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" @@ -12695,16 +12447,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" @@ -12714,20 +12466,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" @@ -12909,11 +12660,10 @@ "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": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -12921,13 +12671,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": { @@ -12952,66 +12702,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", @@ -13025,119 +12719,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", @@ -13213,26 +12794,14 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, "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": { @@ -13262,12 +12831,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" @@ -13331,6 +12900,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": { @@ -13375,7 +12945,6 @@ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "5.1.2" }, @@ -13387,8 +12956,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/batch": { "version": "0.6.1", @@ -13406,12 +12974,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", @@ -13436,22 +13013,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", @@ -13484,9 +13045,9 @@ } }, "node_modules/big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.2.tgz", + "integrity": "sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==", "license": "MIT", "engines": { "node": "*" @@ -13543,9 +13104,9 @@ "license": "MIT" }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "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", @@ -13556,7 +13117,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -13575,6 +13136,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", @@ -13582,9 +13155,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", @@ -13633,6 +13206,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" @@ -13657,9 +13231,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", @@ -13676,10 +13250,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" @@ -13716,7 +13290,6 @@ "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", "dev": true, - "license": "(MIT OR Apache-2.0)", "bin": { "btoa": "bin/btoa.js" }, @@ -13781,16 +13354,16 @@ } }, "node_modules/bull": { - "version": "4.16.2", - "resolved": "https://registry.npmjs.org/bull/-/bull-4.16.2.tgz", - "integrity": "sha512-VCy33UdPGiIoZHDTrslGXKXWxcIUHNH5Z82pihr8HicbIfAH4SHug1HxlwKEbibVv85hq8rJ9tKAW/cuxv2T0A==", + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/bull/-/bull-4.16.4.tgz", + "integrity": "sha512-CF+nGsJyfsCC9MJL8hFxqXzbwq+jGBXhaz1j15G+5N/XtKIPFUUy5O1mfWWKbKunfuH/x+UV4NYRQDHSkjCOgA==", "license": "MIT", "dependencies": { "cron-parser": "^4.2.1", "get-port": "^5.1.1", "ioredis": "^5.3.2", "lodash": "^4.17.21", - "msgpackr": "^1.10.1", + "msgpackr": "^1.11.2", "semver": "^7.5.2", "uuid": "^8.3.0" }, @@ -13843,13 +13416,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", @@ -13857,13 +13430,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": { @@ -13887,13 +13460,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", @@ -13911,16 +13477,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" @@ -13931,7 +13494,6 @@ "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", "dev": true, - "license": "MIT", "dependencies": { "mime-types": "^2.1.18", "ylru": "^1.2.0" @@ -13959,7 +13521,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", @@ -13975,60 +13536,56 @@ "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", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "node_modules/cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">=10.6.0" + "node": ">=6" } }, - "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==", + "node_modules/call-bind": { + "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": { - "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" + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cachedir": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", - "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", - "dev": true, + "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": ">=6" + "node": ">= 0.4" } }, - "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==", + "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": { - "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" + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -14058,13 +13615,16 @@ } }, "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": { @@ -14072,7 +13632,6 @@ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "dev": true, - "license": "MIT", "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", @@ -14081,9 +13640,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", @@ -14118,9 +13677,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": { @@ -14135,17 +13694,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": { @@ -14177,15 +13738,15 @@ "license": "MIT" }, "node_modules/chart.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.2.0.tgz", - "integrity": "sha512-wbtcV+QKeH0F7gQZaCJEIpsNriFheacouJQTVIjITi3eQA8bTlIBoknz0+dgV79aeKLNMAX+nDslIVE/nJ3rzA==", + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.7.tgz", + "integrity": "sha512-pwkcKfdzTMAU/+jNosKhNL2bHtJc/sSmYgVbuGTEDhzkrhmyihmP7vUc/5ZK9WopidMDHNe3Wm7jOd/WhuHWuw==", "license": "MIT", "dependencies": { "@kurkle/color": "^0.3.0" }, "engines": { - "pnpm": "^7.0.0" + "pnpm": ">=8" } }, "node_modules/chartjs-adapter-date-fns": { @@ -14199,21 +13760,21 @@ } }, "node_modules/chartjs-chart-treemap": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chartjs-chart-treemap/-/chartjs-chart-treemap-2.3.1.tgz", - "integrity": "sha512-GW+iODLICIJhNZtHbTtaOjCwRIxmXcquXRKDFMsrkXyqyDeSN1aiVfzNNj6Xjy55soopqRA+YfHqjT2S2zF7lQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/chartjs-chart-treemap/-/chartjs-chart-treemap-3.1.0.tgz", + "integrity": "sha512-0LJxj4J9sCTHmrXCFlqtoBKMJDcS7VzFeRgNBRZRwU1QSpCXJKTNk5TysPEs5/YW0XYvZoN8u44RqqLf0pAzQw==", "license": "MIT", "peerDependencies": { "chart.js": ">=3.0.0" } }, "node_modules/chartjs-plugin-annotation": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/chartjs-plugin-annotation/-/chartjs-plugin-annotation-2.1.2.tgz", - "integrity": "sha512-kmEp2WtpogwnKKnDPO3iO3mVwvVGtmG5BkZVtAEZm5YzJ9CYxojjYEgk7OTrFbJ5vU098b84UeJRe8kRfNcq5g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/chartjs-plugin-annotation/-/chartjs-plugin-annotation-3.1.0.tgz", + "integrity": "sha512-EkAed6/ycXD/7n0ShrlT1T2Hm3acnbFhgkIEJLa0X+M6S16x0zwj1Fv4suv/2bwayCT3jGPdAtI9uLcAMToaQQ==", "license": "MIT", "peerDependencies": { - "chart.js": ">=3.7.0" + "chart.js": ">=4.0.0" } }, "node_modules/chartjs-plugin-datalabels": { @@ -14246,21 +13807,25 @@ } }, "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=18.17" }, "funding": { "url": "https://github.com/cheeriojs/cheerio?sponsor=1" @@ -14283,50 +13848,38 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/cheerio/node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "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": { @@ -14339,11 +13892,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", @@ -14382,43 +13944,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" @@ -14444,68 +13985,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_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" + "node": ">=12" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, + "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": { @@ -14543,25 +14085,10 @@ "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", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -14598,16 +14125,16 @@ "node": ">=6" } }, - "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==", + "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": { - "mimic-response": "^1.0.0" + "isobject": "^3.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=0.10.0" } }, "node_modules/cluster-key-slot": { @@ -14701,16 +14228,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", @@ -14800,8 +14317,7 @@ "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/colorette": { "version": "2.0.20", @@ -14843,9 +14359,9 @@ "license": "MIT" }, "node_modules/comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "license": "MIT", "dependencies": { @@ -14875,13 +14391,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", @@ -14894,33 +14403,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", @@ -14936,11 +14445,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", @@ -15051,15 +14563,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" @@ -15076,7 +14588,6 @@ "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", "dev": true, - "license": "MIT", "dependencies": { "depd": "~2.0.0", "keygrip": "~1.1.0" @@ -15098,20 +14609,20 @@ } }, "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", + "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, "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", @@ -15121,57 +14632,13 @@ "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==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "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==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "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", @@ -15202,7 +14669,6 @@ "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4.0" } @@ -15218,26 +14684,26 @@ } }, "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": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/countries-and-timezones/-/countries-and-timezones-3.4.1.tgz", - "integrity": "sha512-INeHGCony4XUUR8iGL/lmt9s1Oi+n+gFHeJAMfbV5hJfYeDOB8JG1oxz5xFQu5oBZoRCJe/87k1Vzue9DoIauA==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/countries-and-timezones/-/countries-and-timezones-3.7.2.tgz", + "integrity": "sha512-BHAMt4pKb3U3r/mRfiIlVnDhRd8m6VC20gwCWtpZGZkSsjZmnMDKFnnjWYGWhBmypQAqcQILFJwmEhIgWGVTmw==", "license": "MIT", "engines": { "node": ">=8.x", @@ -15278,196 +14744,91 @@ "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, + "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/cron": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/cron/-/cron-3.2.1.tgz", + "integrity": "sha512-w2n5l49GMmmkBFEsH9FIDhjZ1n1QgTMOCMGuQtOXs5veNiosZmso6bQGuqOJSYAXXrG84WQFVneNk+Yt0Ua9iw==", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "@types/luxon": "~3.4.0", + "luxon": "~3.5.0" } }, - "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, + "node_modules/cron-parser": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz", + "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "luxon": "^3.2.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=12.0.0" } }, - "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, + "node_modules/cross-fetch": { + "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", - "engines": { - "node": ">=8" + "dependencies": { + "node-fetch": "^2.7.0" } }, - "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==", + "node_modules/cross-spawn": { + "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": { - "has-flag": "^4.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "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": ">= 8" } }, - "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", + "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": { - "color-convert": "^2.0.1" + "isexe": "^2.0.0" }, - "engines": { - "node": ">=8" + "bin": { + "node-which": "bin/node-which" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">= 8" } }, - "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" - }, + "node_modules/css-declaration-sorter": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "dev": true, "engines": { - "node": ">=10" + "node": "^14 || ^16 || >=18" }, - "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", - "integrity": "sha512-Cx77ic1TyIAtUggr0oAhtS8MLzPBUqGNIvdDM7jE3oFIxfe8LXWI9q3iQN/H2CebAiMir53LQKWOhEKnzkJTAQ==", - "license": "MIT", - "dependencies": { - "luxon": "^3.2.1" - } - }, - "node_modules/cron-parser": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz", - "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==", - "license": "MIT", - "dependencies": { - "luxon": "^3.2.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "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", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss": "^8.0.9" + "peerDependencies": { + "postcss": "^8.0.9" } }, "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", @@ -15480,7 +14841,7 @@ "semver": "^7.5.4" }, "engines": { - "node": ">= 18.12.0" + "node": ">= 12.13.0" }, "funding": { "type": "opencollective", @@ -15488,7 +14849,7 @@ }, "peerDependencies": { "@rspack/core": "0.x || 1.x", - "webpack": "^5.27.0" + "webpack": "^5.0.0" }, "peerDependenciesMeta": { "@rspack/core": { @@ -15504,7 +14865,6 @@ "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "cssnano": "^6.0.1", @@ -15576,7 +14936,6 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, - "license": "MIT", "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -15631,7 +14990,6 @@ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", "dev": true, - "license": "MIT", "dependencies": { "cssnano-preset-default": "^6.1.2", "lilconfig": "^3.1.1" @@ -15652,7 +15010,6 @@ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", "dev": true, - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "css-declaration-sorter": "^7.2.0", @@ -15686,3467 +15043,2182 @@ "postcss-unique-selectors": "^6.0.4" }, "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-utils": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/cypress": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-6.2.1.tgz", - "integrity": "sha512-OYkSgzA4J4Q7eMjZvNf5qWpBLR4RXrkqjL3UZ1UzGGLAskO0nFTi/RomNTG6TKvL3Zp4tw4zFY1gp5MtmkCZrA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@cypress/listr-verbose-renderer": "^0.4.1", - "@cypress/request": "^2.88.5", - "@cypress/xvfb": "^1.2.4", - "@types/sinonjs__fake-timers": "^6.0.1", - "@types/sizzle": "^2.3.2", - "arch": "^2.1.2", - "blob-util": "2.0.2", - "bluebird": "^3.7.2", - "cachedir": "^2.3.0", - "chalk": "^4.1.0", - "check-more-types": "^2.24.0", - "cli-table3": "~0.6.0", - "commander": "^5.1.0", - "common-tags": "^1.8.0", - "debug": "^4.1.1", - "eventemitter2": "^6.4.2", - "execa": "^4.0.2", - "executable": "^4.1.1", - "extract-zip": "^1.7.0", - "fs-extra": "^9.0.1", - "getos": "^3.2.1", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.2", - "lazy-ass": "^1.6.0", - "listr": "^0.14.3", - "lodash": "^4.17.19", - "log-symbols": "^4.0.0", - "minimist": "^1.2.5", - "moment": "^2.27.0", - "ospath": "^1.2.2", - "pretty-bytes": "^5.4.1", - "ramda": "~0.26.1", - "request-progress": "^3.0.0", - "supports-color": "^7.2.0", - "tmp": "~0.2.1", - "untildify": "^4.0.0", - "url": "^0.11.0", - "yauzl": "^2.10.0" - }, - "bin": { - "cypress": "bin/cypress" - }, - "engines": { - "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", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true, - "license": "MIT", - "engines": { - "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==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/cytoscape-cose-bilkent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", - "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "cose-base": "^1.0.0" - }, - "peerDependencies": { - "cytoscape": "^3.2.0" - } - }, - "node_modules/d3": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", - "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-array": "3", - "d3-axis": "3", - "d3-brush": "3", - "d3-chord": "3", - "d3-color": "3", - "d3-contour": "4", - "d3-delaunay": "6", - "d3-dispatch": "3", - "d3-drag": "3", - "d3-dsv": "3", - "d3-ease": "3", - "d3-fetch": "3", - "d3-force": "3", - "d3-format": "3", - "d3-geo": "3", - "d3-hierarchy": "3", - "d3-interpolate": "3", - "d3-path": "3", - "d3-polygon": "3", - "d3-quadtree": "3", - "d3-random": "3", - "d3-scale": "4", - "d3-scale-chromatic": "3", - "d3-selection": "3", - "d3-shape": "3", - "d3-time": "3", - "d3-time-format": "4", - "d3-timer": "3", - "d3-transition": "3", - "d3-zoom": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", - "optional": true, - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-axis": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", - "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-brush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", - "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "3", - "d3-transition": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-chord": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", - "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-path": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-contour": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", - "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-array": "^3.2.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-delaunay": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", - "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", - "license": "ISC", - "optional": true, - "dependencies": { - "delaunator": "5" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "license": "ISC", - "optional": true, - "dependencies": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, - "bin": { - "csv2json": "bin/dsv2json.js", - "csv2tsv": "bin/dsv2dsv.js", - "dsv2dsv": "bin/dsv2dsv.js", - "dsv2json": "bin/dsv2json.js", - "json2csv": "bin/json2dsv.js", - "json2dsv": "bin/json2dsv.js", - "json2tsv": "bin/json2dsv.js", - "tsv2csv": "bin/dsv2dsv.js", - "tsv2json": "bin/dsv2json.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "optional": true, - "engines": { - "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", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", - "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-dsv": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-geo": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", - "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-array": "2.5.0 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-polygon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", - "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-random": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", - "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-sankey": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", - "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "d3-array": "1 - 2", - "d3-shape": "^1.2.0" - } - }, - "node_modules/d3-sankey/node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "internmap": "^1.0.0" - } - }, - "node_modules/d3-sankey/node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/d3-sankey/node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "d3-path": "1" - } - }, - "node_modules/d3-sankey/node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", - "license": "ISC", - "optional": true - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "d3-selection": "2 - 3" - } - }, - "node_modules/d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "license": "ISC", - "optional": true, - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/dagre-d3-es": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz", - "integrity": "sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==", - "license": "MIT", - "optional": true, - "dependencies": { - "d3": "^7.8.2", - "lodash-es": "^4.17.21" - } - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/date-fns": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", - "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, - "node_modules/date-format": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", - "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", - "license": "MIT", - "optional": true - }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "dev": true, - "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==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debug/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/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "license": "MIT", - "optional": true, - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "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/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==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-eql": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-browser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", - "license": "MIT", - "dependencies": { - "bundle-name": "^4.1.0", - "default-browser-id": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser-id": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "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", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "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", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delaunator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", - "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", - "license": "ISC", - "optional": true, - "dependencies": { - "robust-predicates": "^3.0.2" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", - "license": "MIT", - "optional": true - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ==", - "license": "BSD-2-Clause" - }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.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==", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "license": "MIT" + "node_modules/cssnano-utils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } }, - "node_modules/detect-port": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", - "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dev": true, - "license": "MIT", "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" + "css-tree": "~2.2.0" }, "engines": { - "node": ">= 4.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "license": "BSD-3-Clause", + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, "engines": { - "node": ">=0.3.1" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", "devOptional": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } + "license": "MIT" }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "devOptional": true, "license": "MIT", "dependencies": { - "path-type": "^4.0.0" + "cssom": "~0.3.6" }, "engines": { "node": ">=8" } }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cypress": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-6.2.1.tgz", + "integrity": "sha512-OYkSgzA4J4Q7eMjZvNf5qWpBLR4RXrkqjL3UZ1UzGGLAskO0nFTi/RomNTG6TKvL3Zp4tw4zFY1gp5MtmkCZrA==", + "dev": true, + "hasInstallScript": true, "license": "MIT", "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" + "@cypress/listr-verbose-renderer": "^0.4.1", + "@cypress/request": "^2.88.5", + "@cypress/xvfb": "^1.2.4", + "@types/sinonjs__fake-timers": "^6.0.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.1.2", + "blob-util": "2.0.2", + "bluebird": "^3.7.2", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-table3": "~0.6.0", + "commander": "^5.1.0", + "common-tags": "^1.8.0", + "debug": "^4.1.1", + "eventemitter2": "^6.4.2", + "execa": "^4.0.2", + "executable": "^4.1.1", + "extract-zip": "^1.7.0", + "fs-extra": "^9.0.1", + "getos": "^3.2.1", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.2", + "lazy-ass": "^1.6.0", + "listr": "^0.14.3", + "lodash": "^4.17.19", + "log-symbols": "^4.0.0", + "minimist": "^1.2.5", + "moment": "^2.27.0", + "ospath": "^1.2.2", + "pretty-bytes": "^5.4.1", + "ramda": "~0.26.1", + "request-progress": "^3.0.0", + "supports-color": "^7.2.0", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "url": "^0.11.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" }, "engines": { - "node": ">=6" + "node": ">=10.0.0" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/cypress/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, + "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">= 6" } }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", - "dev": true, - "license": "MIT" - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "devOptional": true, + "node_modules/cytoscape": { + "version": "3.30.4", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.4.tgz", + "integrity": "sha512-OxtlZwQl1WbwMmLiyPSEBuzeTIQnwZhJYYWFzZ2PhEHVFwpeaqNIkUzSiso00D98qk60l8Gwon2RP304d3BJ1A==", "license": "MIT", - "dependencies": { - "utila": "~0.4" + "optional": true, + "engines": { + "node": ">=0.10" } }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "node_modules/cytoscape-cose-bilkent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", + "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", "license": "MIT", + "optional": true, "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" + "cose-base": "^1.0.0" }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "peerDependencies": { + "cytoscape": "^3.2.0" } }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domexception": { - "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", + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", + "optional": true, "dependencies": { - "webidl-conversions": "^7.0.0" + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" }, "engines": { "node": ">=12" } }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "license": "BSD-2-Clause", + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "optional": true, "dependencies": { - "domelementtype": "^2.3.0" + "internmap": "1 - 2" }, "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "node": ">=12" } }, - "node_modules/dompurify": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz", - "integrity": "sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==", - "license": "(MPL-2.0 OR Apache-2.0)", - "optional": true + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", + "optional": true, + "engines": { + "node": ">=12" + } }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "license": "BSD-2-Clause", + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", + "optional": true, "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "engines": { + "node": ">=12" } }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "devOptional": true, - "license": "MIT", + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", + "optional": true, "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "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", + "d3-path": "1 - 3" + }, "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" } }, - "node_modules/dotenv-expand": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", - "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", - "license": "BSD-2-Clause", + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "optional": true, "engines": { "node": ">=12" } }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true, - "license": "MIT" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "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", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "license": "Apache-2.0", + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", + "optional": true, "dependencies": { - "safe-buffer": "^5.0.1" + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "license": "Apache-2.0", + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", + "optional": true, "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" + "delaunator": "5" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "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==", - "license": "ISC" - }, - "node_modules/elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==", - "dev": true, - "license": "MIT", + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "optional": true, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/elkjs": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.9.3.tgz", - "integrity": "sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ==", - "license": "EPL-2.0", - "optional": true - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "devOptional": true, - "license": "MIT", + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "optional": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/emoji-toolkit": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-toolkit/-/emoji-toolkit-8.0.0.tgz", - "integrity": "sha512-Vz8YIqQJsQ+QZ4yuKMMzliXceayqfWbNjb6bST+vm77QAhU2is3I+/PRxrNknW+q1bvHHMgjLCQXxzINWLVapg==", - "license": "MIT", - "optional": true - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "license": "MIT", + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "optional": true, + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, "engines": { - "node": ">= 4" + "node": ">=12" } }, - "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==", + "node_modules/d3-dsv/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "license": "MIT", + "optional": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "optional": true, "engines": { - "node": ">= 0.8" + "node": ">=12" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "license": "MIT", + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", "optional": true, "dependencies": { - "iconv-lite": "^0.6.2" + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" } }, - "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", + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", "optional": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/end-of-stream": { - "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==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", + "optional": true, + "engines": { + "node": ">=12" } }, - "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==", - "license": "MIT", + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "optional": true, "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "d3-array": "2.5.0 - 3" }, "engines": { - "node": ">=10.13.0" + "node": ">=12" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "license": "MIT", + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "optional": true, "dependencies": { - "ansi-colors": "^4.1.1" + "d3-color": "1 - 3" }, "engines": { - "node": ">=8.6" + "node": ">=12" } }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "optional": true, "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node": ">=12" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "license": "MIT", + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", + "optional": true, "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/envalid": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/envalid/-/envalid-7.3.1.tgz", - "integrity": "sha512-KL1YRwn8WcoF/Ty7t+yLLtZol01xr9ZJMTjzoGRM8NaSU+nQQjSWOQKKJhJP2P57bpdakJ9jbxqQX4fGTOicZg==", - "license": "MIT", - "dependencies": { - "tslib": "2.3.1" - }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "optional": true, "engines": { - "node": ">=8.12" + "node": ">=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==", - "license": "0BSD" - }, - "node_modules/environment": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", - "license": "MIT", + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "optional": true, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true, - "license": "MIT" + "node_modules/d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + } }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "license": "MIT", + "node_modules/d3-sankey/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "license": "BSD-3-Clause", "optional": true, "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" + "internmap": "^1.0.0" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", + "node_modules/d3-sankey/node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/d3-sankey/node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "license": "BSD-3-Clause", + "optional": true, "dependencies": { - "is-arrayish": "^0.2.1" + "d3-path": "1" } }, - "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==", - "dev": true, - "license": "MIT", + "node_modules/d3-sankey/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "license": "ISC", + "optional": true + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "optional": true, "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "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", - "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", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "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", - "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", - "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" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "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==", - "license": "MIT", + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "optional": true, "dependencies": { - "get-intrinsic": "^1.2.4" + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" }, "engines": { - "node": ">= 0.4" + "node": ">=12" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "optional": true, "engines": { - "node": ">= 0.4" + "node": ">=12" } }, - "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==", - "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", + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "optional": true, "dependencies": { - "es-errors": "^1.3.0" + "d3-path": "^3.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=12" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dev": true, - "license": "MIT", + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "optional": true, "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "d3-array": "2 - 3" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" + "node": ">=12" } }, - "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==", - "dev": true, - "license": "MIT", + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "optional": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "d3-time": "1 - 3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/esbuild": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", - "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "optional": true, "engines": { - "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" + "node": ">=12" } }, - "node_modules/esbuild-register": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz", - "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", - "dev": true, - "license": "MIT", + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "optional": true, "dependencies": { - "debug": "^4.3.4" + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" }, "peerDependencies": { - "esbuild": ">=0.12 <1" + "d3-selection": "2 - 3" } }, - "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==", - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "optional": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" }, "engines": { - "node": ">=18" + "node": ">=12" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "node_modules/dagre-d3-es": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz", + "integrity": "sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==", "license": "MIT", - "engines": { - "node": ">=6" + "optional": true, + "dependencies": { + "d3": "^7.8.2", + "lodash-es": "^4.17.21" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, "engines": { - "node": ">=0.8.0" + "node": ">=0.10" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", "devOptional": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" }, "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" + "node": ">=12" } }, - "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==", + "node_modules/data-view-buffer": { + "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": "BSD-3-Clause", - "optional": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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.", + "node_modules/data-view-byte-length": { + "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": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" }, - "bin": { - "eslint": "bin/eslint.js" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "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-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "engines": { + "node": ">=4.0" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT", + "optional": true + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "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.1" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/eslint-import-resolver-node/node_modules/ms": { + "node_modules/debug/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/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", - "dev": true, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", "license": "MIT", + "optional": true, "dependencies": { - "debug": "^3.2.7" + "character-entities": "^2.0.0" }, - "engines": { - "node": ">=4" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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": { - "eslint": { + "babel-plugin-macros": { "optional": true } } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">=6" } }, - "node_modules/eslint-module-utils/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, + "node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "license": "MIT" }, - "node_modules/eslint-plugin-cypress": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.1.tgz", - "integrity": "sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==", - "dev": true, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "devOptional": true, "license": "MIT", - "dependencies": { - "globals": "^13.20.0" - }, - "peerDependencies": { - "eslint": ">= 3.2.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-cypress/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-cypress/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", - "dev": true, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "license": "MIT", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" + "clone": "^1.0.2" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/define-data-property": { + "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": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "license": "MIT", - "dependencies": { - "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": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-import/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "license": "MIT", "dependencies": { - "minimist": "^1.2.0" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, - "bin": { - "json5": "lib/cli.js" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", "license": "ISC", + "optional": true, "dependencies": { - "brace-expansion": "^1.1.7" - }, + "robust-predicates": "^3.0.2" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "devOptional": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">=0.4.0" } }, - "node_modules/eslint-plugin-import/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/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "license": "MIT", + "optional": true }, - "node_modules/eslint-plugin-import/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, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "node_modules/delimit-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", + "integrity": "sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ==", + "license": "BSD-2-Clause" + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" } }, - "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, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 0.8" } }, - "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", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "devOptional": true, "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/eslint-plugin-storybook": { - "version": "0.6.15", - "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.15.tgz", - "integrity": "sha512-lAGqVAJGob47Griu29KXYowI4G7KwMoJDOkEip8ujikuDLxU+oWJ1l0WL6F2oDO4QiyUFXvtDkEkISMOPzo+7w==", - "dev": true, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "license": "MIT", - "dependencies": { - "@storybook/csf": "^0.0.1", - "@typescript-eslint/utils": "^5.45.0", - "requireindex": "^1.1.0", - "ts-dedent": "^2.2.0" - }, "engines": { - "node": "12.x || 14.x || >= 16" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "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" }, - "peerDependencies": { - "eslint": ">=6" + "engines": { + "node": ">=0.10" } }, - "node_modules/eslint-plugin-storybook/node_modules/@storybook/csf": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz", - "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==", - "dev": true, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "devOptional": true, "license": "MIT", - "dependencies": { - "lodash": "^4.17.15" + "engines": { + "node": ">=8" } }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" + }, + "node_modules/detect-port": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", + "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "address": "^1.0.1", + "debug": "4" }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "devOptional": true, "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "path-type": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8" } }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@leichtgewicht/ip-codec": "^2.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node": ">=6" } }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "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": "MIT", + "license": "Apache-2.0", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "esutils": "^2.0.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-storybook/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==", + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "devOptional": true, + "license": "MIT", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" + "utila": "~0.4" } }, - "node_modules/eslint-plugin-storybook/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/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "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/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" }, - "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, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "devOptional": true, "license": "MIT", "dependencies": { - "tslib": "^1.8.1" + "webidl-conversions": "^7.0.0" }, "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": ">=12" } }, - "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, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "license": "BSD-2-Clause", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "domelementtype": "^2.3.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">= 4" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node_modules/dompurify": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz", + "integrity": "sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optional": true + }, + "node_modules/domutils": { + "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", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/eslint/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, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "devOptional": 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" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "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/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://dotenvx.com" } }, - "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/dotenv-expand": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", + "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" } }, - "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, + "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">= 0.4" } }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true, + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "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": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "safe-buffer": "^5.0.1" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "type-fest": "^0.20.2" + "jake": "^10.8.5" }, - "engines": { - "node": ">=8" + "bin": { + "ejs": "bin/cli.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=0.10.0" } }, - "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==", + "node_modules/electron-to-chromium": { + "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": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/eslint/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==", - "dev": true, + "node_modules/elkjs": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.9.3.tgz", + "integrity": "sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ==", + "license": "EPL-2.0", + "optional": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "devOptional": true, "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" + "engines": { + "node": ">=12" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/eslint/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, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "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/emoji-toolkit": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-toolkit/-/emoji-toolkit-8.0.0.tgz", + "integrity": "sha512-Vz8YIqQJsQ+QZ4yuKMMzliXceayqfWbNjb6bST+vm77QAhU2is3I+/PRxrNknW+q1bvHHMgjLCQXxzINWLVapg==", + "license": "MIT", + "optional": true }, - "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==", - "dev": true, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 4" } }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "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 OR CC0-1.0)", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "devOptional": true, + "license": "MIT", "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "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", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" }, "engines": { - "node": ">=4" + "node": ">=18" } }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "node_modules/end-of-stream": { + "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": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" + "once": "^1.4.0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "license": "BSD-2-Clause", + "node_modules/enhanced-resolve": { + "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": { - "estraverse": "^5.2.0" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" + "node": ">=10.13.0" } }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", + "ansi-colors": "^4.1.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8.6" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.6" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", - "license": "MIT" - }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "node_modules/envalid": { + "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.6.2" + }, "engines": { - "node": ">=0.8.x" + "node": ">=8.12" } }, - "node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, + "node_modules/envalid/node_modules/tslib": { + "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": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/executable": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", - "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", - "dev": true, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "license": "MIT", + "optional": true, "dependencies": { - "pify": "^2.2.0" + "prr": "~1.0.1" }, - "engines": { - "node": ">=4" + "bin": { + "errno": "cli.js" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "devOptional": true, - "engines": { - "node": ">= 0.8.0" + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" } }, - "node_modules/exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==", + "node_modules/es-abstract": { + "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.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "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.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.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "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.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.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.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, + "node_modules/es-define-property": { + "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": { - "homedir-polyfill": "^1.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "devOptional": true, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "license": "MIT", - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" } }, - "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "dev": true, - "license": "Apache-2.0" + "node_modules/es-module-lexer": { + "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/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "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==", "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" + "es-errors": "^1.3.0" }, "engines": { - "node": ">= 0.10.0" + "node": ">= 0.4" } }, - "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==", + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, "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" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">= 0.4" } }, - "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==", + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "hasown": "^2.0.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/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/es-to-primitive": { + "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": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "node_modules/esbuild": { + "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", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">=4" + "node": ">=18" + }, + "optionalDependencies": { + "@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/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/esbuild-register": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz", + "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", "dev": true, "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.2" + "debug": "^4.3.4" }, - "engines": { - "node": ">=0.6.0" + "peerDependencies": { + "esbuild": ">=0.12 <1" } }, - "node_modules/extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, + "node_modules/esbuild-wasm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.24.0.tgz", + "integrity": "sha512-xhNn5tL1AhkPg4ft59yXT6FkwKXiPSYyz1IeinJHUJpjvOHOIPvdmFQc0pGdjxlKSbzZc2mNmtVOWAR1EF/JAg==", + "license": "MIT", "bin": { - "extract-zip": "cli.js" + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" } }, - "node_modules/extract-zip/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, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/extract-zip/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "license": "MIT" }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "node_modules/escape-string-regexp": { + "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, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" + "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/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "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": ">=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": { - "@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" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" }, "engines": { - "node": ">=8.6.0" + "node": ">= 0.8.0" } }, - "node_modules/fast-glob/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", + "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": { - "is-glob": "^4.0.1" + "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": ">= 6" + "node": ">= 0.8.0" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "license": "MIT" - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "license": "MIT" - }, - "node_modules/fast-text-encoding": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", - "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==", - "license": "Apache-2.0" - }, - "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", - "license": "BSD-3-Clause" - }, - "node_modules/fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "node_modules/eslint": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", + "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "websocket-driver": ">=0.5.1" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.10.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.18.0", + "@eslint/plugin-kit": "^0.2.5", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=0.8.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "devOptional": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/fd-package-json": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fd-package-json/-/fd-package-json-1.2.0.tgz", - "integrity": "sha512-45LSPmWf+gC5tdCQMNH4s9Sr00bIkiD9aN7dc5hqkrEw1geRYyDQS1v1oMHAW3ysfxfndqGsrDREHHjNNbKUfA==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "license": "MIT", "dependencies": { - "walk-up-path": "^3.0.1" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", "dependencies": { - "pend": "~1.2.0" + "ms": "^2.1.1" } }, - "node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "node_modules/eslint-import-resolver-node/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/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, "license": "MIT", "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" + "debug": "^3.2.7" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "ms": "^2.1.1" } }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "node_modules/eslint-module-utils/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": "Apache-2.0", - "dependencies": { - "minimatch": "^5.0.1" - } + "license": "MIT" }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/eslint-plugin-cypress": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-3.2.0.tgz", + "integrity": "sha512-HaxMz6BoU4ay+K4WrG9ZJC1NdX06FqSlAwtRDStjM0ORFT7zCNPNuRJ+kUPc17Rt2AMUBSqeD9L0zTR3uZhPpw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "globals": "^13.20.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "eslint": ">=7" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/eslint-plugin-cypress/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "type-fest": "^0.20.2" }, "engines": { "node": ">=8" - } - }, - "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/finalhandler/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" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "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==", + "node_modules/eslint-plugin-cypress/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-file-up": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-2.0.1.tgz", - "integrity": "sha512-qVdaUhYO39zmh28/JLQM5CoYN9byEOKEH4qfa8K1eNV17W0UUMJ9WgbR/hHFH+t5rcl+6RTb5UC7ck/I+uRkpQ==", + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, "license": "MIT", "dependencies": { - "resolve-dir": "^1.0.1" + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" }, "engines": { - "node": ">=8" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, - "node_modules/find-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-2.0.0.tgz", - "integrity": "sha512-WgZ+nKbELDa6N3i/9nrHeNznm+lY3z4YfhDDWgW+5P0pdmMj26bxaxU11ookgY3NyP9GC7HvZ9etp0jRFqGEeQ==", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", "dependencies": { - "find-file-up": "^2.0.1" - }, - "engines": { - "node": ">=8" + "ms": "^2.1.1" } }, - "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==", + "node_modules/eslint-plugin-import/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" + "minimist": "^1.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "license": "BSD-3-Clause", + "node_modules/eslint-plugin-import/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/eslint-plugin-import/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, + "license": "ISC", "bin": { - "flat": "cli.js" + "semver": "bin/semver.js" } }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "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", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "license": "MIT", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" } }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "node_modules/eslint-plugin-storybook": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.10.2.tgz", + "integrity": "sha512-iOrFJfyLgRLIbWDLbbs3J4yrknvIB+uiZ8KGqGOEXTL7/BGuBMZLiIU9Q4Pm/VYJrHN4JqmMtwCSrAemHL2nFg==", "dev": true, - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], "license": "MIT", + "dependencies": { + "@storybook/csf": "^0.1.11", + "@typescript-eslint/utils": "^8.8.1", + "ts-dedent": "^2.2.0" + }, "engines": { - "node": ">=4.0" + "node": ">= 18" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" + "peerDependencies": { + "eslint": ">=6" } }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "license": "ISC", + "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": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8.0.0" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, - "license": "Apache-2.0", + "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==", + "license": "BSD-2-Clause", "engines": { - "node": "*" + "node": ">=4.0" } }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.13.tgz", - "integrity": "sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "cosmiconfig": "^7.0.1", - "deepmerge": "^4.2.2", - "fs-extra": "^10.0.0", - "memfs": "^3.4.1", - "minimatch": "^3.0.4", - "node-abort-controller": "^3.0.1", - "schema-utils": "^3.1.1", - "semver": "^7.3.5", - "tapable": "^2.2.1" - }, + "license": "Apache-2.0", "engines": { - "node": ">=12.13.0", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "typescript": ">3.6.0", - "vue-template-compiler": "*", - "webpack": "^5.11.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependenciesMeta": { - "vue-template-compiler": { - "optional": true - } + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { + "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", @@ -19163,1947 +17235,1896 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/fork-ts-checker-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==", + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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/eslint/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": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "color-convert": "^2.0.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.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" + "url": "https://opencollective.com/eslint" } }, - "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==", + "node_modules/eslint/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": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://opencollective.com/eslint" } }, - "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==", + "node_modules/eslint/node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "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" + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/fork-ts-checker-webpack-plugin/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==", + "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": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { + "node_modules/eslint/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/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/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": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "p-locate": "^5.0.0" }, "engines": { - "node": "*" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fork-ts-checker-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==", + "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": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "p-limit": "^3.0.2" }, "engines": { - "node": ">= 10.13.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "has-flag": "^4.0.0" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/form-data": { + "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">= 6" + "node": ">=4" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=0.10" } }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "license": "MIT", - "engines": { - "node": "*" + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" + "engines": { + "node": ">=4.0" } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.6" + "node": ">=4.0" } }, - "node_modules/front-matter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", - "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "license": "MIT", "dependencies": { - "js-yaml": "^3.13.1" + "@types/estree": "^1.0.0" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "license": "MIT" - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 0.6" } }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", - "dev": true, - "license": "Unlicense" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "devOptional": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=6" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node_modules/eventemitter2": { + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", + "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", + "license": "MIT" + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.8.x" } }, - "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==", + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "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" + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gaxios": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz", - "integrity": "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==", - "license": "Apache-2.0", "dependencies": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.7" + "pify": "^2.2.0" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "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" - }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "devOptional": true, "engines": { - "node": ">= 6.0.0" + "node": ">= 0.8.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==", + "node_modules/exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==", + "dev": true, "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/gcp-metadata": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", - "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", - "license": "Apache-2.0", + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, "dependencies": { - "gaxios": "^4.0.0", - "json-bigint": "^1.0.0" + "homedir-polyfill": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/generic-pool": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz", - "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==", + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "devOptional": true, "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, "engines": { - "node": ">= 4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/express": { + "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.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.12", + "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": ">=6.9.0" + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" + "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==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/get-east-asian-width": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", - "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "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": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8" } }, - "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==", + "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/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "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.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8.0" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "devOptional": true, + "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": ">=8.0.0" + "node": ">= 0.8" } }, - "node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "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", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=4" } }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "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": { - "pump": "^3.0.0" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "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==", + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "os-tmpdir": "~1.0.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.6.0" } }, - "node_modules/getos": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", - "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "async": "^3.2.0" + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "node_modules/extract-zip/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": { - "assert-plus": "^1.0.0" + "ms": "2.0.0" } }, - "node_modules/github-slugger": { + "node_modules/extract-zip/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "ISC" + "license": "MIT" }, - "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", + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@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": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8.6.0" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/fast-glob/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.3" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10.13.0" + "node": ">= 6" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "license": "BSD-2-Clause" + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" }, - "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/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT" }, - "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/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "license": "MIT" }, - "node_modules/global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ini": "1.3.7" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/fast-text-encoding": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", + "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==", + "license": "Apache-2.0" }, - "node_modules/global-dirs/node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true, - "license": "ISC" + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "license": "BSD-3-Clause" }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "license": "ISC", "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "reusify": "^1.0.4" } }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "license": "MIT", + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "websocket-driver": ">=0.5.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.0" } }, - "node_modules/global-prefix/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "license": "ISC" + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "devOptional": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/fd-package-json": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fd-package-json/-/fd-package-json-1.2.0.tgz", + "integrity": "sha512-45LSPmWf+gC5tdCQMNH4s9Sr00bIkiD9aN7dc5hqkrEw1geRYyDQS1v1oMHAW3ysfxfndqGsrDREHHjNNbKUfA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "walk-up-path": "^3.0.1" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "pend": "~1.2.0" } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "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", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "picomatch": "^3 || ^4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", "dev": true, "license": "MIT", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "delegate": "^3.1.2" + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/google-auth-library": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.6.tgz", - "integrity": "sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==", + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, "license": "Apache-2.0", "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^4.0.0", - "gcp-metadata": "^4.2.0", - "gtoken": "^5.0.4", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" + "minimatch": "^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", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "brace-expansion": "^2.0.1" }, "engines": { "node": ">=10" } }, - "node_modules/google-p12-pem": { - "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", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "license": "MIT", "dependencies": { - "node-forge": "^1.3.1" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/google-spreadsheet": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/google-spreadsheet/-/google-spreadsheet-3.2.0.tgz", - "integrity": "sha512-z7XMaqb+26rdo8p51r5O03u8aPLAPzn5YhOXYJPcf2hdMVr0dUbIARgdkRdmGiBeoV/QoU/7VNhq1MMCLZv3kQ==", - "license": "Unlicense", + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", "dependencies": { - "axios": "^0.21.4", - "google-auth-library": "^6.1.3", - "lodash": "^4.17.21" + "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.0" + "node": ">= 0.8" } }, - "node_modules/google-spreadsheet/node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "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==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.14.0" + "ms": "2.0.0" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "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", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "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": { - "get-intrinsic": "^1.1.3" + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "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": { - "@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" + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" }, "engines": { - "node": ">=10.19.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" + "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/gtoken": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", - "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", + "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": { - "gaxios": "^4.0.0", - "google-p12-pem": "^3.1.3", - "jws": "^4.0.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/gzip-size": { + "node_modules/find-cache-dir/node_modules/p-locate": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dev": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "license": "MIT", "dependencies": { - "duplexer": "^0.1.2" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "license": "MIT" - }, - "node_modules/harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", - "dev": true, - "license": "(Apache-2.0 OR MPL-1.1)" + "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/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, + "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": { - "ansi-regex": "^2.0.0" + "find-up": "^6.3.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/has-ansi/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, + "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": ">=0.10.0" - } - }, - "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==", - "dev": true, - "license": "MIT", + "node": ">=12.20" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "license": "MIT", + "node_modules/find-file-up": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-2.0.1.tgz", + "integrity": "sha512-qVdaUhYO39zmh28/JLQM5CoYN9byEOKEH4qfa8K1eNV17W0UUMJ9WgbR/hHFH+t5rcl+6RTb5UC7ck/I+uRkpQ==", + "dev": true, + "dependencies": { + "resolve-dir": "^1.0.1" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/has-own-prop": { + "node_modules/find-pkg": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", - "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-2.0.0.tgz", + "integrity": "sha512-WgZ+nKbELDa6N3i/9nrHeNznm+lY3z4YfhDDWgW+5P0pdmMj26bxaxU11ookgY3NyP9GC7HvZ9etp0jRFqGEeQ==", "dev": true, - "license": "MIT", + "dependencies": { + "find-file-up": "^2.0.1" + }, "engines": { "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "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": { - "es-define-property": "^1.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "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==", + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=16" } }, - "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==", + "node_modules/flatted": { + "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" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=4.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.3" + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "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", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, + "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": ">= 0.4" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "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==", + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "license": "Apache-2.0", + "engines": { + "node": "*" } }, - "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==", + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.13.tgz", + "integrity": "sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==", "dev": true, - "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0" + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=12.13.0", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "vue-template-compiler": "*", + "webpack": "^5.11.0" + }, + "peerDependenciesMeta": { + "vue-template-compiler": { + "optional": true + } } }, - "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==", + "node_modules/fork-ts-checker-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==", "dev": true, - "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0" + "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": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "devOptional": true, - "license": "MIT", - "bin": { - "he": "bin/he" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/helmet": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-7.0.0.tgz", - "integrity": "sha512-MsIgYmdBh460ZZ8cJC81q4XJknjG567wzEmv46WOBblDb6TUd3z8/GhgmsM9pn8g2B80tAJ4m5/d3Bi1KrSUBQ==", - "license": "MIT", - "engines": { - "node": ">=16.0.0" + "node_modules/fork-ts-checker-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==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" } }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "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": { - "parse-passwd": "^1.0.0" + "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/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==", + "node_modules/fork-ts-checker-webpack-plugin/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==", "dev": true, - "license": "ISC", "dependencies": { - "lru-cache": "^10.0.1" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=12" } }, - "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==", + "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": "ISC" - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" + "node_modules/fork-ts-checker-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==", + "dev": true }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "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, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/hpack.js/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/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", + "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, "dependencies": { - "safe-buffer": "~5.1.0" + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "devOptional": true, - "license": "MIT", + "node_modules/fork-ts-checker-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==", + "dev": true, "dependencies": { - "whatwg-encoding": "^2.0.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, "engines": { - "node": ">=12" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "devOptional": true, "license": "MIT", "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=12" + "node": ">= 6" } }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "devOptional": true, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "license": "MIT", "engines": { - "node": ">= 12" + "node": ">= 0.6" } }, - "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==", - "devOptional": true, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "license": "MIT", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, "engines": { - "node": ">=10.13.0" + "node": "*" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.20.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } + "type": "patreon", + "url": "https://github.com/sponsors/rawify" } }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/http-assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", - "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "node_modules/front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", "dev": true, - "license": "MIT", "dependencies": { - "deep-equal": "~1.0.1", - "http-errors": "~1.8.0" - }, - "engines": { - "node": ">= 0.8" + "js-yaml": "^3.13.1" } }, - "node_modules/http-assert/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=10" } }, - "node_modules/http-assert/node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" + "minipass": "^7.0.3" }, "engines": { - "node": ">= 0.6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/http-assert/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", "dev": true, + "license": "Unlicense" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 0.6" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/http-cache-semantics": { - "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==", - "license": "BSD-2-Clause" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "license": "MIT" + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "node_modules/function.prototype.name": { + "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": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "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.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gaxios": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz", + "integrity": "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==", + "license": "Apache-2.0", "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "abort-controller": "^3.0.0", + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.7" }, "engines": { - "node": ">=8.0.0" + "node": ">=10" } }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "devOptional": true, - "license": "MIT", + "node_modules/gcp-metadata": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", + "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", + "license": "Apache-2.0", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "gaxios": "^4.0.0", + "json-bigint": "^1.0.0" }, "engines": { - "node": ">= 6" + "node": ">=10" } }, - "node_modules/http-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==", - "devOptional": true, + "node_modules/generic-pool": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz", + "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==", "license": "MIT", - "dependencies": { - "debug": "4" - }, "engines": { - "node": ">= 6.0.0" + "node": ">= 4" } }, - "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==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.10", - "debug": "^4.3.4", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.5" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" } }, - "node_modules/http-proxy/node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" - }, - "node_modules/http-server": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", - "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "basic-auth": "^2.0.1", - "chalk": "^4.1.2", - "corser": "^2.0.1", - "he": "^1.2.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy": "^1.18.1", - "mime": "^1.6.0", - "minimist": "^1.2.6", - "opener": "^1.5.1", - "portfinder": "^1.0.28", - "secure-compare": "3.0.1", - "union": "~0.5.0", - "url-join": "^4.0.1" - }, - "bin": { - "http-server": "bin/http-server" - }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", "engines": { - "node": ">=12" + "node": "6.* || 8.* || >= 10.*" } }, - "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, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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, + "node_modules/get-intrinsic": { + "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "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", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/get-stream": { + "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": { - "has-flag": "^4.0.0" + "pump": "^3.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/http-signature": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", - "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "node_modules/get-symbol-description": { + "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": { - "assert-plus": "^1.0.0", - "jsprim": "^2.0.2", - "sshpk": "^1.14.1" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": ">=0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/http-status-codes": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.3.0.tgz", - "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==", + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, "license": "MIT", "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" + "async": "^3.2.0" } }, - "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==", + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 14" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "license": "Apache-2.0", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, "engines": { - "node": ">=8.12.0" + "node": ">=10.13.0" } }, - "node_modules/husky": { - "version": "9.1.6", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.6.tgz", - "integrity": "sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==", + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" + }, + "node_modules/global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", "dev": true, "license": "MIT", - "bin": { - "husky": "bin.js" + "dependencies": { + "ini": "1.3.7" }, "engines": { - "node": ">=18" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/typicode" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hyperdyperid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", - "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", - "license": "MIT", - "engines": { - "node": ">=10.18" - } + "node_modules/global-dirs/node_modules/ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true, + "license": "ISC" }, - "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", + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" }, - "peerDependencies": { - "postcss": "^8.1.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/idb": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", - "license": "ISC" + "node_modules/global-prefix/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true }, - "node_modules/identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "license": "MIT", "dependencies": { - "harmony-reflect": "^1.4.6" + "isexe": "^2.0.0" }, - "engines": { - "node": ">=4" + "bin": { + "which": "bin/which" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "license": "MIT", "engines": { - "node": ">= 4" + "node": ">=4" } }, - "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==", + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "minimatch": "^9.0.0" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", - "license": "MIT", - "optional": true, - "bin": { - "image-size": "bin/image-size.js" + "node": ">= 0.4" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/immutable": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", - "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", - "license": "MIT" - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "license": "MIT", + "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, "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "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": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { + "node_modules/globby/node_modules/slash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "devOptional": true, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", "license": "MIT", - "engines": { - "node": ">=0.8.19" + "optional": true, + "dependencies": { + "delegate": "^3.1.2" } }, - "node_modules/indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", - "dev": true, - "license": "MIT", + "node_modules/google-auth-library": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.6.tgz", + "integrity": "sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==", + "license": "Apache-2.0", + "dependencies": { + "arrify": "^2.0.0", + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "fast-text-encoding": "^1.0.0", + "gaxios": "^4.0.0", + "gcp-metadata": "^4.2.0", + "gtoken": "^5.0.4", + "jws": "^4.0.0", + "lru-cache": "^6.0.0" + }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/inflight": { - "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", + "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": { - "once": "^1.3.0", - "wrappy": "1" + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" + "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/ini": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", - "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", - "dev": true, + "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", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10" } }, - "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==", - "dev": true, + "node_modules/google-p12-pem": { + "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==", "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "node-forge": "^1.3.1" + }, + "bin": { + "gp12-pem": "build/src/bin/gp12-pem.js" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "license": "MIT", + "node_modules/google-spreadsheet": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/google-spreadsheet/-/google-spreadsheet-3.2.0.tgz", + "integrity": "sha512-z7XMaqb+26rdo8p51r5O03u8aPLAPzn5YhOXYJPcf2hdMVr0dUbIARgdkRdmGiBeoV/QoU/7VNhq1MMCLZv3kQ==", + "license": "Unlicense", + "dependencies": { + "axios": "^0.21.4", + "google-auth-library": "^6.1.3", + "lodash": "^4.17.21" + }, "engines": { - "node": ">= 0.10" + "node": ">=0.8.0" } }, - "node_modules/ionicons": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.4.0.tgz", - "integrity": "sha512-ZK94MMqgzMCPPMhmk8Ouu6goyVHFIlw/ACP6oe3FrikcI0N7CX0xcwVaEbUc0G/v3W0shI93vo+9ve/KpvcNhQ==", + "node_modules/google-spreadsheet/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "license": "MIT", "dependencies": { - "@stencil/core": "^4.0.3" + "follow-redirects": "^1.14.0" } }, - "node_modules/ioredis": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.4.1.tgz", - "integrity": "sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==", + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "license": "MIT", - "dependencies": { - "@ioredis/commands": "^1.1.1", - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.4", - "denque": "^2.1.0", - "lodash.defaults": "^4.2.0", - "lodash.isarguments": "^3.1.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - }, "engines": { - "node": ">=12.22.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true, + "license": "MIT" + }, + "node_modules/gtoken": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", + "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", "license": "MIT", "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" + "gaxios": "^4.0.0", + "google-p12-pem": "^3.1.3", + "jws": "^4.0.0" }, "engines": { - "node": ">= 12" - } - }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "license": "MIT", - "engines": { - "node": ">= 10" + "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, + "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", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" } }, - "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==", - "dev": true, + "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": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" } }, - "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==", + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "duplexer": "^0.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "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/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "(Apache-2.0 OR MPL-1.1)" }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "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==", + "node_modules/has-ansi/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, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/has-bigints": { + "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": { @@ -21113,58 +19134,46 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, + "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", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" + "engines": { + "node": ">=8" } }, - "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==", + "node_modules/has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "dev": true, "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "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==", + "node_modules/has-property-descriptors": { + "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": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/has-proto": { + "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": { - "has-tostringtag": "^1.0.0" + "dunder-proto": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -21173,57 +19182,26 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "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", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -21232,2486 +19210,2529 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "function-bind": "^1.1.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "devOptional": true, "license": "MIT", - "dependencies": { - "is-docker": "^3.0.0" - }, "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "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", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "he": "bin/he" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "node_modules/helmet": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-7.0.0.tgz", + "integrity": "sha512-MsIgYmdBh460ZZ8cJC81q4XJknjG567wzEmv46WOBblDb6TUd3z8/GhgmsM9pn8g2B80tAJ4m5/d3Bi1KrSUBQ==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=16.0.0" } }, - "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": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-network-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", - "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", - "license": "MIT", - "engines": { - "node": ">=16" + "dependencies": { + "parse-passwd": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", "engines": { - "node": ">=0.12.0" + "node": ">=0.10.0" } }, - "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==", + "node_modules/hosted-git-info": { + "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": "MIT", + "license": "ISC", "dependencies": { - "has-tostringtag": "^1.0.0" + "lru-cache": "^10.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", - "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", - "dev": true, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "license": "MIT", "dependencies": { - "symbol-observable": "^1.1.0" - }, - "engines": { - "node": ">=4" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, - "node_modules/is-observable/node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, + "node_modules/hpack.js/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/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "node_modules/is-plain-obj": { + "node_modules/html-encoding-sniffer": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "devOptional": true, "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "whatwg-encoding": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=12" } }, - "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==", + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "devOptional": true, "license": "MIT", "dependencies": { - "isobject": "^3.0.1" + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 12" + } }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true, + "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/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==", - "dev": true, + "node_modules/html-webpack-plugin": { + "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": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10.13.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, - "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==", - "dev": true, + "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": { - "call-bind": "^1.0.7" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, + "node_modules/http-assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "dev": true, + "dependencies": { + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", + "node_modules/http-assert/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.6" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/http-assert/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, - "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.6" } }, - "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==", + "node_modules/http-assert/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.6" } }, - "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==", + "node_modules/http-cache-semantics": { + "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": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.14" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", "license": "MIT" }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8.0.0" } }, - "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==", - "dev": true, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "devOptional": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 6" } }, - "node_modules/is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "license": "MIT" - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, + "node_modules/http-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==", + "devOptional": true, "license": "MIT", + "dependencies": { + "debug": "4" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 6.0.0" } }, - "node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "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": { - "is-inside-container": "^1.0.0" + "@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" }, "engines": { - "node": ">=16" + "node": ">=12.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, + "node_modules/http-proxy/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "license": "MIT" }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/iso-url": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", - "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "license": "MIT", + "node_modules/http-server": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", + "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", + "dev": true, + "dependencies": { + "basic-auth": "^2.0.1", + "chalk": "^4.1.2", + "corser": "^2.0.1", + "he": "^1.2.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy": "^1.18.1", + "mime": "^1.6.0", + "minimist": "^1.2.6", + "opener": "^1.5.1", + "portfinder": "^1.0.28", + "secure-compare": "3.0.1", + "union": "~0.5.0", + "url-join": "^4.0.1" + }, + "bin": { + "http-server": "bin/http-server" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/isomorphic-ws": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", - "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", "dev": true, "license": "MIT", - "peerDependencies": { - "ws": "*" + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true, + "node_modules/http-status-codes": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.3.0.tgz", + "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==", "license": "MIT" }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", - "license": "BSD-3-Clause", + "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": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "devOptional": true, - "license": "BSD-3-Clause", + "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": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" + "debug": "4" }, "engines": { - "node": ">=10" + "node": ">= 6.0.0" } }, - "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", + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=8.12.0" } }, - "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", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "devOptional": true, + "node_modules/husky": { + "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", - "dependencies": { - "semver": "^7.5.3" + "bin": { + "husky": "bin.js" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/typicode" } }, - "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, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10.18" } }, - "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", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "devOptional": true, - "license": "BSD-3-Clause", + "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": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "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", + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "devOptional": true, - "license": "BSD-3-Clause", + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "license": "ISC" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "dev": true, + "license": "MIT", "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "harmony-reflect": "^1.4.6" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/iterare": { + "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", - "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "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": ">=6" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "license": "BlueOak-1.0.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": { - "@isaacs/cliui": "^8.0.2" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/jake": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", - "dev": true, - "license": "Apache-2.0", + "node_modules/immutable": { + "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": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, - "bin": { - "jake": "bin/cli.js" + "engines": { + "node": ">=6" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=4" } }, - "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, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", + "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "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==", + "node_modules/internal-slot": { + "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">= 0.4" } }, - "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", + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "optional": true, "engines": { - "node": ">=8" + "node": ">=12" } }, - "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==", + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "MIT", "engines": { - "node": "*" + "node": ">= 0.10" } }, - "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, + "node_modules/ionicons": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.4.0.tgz", + "integrity": "sha512-ZK94MMqgzMCPPMhmk8Ouu6goyVHFIlw/ACP6oe3FrikcI0N7CX0xcwVaEbUc0G/v3W0shI93vo+9ve/KpvcNhQ==", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@stencil/core": "^4.0.3" } }, - "node_modules/javascript-natural-sort": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", - "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "devOptional": true, + "node_modules/ioredis": { + "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": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" + "@ioredis/commands": "^1.1.1", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.1.0", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "node": ">=12.22.0" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" } }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "devOptional": true, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, "license": "MIT", "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 12" } }, - "node_modules/jest-changed-files/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "devOptional": true, + "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", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "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": ">= 10" } }, - "node_modules/jest-changed-files/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==", - "devOptional": true, + "node_modules/is-arguments": { + "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-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/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==", - "devOptional": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" + "url": "https://github.com/sponsors/ljharb" } }, - "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", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "devOptional": true, + "node_modules/is-array-buffer": { + "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": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", - "devOptional": true, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "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": { - "color-convert": "^2.0.1" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "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, - "optional": true, - "peer": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" + "has-bigints": "^1.0.2" }, "engines": { - "node": ">=10", - "npm": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, - "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==", + "node_modules/is-boolean-object": { + "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, - "optional": true, - "peer": 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" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "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" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "ci-info": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "bin": { + "is-ci": "bin.js" } }, - "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, + "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.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" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "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==", - "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, + "node_modules/is-data-view": { + "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": { - "has-flag": "^4.0.0" + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "devOptional": true, + "node_modules/is-date-object": { + "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": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "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", - "dependencies": { - "color-convert": "^2.0.1" + "bin": { + "is-docker": "cli.js" }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "call-bound": "^1.0.3" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "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", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "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==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "devOptional": true, "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "devOptional": true, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=0.10.0" } }, - "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, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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" - } - ], + "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": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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, + "node_modules/is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, "license": "MIT", + "dependencies": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "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": ">=8" } }, - "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, + "node_modules/is-map": { + "version": "2.0.3", + "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": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/is-network-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", + "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "devOptional": true, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.12.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, + "node_modules/is-number-object": { + "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": { - "color-convert": "^2.0.1" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "symbol-observable": "^1.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, - "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, + "node_modules/is-observable/node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "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, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "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": ">=8" } }, - "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, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "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, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "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": { - "has-flag": "^4.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "devOptional": true, + "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", - "dependencies": { - "detect-newline": "^3.0.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "devOptional": true, + "node_modules/is-shared-array-buffer": { + "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": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" + "dependencies": { + "call-bound": "^1.0.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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, + "node_modules/is-string": { + "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/is-symbol": { + "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": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/is-typed-array": { + "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": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "which-typed-array": "^1.1.16" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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, + "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", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-environment-jsdom": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", - "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", - "devOptional": true, + "node_modules/is-weakref": { + "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": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/jsdom": "^20.0.0", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0", - "jsdom": "^20.0.0" + "call-bound": "^1.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "canvas": "^2.5.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "devOptional": true, + "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": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "devOptional": true, - "license": "MIT", + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "license": "MIT" + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "devOptional": true, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" + "is-inside-container": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=16" }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "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": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", + "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "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, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-rslog": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/isomorphic-rslog/-/isomorphic-rslog-0.0.7.tgz", + "integrity": "sha512-n6/XnKnZ5eLEj6VllG4XmamXG7/F69nls8dcynHyhcTpsPUYgcgx4ifEaCo4lQJ2uzwfmIT+F0KBGwBcMKmt5g==", + "dev": true, + "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", + "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "dev": true, + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" } }, - "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", + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "license": "BSD-3-Clause", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "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", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "devOptional": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "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==", + "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", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "semver": "^7.5.3" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "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", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "devOptional": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "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==", + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "devOptional": true, - "license": "MIT", + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, "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==", + "node_modules/iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "license": "ISC", + "engines": { + "node": ">=6" + } + }, + "node_modules/jackspeak": { + "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": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.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", + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, "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, + "node_modules/javascript-natural-sort": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", + "dev": 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==", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "devOptional": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/jest-message-util": { + "node_modules/jest-changed-files": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "devOptional": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" }, "engines": { "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==", + "node_modules/jest-changed-files/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "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": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sindresorhus/execa?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==", + "node_modules/jest-changed-files/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==", "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" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/jest-changed-files/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==", "devOptional": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=10.17.0" } }, - "node_modules/jest-message-util/node_modules/pretty-format": { + "node_modules/jest-circus": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "devOptional": true, "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "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==", + "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", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "dependencies": { + "undici-types": "~6.20.0" } }, - "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==", + "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-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": { + "node_modules/jest-cli": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "devOptional": true, "license": "MIT", "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6" }, "peerDependencies": { - "jest-resolve": "*" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { - "jest-resolve": { + "node-notifier": { "optional": true } } }, - "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==", - "dev": true, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "devOptional": true, "license": "MIT", "dependencies": { - "bs-logger": "^0.2.6", - "esbuild-wasm": ">=0.15.13", - "jest-environment-jsdom": "^29.0.0", - "jest-util": "^29.0.0", - "pretty-format": "^29.0.0", - "ts-jest": "^29.0.0" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^14.15.0 || >=16.10.0" - }, - "optionalDependencies": { - "esbuild": ">=0.15.13" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "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", - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" + "@types/node": "*", + "ts-node": ">=9.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/jest-preset-angular/node_modules/pretty-format": { + "node_modules/jest-diff": { "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, + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "devOptional": true, "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "devOptional": true, "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-resolve": { + "node_modules/jest-each": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "devOptional": true, "license": "MIT", "dependencies": { + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", + "jest-get-type": "^29.6.3", "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-resolve-dependencies": { + "node_modules/jest-environment-jsdom": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "devOptional": true, "license": "MIT", "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/jsdom": "^20.0.0", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", + "jsdom": "^20.0.0" }, "engines": { "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" + "peerDependencies": { + "canvas": "^2.5.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependenciesMeta": { + "canvas": { + "optional": true + } } }, - "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==", + "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": { - "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" + "undici-types": "~6.20.0" } }, - "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==", + "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", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/jest-runner": { + "node_modules/jest-environment-node": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "devOptional": true, "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", + "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "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-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": { - "color-convert": "^2.0.1" - }, + "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", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "devOptional": true, + "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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==", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "devOptional": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "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==", + "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", - "engines": { - "node": ">=8" + "dependencies": { + "undici-types": "~6.20.0" } }, - "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==", + "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": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/jest-runner/node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "devOptional": true, "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.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-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "devOptional": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runtime": { + "node_modules/jest-message-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "devOptional": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", + "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", - "@types/node": "*", + "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", "slash": "^3.0.0", - "strip-bom": "^4.0.0" + "stack-utils": "^2.0.3" }, "engines": { "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-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.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==", + "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "undici-types": "~6.20.0" } }, - "node_modules/jest-runtime/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-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", - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "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-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "devOptional": true, "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "devOptional": true, + "node_modules/jest-preset-angular": { + "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": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" + "bs-logger": "^0.2.6", + "esbuild-wasm": ">=0.15.13", + "jest-environment-jsdom": "^29.0.0", + "jest-util": "^29.0.0", + "pretty-format": "^29.0.0", + "ts-jest": "^29.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^14.15.0 || >=16.10.0" + }, + "optionalDependencies": { + "esbuild": ">=0.15.13" + }, + "peerDependencies": { + "@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-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, + "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", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "bin": { + "esbuild": "bin/esbuild" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=18" } }, - "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, + "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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": ">=10" + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "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-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==", + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "devOptional": true, "license": "MIT", "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/pretty-format": { + "node_modules/jest-resolve": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "devOptional": true, "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.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==", + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "devOptional": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-util": { + "node_modules/jest-runner": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "devOptional": true, "license": "MIT", "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "ci-info": "^3.2.0", + "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { "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-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" + "undici-types": "~6.20.0" } }, - "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==", + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "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" - } - }, - "node_modules/jest-util/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "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-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-validate": { + "node_modules/jest-runtime": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "devOptional": true, "license": "MIT", "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", + "@types/node": "*", "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" }, "engines": { "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==", + "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" - } - }, - "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" + "undici-types": "~6.20.0" } }, - "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==", + "node_modules/jest-runtime/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, "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": ">=8" } }, - "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==", + "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" + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "devOptional": true, "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate/node_modules/pretty-format": { + "node_modules/jest-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "devOptional": true, "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "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==", + "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": { + "undici-types": "~6.20.0" + } + }, + "node_modules/jest-util/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "devOptional": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=8.6" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "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==", + "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" }, - "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==", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "devOptional": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-watcher": { @@ -23734,61 +21755,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==", - "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-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/@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": { - "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" + "undici-types": "~6.20.0" } }, - "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==", + "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": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, "node_modules/jest-worker": { "version": "29.7.0", @@ -23806,14 +21788,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": { @@ -23832,10 +21814,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" @@ -23891,9 +21880,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" }, @@ -23953,43 +21942,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" }, - "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" + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">= 6" + "node": ">=6.0" + }, + "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": { @@ -24005,17 +21989,14 @@ "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": { - "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", @@ -24085,9 +22066,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": { @@ -24137,42 +22119,27 @@ } }, "node_modules/jsonwebtoken": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", - "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", + "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": "^4.17.21", + "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.3.8" + "semver": "^7.5.4" }, "engines": { "node": ">=12", "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", @@ -24196,9 +22163,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", @@ -24207,12 +22174,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" } }, @@ -24226,9 +22193,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" @@ -24257,7 +22224,6 @@ "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", "dev": true, - "license": "MIT", "dependencies": { "tsscmp": "1.0.6" }, @@ -24269,6 +22235,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" @@ -24304,7 +22271,6 @@ "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } @@ -24314,7 +22280,6 @@ "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.3.tgz", "integrity": "sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==", "dev": true, - "license": "MIT", "dependencies": { "accepts": "^1.3.5", "cache-content-type": "^1.0.0", @@ -24348,15 +22313,13 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/koa-convert": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", "dev": true, - "license": "MIT", "dependencies": { "co": "^4.6.0", "koa-compose": "^4.1.0" @@ -24370,7 +22333,6 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, - "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -24387,7 +22349,6 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -24397,7 +22358,6 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -24456,73 +22416,23 @@ } }, "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", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", + "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, "engines": { - "node": ">= 18.12.0" + "node": ">= 14.15.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/leven": { @@ -24549,10 +22459,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": { @@ -24573,11 +22506,10 @@ } }, "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": { "node": ">=14" }, @@ -24590,7 +22522,6 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", "dev": true, - "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } @@ -24649,6 +22580,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", @@ -24686,92 +22627,75 @@ "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", - "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", + "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": { - "chalk": "^1.0.0" + "restore-cursor": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "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", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "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": { - "ansi-regex": "^2.0.0" + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/listr-update-renderer/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", + "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": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" + "number-is-nan": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "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", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "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", + "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", "dev": true, "license": "MIT", "dependencies": { - "restore-cursor": "^2.0.0" + "chalk": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "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", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", - "dev": true, - "license": "MIT" - }, - "node_modules/listr-verbose-renderer/node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "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": { - "escape-string-regexp": "^1.0.5" + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" }, "engines": { "node": ">=4" } }, - "node_modules/listr-verbose-renderer/node_modules/mimic-fn": { + "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==", @@ -24781,7 +22705,7 @@ "node": ">=4" } }, - "node_modules/listr-verbose-renderer/node_modules/onetime": { + "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==", @@ -24794,7 +22718,7 @@ "node": ">=4" } }, - "node_modules/listr-verbose-renderer/node_modules/restore-cursor": { + "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==", @@ -24808,319 +22732,349 @@ "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-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": "ISC" + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/listr/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "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/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "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", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "license": "MIT", + "engines": { + "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": "Apache-2.0", + "license": "MIT", "dependencies": { - "tslib": "^1.9.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "engines": { - "npm": ">=2.0.0" + "node": ">=4" } }, - "node_modules/listr/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "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": "0BSD" - }, - "node_modules/listr2": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", - "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", "license": "MIT", "dependencies": { - "cli-truncate": "^4.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.1.0", - "rfdc": "^1.4.1", - "wrap-ansi": "^9.0.0" + "ansi-regex": "^3.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=4" } }, - "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==", + "node_modules/listr-verbose-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", + "dev": true, "license": "MIT", "dependencies": { - "environment": "^1.0.0" + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "date-fns": "^1.27.2", + "figures": "^2.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "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==", + "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", - "engines": { - "node": ">=12" + "dependencies": { + "color-convert": "^1.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "engines": { + "node": ">=4" } }, - "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==", + "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", - "engines": { - "node": ">=12" + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=4" } }, - "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==", + "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", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, "license": "MIT", "dependencies": { - "restore-cursor": "^5.0.0" + "restore-cursor": "^2.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "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==", + "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": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "color-name": "1.1.3" } }, - "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==", + "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/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/listr-verbose-renderer/node_modules/date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true, + "license": "MIT" }, - "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==", + "node_modules/listr-verbose-renderer/node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, "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" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "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==", + "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", - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "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==", + "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", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, "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": ">=4" } }, - "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==", + "node_modules/listr-verbose-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-function": "^5.0.0" + "mimic-fn": "^1.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "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==", + "node_modules/listr-verbose-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": "^7.0.0", - "signal-exit": "^4.1.0" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "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==", + "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": "MIT", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=4" } }, - "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==", + "node_modules/listr/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, "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": ">=0.10.0" } }, - "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", + "node_modules/listr/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "ansi-regex": "^6.0.1" + "tslib": "^1.9.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "npm": ">=2.0.0" } }, - "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==", + "node_modules/listr/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/listr2": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=18.0.0" } }, "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", @@ -25131,28 +23085,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": ">= 12.13.0" + "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": "*" } }, "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": { @@ -25178,8 +23143,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz", "integrity": "sha512-QRBRSxhbtsX1nc0baxSkkK5WlVTTm/s48DSukcGcWZwIyI8Zz+lB+kFiELJXtzfH4Aj6kMWQ1VWW4U5uUDgZMA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lodash.debounce": { "version": "4.0.8", @@ -25193,12 +23157,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", @@ -25217,15 +23217,13 @@ "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": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/log-symbols": { "version": "4.1.0", @@ -25243,199 +23241,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/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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/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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "environment": "^1.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" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "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", - "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" + "node": ">=12" }, - "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" + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "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, + "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": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "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, + "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": "^2.0.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "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, - "license": "MIT", - "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, + "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": ">=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" - }, - "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, - "license": "MIT", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, + "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": ">=4" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "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, + "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-regex": "^3.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/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, + "node_modules/log-update/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": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/log4js": { @@ -25443,7 +23408,6 @@ "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, - "license": "Apache-2.0", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -25459,8 +23423,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", "integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/loose-envify": { "version": "1.4.0", @@ -25492,28 +23455,10 @@ "tslib": "^2.0.3" } }, - "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": "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": { @@ -25536,38 +23481,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": { @@ -25577,27 +23534,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": { @@ -25617,23 +23583,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" @@ -25642,6 +23595,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", @@ -25685,8 +23647,7 @@ "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true, - "license": "CC0-1.0" + "dev": true }, "node_modules/media-typer": { "version": "0.3.0", @@ -25698,9 +23659,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": { @@ -25721,10 +23682,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", @@ -25742,9 +23706,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": { @@ -25770,6 +23734,20 @@ "web-worker": "^1.2.0" } }, + "node_modules/mermaid/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -26321,15 +24299,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -26341,13 +24310,12 @@ } }, "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==", - "license": "MIT", + "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, "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" + "schema-utils": "^4.0.0" }, "engines": { "node": ">= 12.13.0" @@ -26367,19 +24335,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": { @@ -26395,6 +24371,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" @@ -26414,18 +24391,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" @@ -26510,30 +24487,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" - }, - "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" + "minipass": "^7.0.4", + "rimraf": "^5.0.5" }, "engines": { - "node": ">=8" + "node": ">= 18" } }, "node_modules/mkdirp": { @@ -26590,6 +24554,7 @@ "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" } @@ -26651,15 +24616,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", @@ -26695,20 +24661,7 @@ "needle": "bin/needle" }, "engines": { - "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": ">= 4.4.x" } }, "node_modules/negotiator": { @@ -26727,132 +24680,59 @@ "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-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-skeleton-loader": { @@ -26869,41 +24749,19 @@ } }, "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" - } - }, - "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" + "@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/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/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -26923,10 +24781,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", @@ -26980,9 +24839,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": { @@ -26990,30 +24849,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": { @@ -27021,6 +24868,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" }, @@ -27030,6 +24878,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", @@ -27051,16 +24909,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", @@ -27077,22 +24925,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", @@ -27104,13 +24936,12 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==", - "dev": true, - "license": "MIT" + "dev": true }, "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": { @@ -27118,7 +24949,6 @@ "resolved": "https://registry.npmjs.org/node-schedule/-/node-schedule-2.1.1.tgz", "integrity": "sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==", "dev": true, - "license": "MIT", "dependencies": { "cron-parser": "^4.2.0", "long-timeout": "0.1.1", @@ -27136,9 +24966,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": { @@ -27148,22 +24978,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": { @@ -27184,123 +25014,112 @@ "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": "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" @@ -27332,23 +25151,22 @@ } }, "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.0.6", - "resolved": "https://registry.npmjs.org/nx/-/nx-20.0.6.tgz", - "integrity": "sha512-z8PMPEXxtADwxsNXamZdDbx65fcNcR4gTmX7N94GKmpZNrjwd3m7RcnoYgQp5vA8kFQkMR+320mtq5NkGJPZvg==", + "version": "20.3.3", + "resolved": "https://registry.npmjs.org/nx/-/nx-20.3.3.tgz", + "integrity": "sha512-IUu2D8/bVa7aSr3ViRcrmpTGO2FKqzJoio6gjeq/YbyUHyjrrq5HUmHFx30Wm2vmC1BGm0MeyakTNUJzQvfAog==", "dev": true, "hasInstallScript": true, - "license": "MIT", "dependencies": { "@napi-rs/wasm-runtime": "0.2.4", "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "3.0.0-rc.46", + "@yarnpkg/parsers": "3.0.2", "@zkochan/js-yaml": "0.0.7", "axios": "^1.7.4", "chalk": "^4.1.0", @@ -27370,12 +25188,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" }, @@ -27384,16 +25204,16 @@ "nx-cloud": "bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "20.0.6", - "@nx/nx-darwin-x64": "20.0.6", - "@nx/nx-freebsd-x64": "20.0.6", - "@nx/nx-linux-arm-gnueabihf": "20.0.6", - "@nx/nx-linux-arm64-gnu": "20.0.6", - "@nx/nx-linux-arm64-musl": "20.0.6", - "@nx/nx-linux-x64-gnu": "20.0.6", - "@nx/nx-linux-x64-musl": "20.0.6", - "@nx/nx-win32-arm64-msvc": "20.0.6", - "@nx/nx-win32-x64-msvc": "20.0.6" + "@nx/nx-darwin-arm64": "20.3.3", + "@nx/nx-darwin-x64": "20.3.3", + "@nx/nx-freebsd-x64": "20.3.3", + "@nx/nx-linux-arm-gnueabihf": "20.3.3", + "@nx/nx-linux-arm64-gnu": "20.3.3", + "@nx/nx-linux-arm64-musl": "20.3.3", + "@nx/nx-linux-x64-gnu": "20.3.3", + "@nx/nx-linux-x64-musl": "20.3.3", + "@nx/nx-win32-arm64-msvc": "20.3.3", + "@nx/nx-win32-x64-msvc": "20.3.3" }, "peerDependencies": { "@swc-node/register": "^1.8.0", @@ -27408,50 +25228,16 @@ } } }, - "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==", - "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/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/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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": ">=6" }, "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": { @@ -27459,32 +25245,17 @@ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, - "license": "MIT", "engines": { "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.6", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz", - "integrity": "sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==", + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "dotenv": "^16.4.4" + "dotenv": "^16.4.5" }, "engines": { "node": ">=12" @@ -27498,7 +25269,6 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -27509,38 +25279,11 @@ "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", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -27548,19 +25291,26 @@ "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==", - "dev": true, - "license": "MIT" - }, + "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, + "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", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, - "license": "MIT", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -27578,7 +25328,6 @@ "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", "dev": true, - "license": "MIT", "dependencies": { "bl": "^4.0.3", "chalk": "^4.1.0", @@ -27596,38 +25345,16 @@ "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "license": "ISC" - }, - "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.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" + "bin": { + "yaml": "bin.mjs" }, "engines": { - "node": ">=8" + "node": ">= 14" } }, "node_modules/oauth": { @@ -27646,9 +25373,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" @@ -27668,15 +25395,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": { @@ -27721,13 +25450,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" }, @@ -27769,6 +25499,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" @@ -27847,6 +25578,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", @@ -27870,235 +25624,253 @@ "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==", + "node_modules/ordered-binary": { + "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", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=0.10.0" } }, - "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==", + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "dev": true, + "license": "MIT" + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "devOptional": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "yocto-queue": "^0.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "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": { - "restore-cursor": "^3.1.0" + "p-limit": "^2.2.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==", + "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" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "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==", + "node_modules/p-retry": { + "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": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" }, "engines": { - "node": ">=8" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "devOptional": true, "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "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" + "node_modules/package-json-from-dist": { + "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/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "node_modules/pacote": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-20.0.0.tgz", + "integrity": "sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "@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": "^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": "^3.0.0", + "ssri": "^12.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, "engines": { - "node": ">=0.10.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/ospath": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", - "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "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": "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", + "license": "ISC", "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "devOptional": true, + "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": { - "yocto-queue": "^0.1.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 8" } }, - "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==", + "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": "MIT", + "license": "ISC", "dependencies": { - "p-limit": "^3.0.2" + "yallist": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "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": ">=6" + "node": ">=10" } }, - "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==", - "license": "MIT", + "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": { - "@types/retry": "0.12.2", - "is-network-error": "^1.0.0", - "retry": "^0.13.1" + "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": ">=16.17" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "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", + "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": ">= 4" + "node": ">= 8" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "devOptional": true, - "license": "MIT", + "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": ">=6" + "node": ">=8" } }, - "node_modules/package-json-from-dist": { - "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==", - "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==", + "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", - "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", - "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", - "promise-retry": "^2.0.1", - "sigstore": "^2.2.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "bin/index.js" - }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" } }, "node_modules/papaparse": { @@ -28148,12 +25920,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", @@ -28174,15 +25940,14 @@ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "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" @@ -28218,6 +25983,18 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/parse5-sax-parser": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", @@ -28280,6 +26057,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", @@ -28349,6 +26136,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" @@ -28364,6 +26152,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", @@ -28376,16 +26165,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": { @@ -28466,12 +26249,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": { @@ -28487,62 +26270,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", @@ -28582,7 +26309,6 @@ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", "dev": true, - "license": "MIT", "dependencies": { "async": "^2.6.4", "debug": "^3.2.7", @@ -28597,7 +26323,6 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, - "license": "MIT", "dependencies": { "lodash": "^4.17.14" } @@ -28607,7 +26332,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -28616,8 +26340,7 @@ "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" + "dev": true }, "node_modules/possible-typed-array-names": { "version": "1.0.0", @@ -28630,9 +26353,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", @@ -28650,8 +26373,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" @@ -28662,7 +26385,6 @@ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", "dev": true, - "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" @@ -28679,7 +26401,6 @@ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", "dev": true, - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", @@ -28698,7 +26419,6 @@ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", "dev": true, - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" @@ -28715,7 +26435,6 @@ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", "dev": true, - "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -28728,7 +26447,6 @@ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", "dev": true, - "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -28741,7 +26459,6 @@ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", "dev": true, - "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -28754,7 +26471,6 @@ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", "dev": true, - "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -28767,7 +26483,6 @@ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", "dev": true, - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -28781,72 +26496,25 @@ } }, "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", + "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, "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": { @@ -28860,7 +26528,6 @@ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", "dev": true, - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^6.1.1" @@ -28877,7 +26544,6 @@ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", "dev": true, - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", @@ -28896,7 +26562,6 @@ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", "dev": true, - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -28912,7 +26577,6 @@ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", "dev": true, - "license": "MIT", "dependencies": { "colord": "^2.9.3", "cssnano-utils": "^4.0.2", @@ -28930,7 +26594,6 @@ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", "dev": true, - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "cssnano-utils": "^4.0.2", @@ -28948,7 +26611,6 @@ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", "dev": true, - "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -28972,13 +26634,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": { @@ -28988,13 +26650,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" @@ -29003,6 +26678,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", @@ -29023,7 +26711,6 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", "dev": true, - "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -29036,7 +26723,6 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", "dev": true, - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -29052,7 +26738,6 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", "dev": true, - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -29068,7 +26753,6 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", "dev": true, - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -29084,7 +26768,6 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", "dev": true, - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -29100,7 +26783,6 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", "dev": true, - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -29116,7 +26798,6 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", "dev": true, - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" @@ -29133,7 +26814,6 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", "dev": true, - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -29149,7 +26829,6 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", "dev": true, - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -29165,7 +26844,6 @@ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", "dev": true, - "license": "MIT", "dependencies": { "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" @@ -29182,7 +26860,6 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", "dev": true, - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" @@ -29199,7 +26876,6 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", "dev": true, - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -29214,7 +26890,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==", - "license": "MIT", + "dev": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -29228,7 +26904,6 @@ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", "dev": true, - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^3.2.0" @@ -29245,7 +26920,6 @@ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", "dev": true, - "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -29263,19 +26937,17 @@ "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" } }, "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": { @@ -29326,25 +26998,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" @@ -29354,20 +27026,20 @@ } }, "node_modules/prisma": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.21.1.tgz", - "integrity": "sha512-PB+Iqzld/uQBPaaw2UVIk84kb0ITsLajzsxzsadxxl54eaU5Gyl2/L02ysivHxK89t7YrfQJm+Ggk37uvM70oQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.2.1.tgz", + "integrity": "sha512-hhyM0H13pQleQ+br4CkzGizS5I0oInoeTw3JfLw1BRZduBSQxPILlJLwi+46wZzj9Je7ndyQEMGw/n5cN2fknA==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/engines": "5.21.1" + "@prisma/engines": "6.2.1" }, "bin": { "prisma": "build/index.js" }, "engines": { - "node": ">=16.13" + "node": ">=18.18" }, "optionalDependencies": { "fsevents": "2.3.3" @@ -29384,13 +27056,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": { @@ -29439,6 +27111,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", @@ -29479,8 +27161,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/prr": { "version": "1.0.1", @@ -29490,15 +27171,22 @@ "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", "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", @@ -29532,20 +27220,14 @@ "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==", - "license": "0BSD" - }, "node_modules/pvutils": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", @@ -29556,12 +27238,12 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "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.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -29596,24 +27278,11 @@ ], "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.3.0", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-9.3.0.tgz", - "integrity": "sha512-cl/7DCCKNxmsbc0dXZTJTY08rvDdzLhVfE6kPBson1fWzDapLzv0RKSzjpmAqP53fkQqAvq05gpUVHTrUNsuxg==", - "dev": true, - "license": "MIT" + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-9.4.2.tgz", + "integrity": "sha512-++euMfxnl7OgaEKwXh9QqThOjMeta2HH001N1v4mYQzBjJBnmXBh2BCK6dZAbICFVXOFUVD3xFG0R3ZPU0mxXw==", + "dev": true }, "node_modules/ramda": { "version": "0.26.1", @@ -29655,6 +27324,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", @@ -29668,17 +27349,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", @@ -29694,10 +27364,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": { @@ -29705,7 +27375,6 @@ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "dev": true, - "license": "MIT", "dependencies": { "pify": "^2.3.0" } @@ -29725,27 +27394,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": { @@ -29765,16 +27423,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", @@ -29850,11 +27498,34 @@ } }, "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "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", @@ -29914,15 +27585,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" }, @@ -29937,9 +27608,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" @@ -29960,43 +27631,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", @@ -30125,111 +27759,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_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": ">=18" } }, "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==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "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==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "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" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "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" + "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/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_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" + "node": ">=16 || 14 >=14.17" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/request-progress": { @@ -30260,16 +27854,6 @@ "node": ">=0.10.0" } }, - "node_modules/requireindex": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", - "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.5" - } - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -30277,28 +27861,25 @@ "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" } }, - "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", @@ -30317,7 +27898,6 @@ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "dev": true, - "license": "MIT", "dependencies": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" @@ -30352,89 +27932,39 @@ "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" } }, - "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": "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" @@ -30457,17 +27987,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": "^10.3.7" + }, + "bin": { + "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": { - "glob": "^7.1.3" + "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": { - "rimraf": "bin.js" + "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" @@ -30481,12 +28047,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" @@ -30496,22 +28062,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" } }, @@ -30558,9 +28126,9 @@ "optional": true }, "node_modules/rxjs": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", - "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "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" @@ -30580,15 +28148,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": { @@ -30619,15 +28188,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" @@ -30643,13 +28212,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": { @@ -30657,32 +28226,36 @@ }, "engines": { "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, "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", + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dev": true, "dependencies": { + "klona": "^2.0.4", "neo-async": "^2.6.2" }, "engines": { - "node": ">= 18.12.0" + "node": ">= 12.13.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", + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" }, "peerDependenciesMeta": { - "@rspack/core": { + "fibers": { "optional": true }, "node-sass": { @@ -30693,9 +28266,6 @@ }, "sass-embedded": { "optional": true - }, - "webpack": { - "optional": true } } }, @@ -30729,9 +28299,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", @@ -30740,36 +28310,18 @@ "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", "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/select": { "version": "1.1.2", @@ -30799,80 +28351,35 @@ }, "node_modules/semver": { "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-dsl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", - "integrity": "sha512-e8BOaTo007E3dMuQQTnPdalbKTABKNS7UxoBIDnwOqRa+QwMrCPjynB8zAlPF6xlqUfdLPPLIJ13hJNmhtq8Ng==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^5.3.0" - } - }, - "node_modules/semver-dsl/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", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "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" + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 0.8.0" + "node": ">=10" } }, - "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==", + "node_modules/semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha512-e8BOaTo007E3dMuQQTnPdalbKTABKNS7UxoBIDnwOqRa+QwMrCPjynB8zAlPF6xlqUfdLPPLIJ13hJNmhtq8Ng==", + "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "semver": "^5.3.0" } }, - "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==", - "license": "MIT" - }, - "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/semver-dsl/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", + "bin": { + "semver": "bin/semver" + } }, "node_modules/serialize-javascript": { "version": "6.0.2", @@ -30962,24 +28469,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", @@ -31031,6 +28602,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" @@ -31043,16 +28615,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" } @@ -31093,15 +28669,16 @@ } }, "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" @@ -31110,34 +28687,81 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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", + "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": ">=14" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, + "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/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": { @@ -31194,13 +28818,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": ">=0.10.0" + "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": ">=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": { @@ -31250,13 +28904,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" }, @@ -31268,16 +28922,15 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz", "integrity": "sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==", - "dev": true, - "license": "MIT" + "dev": true }, "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": { @@ -31309,18 +28962,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", @@ -31331,26 +28972,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", @@ -31439,42 +29060,28 @@ "getpass": "^0.1.1", "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "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" + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } }, "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": { @@ -31515,97 +29122,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", @@ -31616,13 +29132,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", @@ -31632,6 +29148,14 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "prettier": "^2 || ^3" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } } }, "node_modules/streamroller": { @@ -31639,7 +29163,6 @@ "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, - "license": "MIT", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -31654,7 +29177,6 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -31669,7 +29191,6 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -31679,7 +29200,6 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4.0.0" } @@ -31734,6 +29254,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", @@ -31745,16 +29266,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" @@ -31764,16 +29288,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" } @@ -31813,6 +29341,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" @@ -31822,19 +29351,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" @@ -31879,6 +29409,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", @@ -31901,7 +29461,6 @@ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", "dev": true, - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-selector-parser": "^6.0.16" @@ -31921,23 +29480,23 @@ "optional": true }, "node_modules/stylus": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.59.0.tgz", - "integrity": "sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg==", + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.64.0.tgz", + "integrity": "sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==", "devOptional": true, "license": "MIT", "dependencies": { - "@adobe/css-tools": "^4.0.1", + "@adobe/css-tools": "~4.3.3", "debug": "^4.3.2", - "glob": "^7.1.6", - "sax": "~1.2.4", + "glob": "^10.4.5", + "sax": "~1.4.1", "source-map": "^0.7.3" }, "bin": { "stylus": "bin/stylus" }, "engines": { - "node": "*" + "node": ">=16" }, "funding": { "url": "https://opencollective.com/stylus" @@ -31948,7 +29507,6 @@ "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-7.1.3.tgz", "integrity": "sha512-TY0SKwiY7D2kMd3UxaWKSf3xHF0FFN/FAfsSqfrhxRT/koXTwffq2cgEWDkLQz7VojMu7qEEHt5TlMjkPx9UDw==", "dev": true, - "license": "MIT", "dependencies": { "fast-glob": "^3.2.12", "normalize-path": "^3.0.0" @@ -31965,23 +29523,70 @@ "webpack": "^5.0.0" } }, - "node_modules/stylus/node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "node_modules/stylus/node_modules/@adobe/css-tools": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", "devOptional": true, - "license": "ISC" + "license": "MIT" + }, + "node_modules/stylus/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==", + "devOptional": 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/stylus/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "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": { @@ -32016,7 +29621,6 @@ "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", "dev": true, - "license": "MIT", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", @@ -32042,7 +29646,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10" } @@ -32074,21 +29677,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": { @@ -32096,7 +29699,6 @@ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, - "license": "MIT", "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -32105,56 +29707,33 @@ "readable-stream": "^3.1.1" }, "engines": { - "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": ">=6" } }, "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": { @@ -32168,9 +29747,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", @@ -32186,16 +29765,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" @@ -32219,38 +29798,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": { @@ -32267,30 +29821,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", @@ -32306,6 +29836,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", @@ -32321,49 +29875,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", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "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", @@ -32401,6 +29912,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", @@ -32442,6 +29967,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" @@ -32527,22 +30053,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", @@ -32553,16 +30063,16 @@ } }, "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": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-dedent": { @@ -32620,11 +30130,10 @@ } }, "node_modules/ts-loader": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", - "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.2.tgz", + "integrity": "sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.0.0", @@ -32640,60 +30149,13 @@ "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==", - "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/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==", + "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": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 8" } }, "node_modules/ts-node": { @@ -32721,124 +30183,59 @@ "ts-node-cwd": "dist/bin-cwd.js", "ts-node-esm": "dist/bin-esm.js", "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.7.0", - "tsconfig-paths": "^4.0.0" - }, - "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" + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } } }, - "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==", + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" }, - "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": ">=6" } }, - "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==", + "node_modules/tsconfig-paths-webpack-plugin": { + "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": { - "has-flag": "^4.0.0" + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tapable": "^2.2.1", + "tsconfig-paths": "^4.1.2" }, "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": ">=10.13.0" } }, "node_modules/tslib": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", + "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/tslint": { @@ -32873,28 +30270,63 @@ "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, "peer": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "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==", + "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": { - "brace-expansion": "^1.1.7" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": "*" + "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": { @@ -32907,6 +30339,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", @@ -32914,17 +30360,7 @@ "dev": true, "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==", @@ -32937,26 +30373,28 @@ "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/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", "dev": true, - "peer": true + "engines": { + "node": ">=0.6.x" + } }, "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": { @@ -32973,9 +30411,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": { @@ -32985,13 +30424,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" @@ -33008,13 +30446,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" @@ -33034,32 +30471,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" @@ -33069,18 +30506,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" @@ -33090,18 +30528,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" @@ -33123,9 +30561,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", @@ -33154,16 +30592,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" @@ -33175,6 +30616,15 @@ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", "license": "MIT" }, + "node_modules/undici": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.0.tgz", + "integrity": "sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -33246,111 +30696,45 @@ } }, "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_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", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", - "license": "MIT", - "optional": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "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": "^18.17.0 || >=20.5.0" } }, - "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, + "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", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", "license": "MIT", + "optional": true, "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" + "@types/unist": "^2.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", @@ -33371,25 +30755,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": { @@ -33407,7 +30783,6 @@ "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", "dev": true, - "license": "MIT", "engines": { "node": ">=4", "yarn": "*" @@ -33470,8 +30845,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/url-parse": { "version": "1.5.10", @@ -33491,9 +30865,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": { @@ -33543,16 +30917,16 @@ } }, "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", + "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/uvu": { @@ -33615,13 +30989,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", @@ -33634,13 +31001,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": { @@ -33683,10 +31050,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", @@ -34110,6 +31487,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", @@ -34148,32 +31538,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": { @@ -34207,9 +31607,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", @@ -34241,7 +31641,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", @@ -34263,12 +31664,6 @@ "tslib": "^2.7.0" } }, - "node_modules/webcrypto-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==", - "peer": true - }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -34280,18 +31675,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", @@ -34352,16 +31747,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", @@ -34436,10 +31821,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", @@ -34455,10 +31894,38 @@ "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-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", @@ -34474,8 +31941,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", @@ -34483,14 +31949,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" @@ -34498,118 +31963,80 @@ "engines": { "node": ">= 18.12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "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==", - "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" - }, - "engines": { - "node": ">=12.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "@types/express": "^4.17.13" + "webpack": "^5.0.0" }, "peerDependenciesMeta": { - "@types/express": { + "webpack": { + "optional": true + }, + "webpack-cli": { "optional": true } } }, - "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==", - "license": "ISC", + "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": { - "brace-expansion": "^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": ">=16 || 14 >=14.17" + "node": ">= 8.10.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "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==", + "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": { - "glob": "^10.3.7" + "is-glob": "^4.0.1" }, - "bin": { - "rimraf": "dist/esm/bin.mjs" + "engines": { + "node": ">= 6" + } + }, + "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": { @@ -34643,7 +32070,6 @@ "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -34710,34 +32136,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", @@ -34798,19 +32196,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", @@ -34836,48 +32221,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.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.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-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "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-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": { @@ -34887,6 +32324,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", @@ -34903,17 +32350,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": { @@ -34921,6 +32371,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", @@ -34934,40 +32385,73 @@ "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": ">=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": ">=8" + "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": { "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": { @@ -34984,17 +32468,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" @@ -35092,23 +32569,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", @@ -35168,7 +32628,6 @@ "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4.0.0" } @@ -35208,9 +32667,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 909859788..cca49ffd2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.122.0", + "version": "2.135.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", @@ -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", @@ -57,17 +57,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", @@ -75,139 +75,140 @@ "@dfinity/identity": "0.15.7", "@dfinity/principal": "0.15.7", "@dinero.js/currencies": "2.0.0-alpha.8", - "@internationalized/number": "3.5.2", - "@nestjs/bull": "10.0.1", - "@nestjs/cache-manager": "2.2.2", - "@nestjs/common": "10.1.3", - "@nestjs/config": "3.0.0", - "@nestjs/core": "10.1.3", - "@nestjs/event-emitter": "2.0.4", - "@nestjs/jwt": "10.1.0", + "@internationalized/number": "3.6.0", + "@nestjs/bull": "10.2.3", + "@nestjs/cache-manager": "2.3.0", + "@nestjs/common": "10.4.15", + "@nestjs/config": "3.3.0", + "@nestjs/core": "10.4.15", + "@nestjs/event-emitter": "2.1.1", + "@nestjs/jwt": "10.2.0", "@nestjs/passport": "10.0.3", - "@nestjs/platform-express": "10.1.3", - "@nestjs/schedule": "3.0.2", - "@nestjs/serve-static": "4.0.0", - "@prisma/client": "5.21.1", + "@nestjs/platform-express": "10.4.15", + "@nestjs/schedule": "4.1.2", + "@nestjs/serve-static": "4.0.2", + "@prisma/client": "6.2.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", "await-lock": "^2.2.2", - "big.js": "6.2.1", - "body-parser": "1.20.2", + "big.js": "6.2.2", "bootstrap": "4.6.0", - "bull": "4.16.2", + "bull": "4.16.4", "cache-manager": "5.7.6", "cache-manager-redis-yet": "5.1.4", - "chart.js": "4.2.0", + "chart.js": "4.4.7", "chartjs-adapter-date-fns": "3.0.0", - "chartjs-chart-treemap": "2.3.1", - "chartjs-plugin-annotation": "2.1.2", + "chartjs-chart-treemap": "3.1.0", + "chartjs-plugin-annotation": "3.1.0", "chartjs-plugin-datalabels": "2.2.0", - "cheerio": "1.0.0-rc.12", + "cheerio": "1.0.0", "class-transformer": "0.5.1", "class-validator": "0.14.1", "color": "4.2.3", - "countries-and-timezones": "3.4.1", + "countries-and-timezones": "3.7.2", "countries-list": "3.1.1", "countup.js": "2.8.0", - "date-fns": "3.6.0", - "envalid": "7.3.1", + "date-fns": "4.1.0", + "envalid": "8.0.0", "google-spreadsheet": "3.2.0", - "got": "11.8.6", "helmet": "7.0.0", "http-status-codes": "2.3.0", "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", "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", + "reflect-metadata": "0.2.2", + "rxjs": "7.8.1", "stripe": "17.3.0", "svgmap": "2.6.0", "twitter-api-v2": "1.14.2", - "uuid": "9.0.1", + "uuid": "11.0.5", "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", - "@nestjs/schematics": "10.0.1", - "@nestjs/testing": "10.1.3", - "@nx/angular": "20.0.6", - "@nx/cypress": "20.0.6", - "@nx/eslint-plugin": "20.0.6", - "@nx/jest": "20.0.6", - "@nx/js": "20.0.6", - "@nx/nest": "20.0.6", - "@nx/node": "20.0.6", - "@nx/storybook": "20.0.6", - "@nx/web": "20.0.6", - "@nx/workspace": "20.0.6", - "@schematics/angular": "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", + "@eslint/eslintrc": "3.2.0", + "@eslint/js": "9.18.0", + "@nestjs/schematics": "10.2.3", + "@nestjs/testing": "10.4.15", + "@nx/angular": "20.3.3", + "@nx/cypress": "20.3.3", + "@nx/eslint-plugin": "20.3.3", + "@nx/jest": "20.3.3", + "@nx/js": "20.3.3", + "@nx/module-federation": "20.3.3", + "@nx/nest": "20.3.3", + "@nx/node": "20.3.3", + "@nx/storybook": "20.3.3", + "@nx/web": "20.3.3", + "@nx/workspace": "20.3.3", + "@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", "@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", "@types/node": "20.14.10", "@types/papaparse": "5.3.7", "@types/passport-google-oauth20": "2.0.16", - "@typescript-eslint/eslint-plugin": "6.21.0", - "@typescript-eslint/parser": "6.21.0", + "@typescript-eslint/eslint-plugin": "8.20.0", + "@typescript-eslint/parser": "8.20.0", "codelyzer": "6.0.1", "cypress": "6.2.1", - "eslint": "8.57.0", + "eslint": "9.18.0", "eslint-config-prettier": "9.1.0", - "eslint-plugin-cypress": "2.15.1", - "eslint-plugin-import": "2.29.1", - "eslint-plugin-storybook": "0.6.15", - "husky": "9.1.6", + "eslint-plugin-cypress": "3.2.0", + "eslint-plugin-import": "2.31.0", + "eslint-plugin-storybook": "0.10.2", + "husky": "9.1.7", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "jest-preset-angular": "14.1.0", - "nx": "20.0.6", - "prettier": "3.3.3", + "jest-preset-angular": "14.4.2", + "nx": "20.3.3", + "prettier": "3.4.2", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "5.21.1", + "prisma": "6.2.1", "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.3.6", + "storybook": "8.4.7", "ts-jest": "29.1.0", "ts-node": "10.9.2", - "tslib": "2.6.0", - "typescript": "5.5.3", + "tslib": "2.8.1", + "typescript": "5.6.3", "webpack-bundle-analyzer": "4.10.2" }, "engines": { @@ -215,8 +216,5 @@ }, "prisma": { "seed": "node prisma/seed.js" - }, - "resolutions": { - "rxjs": "7.5.6" } } diff --git a/prisma/migrations/20241103110114_added_ghostfolio_to_data_source/migration.sql b/prisma/migrations/20241103110114_added_ghostfolio_to_data_source/migration.sql new file mode 100644 index 000000000..9687a87b0 --- /dev/null +++ b/prisma/migrations/20241103110114_added_ghostfolio_to_data_source/migration.sql @@ -0,0 +1,2 @@ +-- AlterEnum +ALTER TYPE "DataSource" ADD VALUE 'GHOSTFOLIO'; diff --git a/prisma/migrations/20241130164334_upgraded_to_prisma_6/migration.sql b/prisma/migrations/20241130164334_upgraded_to_prisma_6/migration.sql new file mode 100644 index 000000000..5fb7cc10a --- /dev/null +++ b/prisma/migrations/20241130164334_upgraded_to_prisma_6/migration.sql @@ -0,0 +1,5 @@ +-- AlterTable +ALTER TABLE "_OrderToTag" ADD CONSTRAINT "_OrderToTag_AB_pkey" PRIMARY KEY ("A", "B"); + +-- DropIndex +DROP INDEX "_OrderToTag_AB_unique"; diff --git a/prisma/migrations/20241130164335_added_api_keys_to_user copy/migration.sql b/prisma/migrations/20241130164335_added_api_keys_to_user copy/migration.sql new file mode 100644 index 000000000..c538fd11b --- /dev/null +++ b/prisma/migrations/20241130164335_added_api_keys_to_user copy/migration.sql @@ -0,0 +1,19 @@ +-- CreateTable +CREATE TABLE "ApiKey" ( + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "hashedKey" TEXT NOT NULL, + "id" TEXT NOT NULL, + "updatedAt" TIMESTAMP(3) NOT NULL, + "userId" TEXT NOT NULL, + + CONSTRAINT "ApiKey_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE INDEX "ApiKey_hashedKey_idx" ON "ApiKey"("hashedKey"); + +-- CreateIndex +CREATE INDEX "ApiKey_userId_idx" ON "ApiKey"("userId"); + +-- AddForeignKey +ALTER TABLE "ApiKey" ADD CONSTRAINT "ApiKey_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; 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 000000000..f9a6eecbb --- /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/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 000000000..cbacd405a --- /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 af58da460..56174277b 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -77,6 +77,17 @@ model Analytics { @@index([updatedAt]) } +model ApiKey { + createdAt DateTime @default(now()) + hashedKey String @unique + id String @id @default(uuid()) + updatedAt DateTime @updatedAt + userId String + user User @relation(fields: [userId], onDelete: Cascade, references: [id]) + + @@index([userId]) +} + model AuthDevice { createdAt DateTime @default(now()) credentialId Bytes @@ -177,9 +188,11 @@ model SymbolProfile { symbol String symbolMapping Json? url String? + userId String? Order Order[] tags Tag[] SymbolProfileOverrides SymbolProfileOverrides? + User User? @relation(fields: [userId], onDelete: Cascade, references: [id]) @@unique([dataSource, symbol]) @@index([assetClass]) @@ -230,20 +243,22 @@ 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[] AuthDevice AuthDevice[] Order Order[] Settings Settings? Subscription Subscription[] + SymbolProfile SymbolProfile[] Tag Tag[] @@index([accessToken]) @@ -283,6 +298,7 @@ enum DataSource { COINGECKO EOD_HISTORICAL_DATA FINANCIAL_MODELING_PREP + GHOSTFOLIO GOOGLE_SHEETS MANUAL RAPID_API diff --git a/replace.build.js b/replace.build.mjs similarity index 66% rename from replace.build.js rename to replace.build.mjs index 0811fa969..1d714d7a4 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,