{
  "name": "frontend",
  "version": "20.1.1",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build --configuration production && npm run sbom",
    "sbom": "cyclonedx-esbuild --output-reproducible --output-file dist/bom/bom.json dist/frontend/stats.json",
    "bundle-visualizer": "node --experimental-strip-types filter-bundle-stats-for-diagram.mts && npx esbuild-visualizer --metadata dist/frontend/stats-filtered.json --filename dist/frontend/bundle-report.html",
    "bundle-visualizer:full": "npx esbuild-visualizer --metadata dist/frontend/stats.json --filename dist/frontend/bundle-report.html",
    "test": "ng test",
    "test:coverage": "ng test --configuration=coverage --watch=false",
    "test:watch": "ng test --watch --reporters=default",
    "test:verbose": "ng test --reporters=verbose",
    "lint": "ng lint",
    "lint:scss": "npx stylelint \"**/*.scss\"",
    "lint:fix": "ng lint --fix && npx stylelint \"**/*.scss\" --fix"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^21.2.1",
    "@angular/build": "^21.2.1",
    "@angular/cdk": "^21.2.1",
    "@angular/cli": "^21.2.1",
    "@angular/common": "^21.2.1",
    "@angular/compiler": "^21.2.1",
    "@angular/compiler-cli": "^21.2.1",
    "@angular/core": "^21.2.1",
    "@angular/forms": "^21.2.1",
    "@angular/material": "^21.2.1",
    "@angular/platform-browser": "^21.2.1",
    "@angular/platform-browser-dynamic": "^21.2.1",
    "@angular/router": "^21.2.1",
    "@codemirror/lang-javascript": "^6.2.5",
    "@codemirror/lang-json": "^6.0.2",
    "@codemirror/lang-yaml": "^6.1.2",
    "@codemirror/merge": "^6.12.0",
    "@cyclonedx/cyclonedx-esbuild": "^1.0.0",
    "@fortawesome/fontawesome-svg-core": "~1.2.30",
    "@fortawesome/free-brands-svg-icons": "^5.14.0",
    "@fortawesome/free-regular-svg-icons": "^5.14.0",
    "@fortawesome/free-solid-svg-icons": "^5.14.0",
    "@ngx-translate/core": "^17.0.0",
    "@ngx-translate/http-loader": "^17.0.0",
    "@wagmi/core": "^0.5.8",
    "canvas-confetti": "^1.9.3",
    "codemirror": "^6.0.2",
    "cookieconsent": "^3.1.1",
    "ethers": "^5.7.2",
    "flag-icons": "^6.9.2",
    "font-mfizz": "^2.4.1",
    "jwt-decode": "^4.0.0",
    "lodash-es": "^4.17.21",
    "material-icons": "^1.13.14",
    "ng-gallery": "^12.0.0",
    "ng-qrcode": "^21.0.0",
    "ng2-file-upload": "^10.0.0",
    "ngx-window-token": "^7.0.0",
    "ngy-cookie": "^6.0.0",
    "rxjs": "7.8.2",
    "sass": "^1.86.3",
    "snarkdown": "^1.2.2",
    "socket.io-client": "^3.1.0",
    "solidity-browser-compiler": "^1.1.0",
    "tslib": "^2.5.0",
    "typescript": "~5.9.3",
    "zone.js": "~0.15.0"
  },
  "devDependencies": {
    "@angular/language-service": "^21.2.1",
    "@eslint/js": "9.33.0",
    "@types/express-serve-static-core": "^4.17.9",
    "@types/jwt-decode": "^2.2.1",
    "@types/node": "^20.17.19",
    "@types/socket.io-client": "^1.4.33",
    "@vitest/coverage-v8": "^4.1.2",
    "angular-eslint": "^21.3.0",
    "esbuild-visualizer": "^0.7.0",
    "eslint": "^9.33.0",
    "jsdom": "^29.0.1",
    "stylelint": "^16.10.0",
    "stylelint-config-sass-guidelines": "^12.1.0",
    "stylelint-scss": "^6.0.0",
    "typescript-eslint": "^8.42.0",
    "vitest": "^4.1.1"
  },
  "overrides": {
    "lru-cache@^11": "~11.2.7"
  }
}
