{
  "name": "openproject-frontend",
  "repository": "https://github.com/opf/openproject",
  "license": "GPLv3",
  "version": "0.1.0",
  "private": true,
  "devDependencies": {
    "@angular-devkit/build-angular": "^17.3.4",
    "@angular-eslint/builder": "^17.4.1",
    "@angular-eslint/eslint-plugin": "^17.4.1",
    "@angular-eslint/eslint-plugin-template": "^17.4.1",
    "@angular-eslint/schematics": "17.4.1",
    "@angular-eslint/template-parser": "^17.4.1",
    "@angular/language-service": "17.3.4",
    "@html-eslint/eslint-plugin": "^0.24.1",
    "@html-eslint/parser": "^0.24.1",
    "@jsdevtools/coverage-istanbul-loader": "3.0.5",
    "@types/codemirror": "5.60.5",
    "@types/dom-navigation": "^1.0.3",
    "@types/dragula": "^3.7.0",
    "@types/hammerjs": "^2.0.36",
    "@types/jasmine": "~3.6.0",
    "@types/jquery": "^3.3.33",
    "@types/jqueryui": "^1.12.10",
    "@types/lodash": "^4.17.1",
    "@types/mime": "^2.0.3",
    "@types/mousetrap": "^1.6.3",
    "@types/pako": "^1.0.1",
    "@types/resize-observer-browser": "^0.1.4",
    "@types/urijs": "^1.19.6",
    "@types/uuid": "^8.3.4",
    "@types/webpack-env": "^1.16.0",
    "@typescript-eslint/eslint-plugin": "^7.10.0",
    "@typescript-eslint/parser": "^7.10.0",
    "browserslist": "^4.23.0",
    "eslint": "^8.57.0",
    "eslint-config-airbnb-base": "^15.0.0",
    "eslint-config-airbnb-typescript": "^18.0.0",
    "eslint-plugin-change-detection-strategy": "^0.1.4",
    "eslint-plugin-import": "^2.29.1",
    "eslint-plugin-jasmine": "^4.1.3",
    "eslint-plugin-jsx-a11y": "^6.8.0",
    "eslint-plugin-react": "^7.34.1",
    "eslint-plugin-react-hooks": "^4.6.2",
    "esprint": "^3.1.0",
    "jasmine-core": "~3.6.0",
    "jasmine-spec-reporter": "~5.0.0",
    "karma": "~6.3.16",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage": "~2.0.3",
    "karma-coverage-istanbul-reporter": "~3.0.2",
    "karma-jasmine": "~3.3.0",
    "karma-jasmine-html-reporter": "^1.5.0",
    "karma-spec-reporter": "^0.0.32",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "source-map-explorer": "^2.5.2",
    "theo": "^8.1.5",
    "ts-node": "~8.3.0",
    "typescript": "5.4.5",
    "webpack-bundle-analyzer": "^4.4.2"
  },
  "dependencies": {
    "@angular-builders/custom-webpack": "^17.0.2",
    "@angular/animations": "^17.3.4",
    "@angular/cdk": "^17.3.4",
    "@angular/cli": "^17.3.4",
    "@angular/common": "^17.3.4",
    "@angular/compiler": "^17.3.4",
    "@angular/compiler-cli": "^17.3.4",
    "@angular/core": "^17.3.4",
    "@angular/elements": "^17.3.4",
    "@angular/forms": "^17.3.4",
    "@angular/platform-browser": "^17.3.4",
    "@angular/platform-browser-dynamic": "^17.3.4",
    "@angular/router": "^17.3.4",
    "@appsignal/javascript": "^1.3.28",
    "@appsignal/plugin-breadcrumbs-console": "^1.1.29",
    "@appsignal/plugin-breadcrumbs-network": "^1.1.22",
    "@datorama/akita": "^8.0.1",
    "@floating-ui/dom": "^1.2.1",
    "@fullcalendar/angular": "^6.1.10",
    "@fullcalendar/common": "^5.11.5",
    "@fullcalendar/core": "^6.1.11",
    "@fullcalendar/daygrid": "^6.1.11",
    "@fullcalendar/interaction": "^6.1.11",
    "@fullcalendar/list": "^6.1.11",
    "@fullcalendar/resource": "^6.1.11",
    "@fullcalendar/resource-common": "^5.11.5",
    "@fullcalendar/resource-timeline": "^6.1.11",
    "@fullcalendar/timegrid": "^6.1.11",
    "@github/webauthn-json": "^2.1.1",
    "@hotwired/stimulus": "^3.2.2",
    "@hotwired/turbo": "^8.0.10",
    "@hotwired/turbo-rails": "^8.0.10",
    "@kolkov/ngx-gallery": "^2.0.1",
    "@ng-select/ng-option-highlight": "13.2.0",
    "@ng-select/ng-select": "^13.2.0",
    "@ngneat/content-loader": "^7.0.0",
    "@ngx-formly/core": "^6.1.4",
    "@openproject/octicons-angular": "^19.18.0",
    "@openproject/primer-view-components": "^0.48.0",
    "@openproject/reactivestates": "^3.0.1",
    "@primer/css": "^21.3.3",
    "@types/hotwired__turbo": "^8.0.1",
    "@uirouter/angular": "^13.0.0",
    "@uirouter/core": "^6.1.0",
    "@uirouter/rx": "^1.0.0",
    "@w11k/ngx-componentdestroyed": "^5.0.2",
    "@xeokit/xeokit-bim-viewer": "2.5.1-beta-28",
    "autoprefixer": "^10.4.19",
    "byte-base64": "^1.1.0",
    "chart.js": "4.3.0",
    "chartjs-plugin-datalabels": "^2.2.0",
    "codemirror": "^5.62.0",
    "copy-text-to-clipboard": "^3.0.0",
    "core-js": "^3.2.1",
    "crossvent": "^1.5.4",
    "dom-autoscroller": "^2.2.8",
    "dom-plane": "^1.0.2",
    "dragula": "^3.7.3",
    "expose-loader": "^0.7.5",
    "flatpickr": "^4.6.13",
    "glob": "^9.0.0",
    "hammerjs": "^2.0.8",
    "i18n-js": "^4.3.0",
    "idiomorph": "^0.3.0",
    "jquery": "^3.5.1",
    "jquery-ui": "1.13.2",
    "jquery-ujs": "^1.2.2",
    "jquery.caret": "^0.3.1",
    "json5": "^2.2.2",
    "lodash": "^4.17.21",
    "mark.js": "^8.11.0",
    "mdx-embed": "^1.1.2",
    "mime": "^2.5.2",
    "moment": "^2.30.1",
    "moment-timezone": "^0.5.45",
    "mousetrap": "~1.6.3",
    "ng-dynamic-component": "^10.7.0",
    "ng2-charts": "^4.1.1",
    "ng2-dragula": "^5.1.0",
    "ngx-cookie-service": "^14.0.0",
    "observable-array": "0.0.4",
    "pako": "^2.0.3",
    "qr-creator": "^1.0.0",
    "reflect-metadata": "^0.1.13",
    "rxjs": "^7.8.0",
    "screenfull": "^4.2.1",
    "stimulus-use": "^0.52.2",
    "tablesorter": "^2.31.3",
    "ts-action": "^11.0.0",
    "ts-action-operators": "^9.1.2",
    "turbo_power": "^0.6.2",
    "typedjson": "^1.5.1",
    "urijs": "^1.19.11",
    "uuid": "^8.3.2",
    "zone.js": "~0.14.4"
  },
  "optionalDependencies": {
    "fsevents": "*"
  },
  "scripts": {
    "analyze": "ng build --configuration production --stats-json && webpack-bundle-analyzer -h 0.0.0.0 -p 9999 ../public/assets/frontend/stats.json",
    "build:fast": "OPENPROJECT_ANGULAR_BUILD=fast node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --configuration production",
    "build": "node --max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng build --configuration production --named-chunks --source-map",
    "build:watch": "node --max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng build --watch --named-chunks",
    "tokens:generate": "theo src/app/spot/styles/tokens/tokens.yml --transform web --format sass,json --dest src/app/spot/styles/tokens/dist",
    "serve": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng serve --host ${FE_HOST:-localhost} --port ${FE_PORT:-4200} --public-host http://${PROXY_HOSTNAME:-localhost}:${FE_PORT:-4200}",
    "serve:test": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng serve --host ${FE_HOST:-localhost} --port ${FE_PORT:-4200} --disable-host-check --public-host http://frontend-test:${FE_PORT:-4200}",
    "test": "ng test --watch=false",
    "test:watch": "ng test --watch=true",
    "lint": "esprint check",
    "lint:fix": "esprint check --fix",
    "lint:eslint": "eslint",
    "generate-typings": "tsc -d -p src/tsconfig.app.json"
  },
  "overrides": {
    "@primer/view-components": "npm:@openproject/primer-view-components@^0.48.0"
  }
}
