{
  "name": "ghostfolio",
  "version": "1.300.0",
  "homepage": "https://ghostfol.io",
  "license": "AGPL-3.0",
  "scripts": {
    "affected": "nx affected",
    "affected:apps": "nx affected:apps",
    "affected:build": "nx affected:build",
    "affected:dep-graph": "nx affected:dep-graph",
    "affected:e2e": "nx affected:e2e",
    "affected:libs": "nx affected:libs",
    "affected:lint": "nx affected:lint",
    "affected:test": "nx affected:test",
    "angular": "node --max_old_space_size=32768 ./node_modules/@angular/cli/bin/ng",
    "build:dev": "nx run api:build && nx run client:build && nx run client:copy-assets && yarn replace-placeholders-in-build",
    "build:production": "nx run api:build:production && nx run client:build:production && nx run client:copy-assets && yarn replace-placeholders-in-build",
    "build:storybook": "nx run ui:build-storybook",
    "database:format-schema": "prisma format",
    "database:generate-typings": "prisma generate",
    "database:gui": "prisma studio",
    "database:gui:prod": "npx dotenv-cli -e .env.prod -- prisma studio",
    "database:migrate": "prisma migrate deploy",
    "database:push": "prisma db push",
    "database:seed": "prisma db seed",
    "database:setup": "yarn database:push && yarn database:seed",
    "database:validate": "prisma validate",
    "dep-graph": "nx dep-graph",
    "e2e": "ng e2e",
    "extract-locales": "nx run client:extract-i18n --output-path ./apps/client/src/locales",
    "format": "nx format:write",
    "format:check": "nx format:check",
    "format:write": "nx format:write",
    "help": "nx help",
    "import-sort": "import-sort --write '{apps,libs}/**/*.ts'",
    "lint": "nx workspace-lint && ng lint",
    "ng": "nx",
    "nx": "nx",
    "postinstall": "prisma generate",
    "replace-placeholders-in-build": "node ./replace.build.js",
    "start": "node dist/apps/api/main",
    "start:client": "nx run client:copy-assets && nx run client:serve --configuration=development-en --hmr -o",
    "start:production": "yarn database:migrate && yarn database:seed && node main",
    "start:server": "nx run api:serve --watch",
    "start:storybook": "nx run ui:storybook",
    "test": "npx dotenv-cli -e .env.example -- nx test",
    "test:single": "nx run api:test --test-file portfolio-calculator-novn-buy-and-sell.spec.ts",
    "ts-node": "ts-node",
    "update": "nx migrate latest",
    "watch:server": "nx run api:build --watch",
    "watch:test": "nx test --watch",
    "workspace-generator": "nx workspace-generator"
  },
  "dependencies": {
    "@angular/animations": "16.1.8",
    "@angular/cdk": "16.1.7",
    "@angular/common": "16.1.8",
    "@angular/compiler": "16.1.8",
    "@angular/core": "16.1.8",
    "@angular/forms": "16.1.8",
    "@angular/material": "16.1.7",
    "@angular/platform-browser": "16.1.8",
    "@angular/platform-browser-dynamic": "16.1.8",
    "@angular/router": "16.1.8",
    "@angular/service-worker": "16.1.8",
    "@codewithdan/observable-store": "2.2.15",
    "@dfinity/agent": "0.15.7",
    "@dfinity/auth-client": "0.15.7",
    "@dfinity/candid": "0.15.7",
    "@dfinity/identity": "0.15.7",
    "@dfinity/principal": "0.15.7",
    "@dinero.js/currencies": "2.0.0-alpha.8",
    "@nestjs/bull": "10.0.1",
    "@nestjs/cache-manager": "2.1.0",
    "@nestjs/common": "10.1.3",
    "@nestjs/config": "3.0.0",
    "@nestjs/core": "10.1.3",
    "@nestjs/jwt": "10.1.0",
    "@nestjs/passport": "10.0.0",
    "@nestjs/platform-express": "10.1.3",
    "@nestjs/schedule": "3.0.2",
    "@nestjs/serve-static": "4.0.0",
    "@prisma/client": "4.16.2",
    "@simplewebauthn/browser": "5.2.1",
    "@simplewebauthn/server": "5.2.1",
    "@stripe/stripe-js": "1.47.0",
    "alphavantage": "2.2.0",
    "big.js": "6.2.1",
    "body-parser": "1.20.1",
    "bootstrap": "4.6.0",
    "bull": "4.10.4",
    "cache-manager": "3.4.3",
    "cache-manager-redis-store": "2.0.0",
    "chart.js": "4.2.0",
    "chartjs-adapter-date-fns": "3.0.0",
    "chartjs-plugin-annotation": "2.1.2",
    "chartjs-plugin-datalabels": "2.2.0",
    "cheerio": "1.0.0-rc.12",
    "class-transformer": "0.5.1",
    "class-validator": "0.14.0",
    "color": "4.2.3",
    "countries-and-timezones": "3.4.1",
    "countries-list": "2.6.1",
    "countup.js": "2.3.2",
    "date-fns": "2.29.3",
    "envalid": "7.3.1",
    "google-spreadsheet": "3.2.0",
    "got": "11.8.6",
    "helmet": "7.0.0",
    "http-status-codes": "2.2.0",
    "ionicons": "7.1.0",
    "lodash": "4.17.21",
    "marked": "4.2.12",
    "ms": "3.0.0-canary.1",
    "ng-extract-i18n-merge": "2.7.0",
    "ngx-device-detector": "5.0.1",
    "ngx-markdown": "15.1.0",
    "ngx-skeleton-loader": "7.0.0",
    "ngx-stripe": "15.5.0",
    "papaparse": "5.3.1",
    "passport": "0.6.0",
    "passport-google-oauth20": "2.0.0",
    "passport-jwt": "4.0.0",
    "prisma": "4.16.2",
    "reflect-metadata": "0.1.13",
    "rxjs": "7.5.6",
    "stripe": "11.12.0",
    "svgmap": "2.6.0",
    "twitter-api-v2": "1.14.2",
    "uuid": "9.0.0",
    "yahoo-finance2": "2.4.3",
    "zone.js": "0.13.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "16.1.8",
    "@angular-devkit/core": "16.1.8",
    "@angular-devkit/schematics": "16.1.8",
    "@angular-eslint/eslint-plugin": "16.0.3",
    "@angular-eslint/eslint-plugin-template": "16.0.3",
    "@angular-eslint/template-parser": "16.0.3",
    "@angular/cli": "16.1.8",
    "@angular/compiler-cli": "16.1.8",
    "@angular/language-service": "16.1.8",
    "@angular/localize": "16.1.8",
    "@angular/pwa": "16.1.8",
    "@nestjs/schematics": "10.0.1",
    "@nestjs/testing": "10.1.3",
    "@nx/angular": "16.6.0",
    "@nx/cypress": "16.6.0",
    "@nx/eslint-plugin": "16.6.0",
    "@nx/jest": "16.6.0",
    "@nx/js": "16.6.0",
    "@nx/nest": "16.6.0",
    "@nx/node": "16.6.0",
    "@nx/storybook": "16.6.0",
    "@nx/web": "16.6.0",
    "@nx/workspace": "16.6.0",
    "@schematics/angular": "16.1.8",
    "@simplewebauthn/typescript-types": "5.2.1",
    "@storybook/addon-essentials": "7.2.1",
    "@storybook/angular": "7.2.1",
    "@storybook/core-server": "7.2.1",
    "@types/big.js": "6.1.6",
    "@types/body-parser": "1.19.2",
    "@types/cache-manager": "3.4.2",
    "@types/color": "3.0.3",
    "@types/google-spreadsheet": "3.1.5",
    "@types/jest": "29.4.4",
    "@types/lodash": "4.14.195",
    "@types/marked": "4.0.8",
    "@types/node": "20.4.2",
    "@types/papaparse": "5.3.7",
    "@types/passport-google-oauth20": "2.0.11",
    "@typescript-eslint/eslint-plugin": "5.51.0",
    "@typescript-eslint/parser": "5.51.0",
    "codelyzer": "6.0.1",
    "cypress": "6.2.1",
    "eslint": "8.33.0",
    "eslint-config-prettier": "8.6.0",
    "eslint-plugin-cypress": "2.12.1",
    "eslint-plugin-import": "2.27.5",
    "eslint-plugin-storybook": "0.6.12",
    "import-sort-cli": "6.0.0",
    "import-sort-parser-typescript": "6.0.0",
    "import-sort-style-module": "6.0.0",
    "jest": "29.4.3",
    "jest-environment-jsdom": "29.4.3",
    "jest-preset-angular": "13.1.1",
    "nx": "16.6.0",
    "nx-cloud": "16.2.0",
    "prettier": "2.8.4",
    "prettier-plugin-organize-attributes": "0.0.5",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "replace-in-file": "6.3.5",
    "storybook": "7.0.9",
    "ts-jest": "29.1.0",
    "ts-node": "10.9.1",
    "tslib": "2.6.0",
    "typescript": "5.1.6"
  },
  "engines": {
    "node": ">=18"
  },
  "importSort": {
    ".ts": {
      "parser": "typescript",
      "style": "module"
    }
  },
  "prisma": {
    "seed": "node prisma/seed.js"
  },
  "resolutions": {
    "rxjs": "7.5.6"
  }
}
