Files
openproject/frontend/package.json
2026-06-01 08:40:50 +02:00

196 lines
7.0 KiB
JSON

{
"name": "openproject-frontend",
"repository": "https://github.com/opf/openproject",
"license": "GPLv3",
"version": "0.1.0",
"private": true,
"devDependencies": {
"@angular-builders/custom-esbuild": "^21.0.3",
"@angular-devkit/build-angular": "^21.2.12",
"@angular/language-service": "21.2.14",
"@eslint/js": "^9.39.2",
"@html-eslint/eslint-plugin": "^0.60.0",
"@html-eslint/parser": "^0.60.0",
"@stylistic/eslint-plugin": "^5.10.0",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/codemirror": "5.60.17",
"@types/dom-navigation": "^1.0.7",
"@types/dragula": "^3.7.5",
"@types/flot": "^0.0.36",
"@types/hammerjs": "^2.0.36",
"@types/hotwired__turbo": "^8.0.10",
"@types/jquery": "^4.0.0",
"@types/jquery-migrate": "^3.3.3",
"@types/lodash": "^4.17.24",
"@types/mousetrap": "^1.6.3",
"@types/pako": "^2.0.4",
"@types/rails__request.js": "^0.0.1",
"@types/react": "^19.2.15",
"@types/react-dom": "^19.2.3",
"@types/resize-observer-browser": "^0.1.4",
"@types/urijs": "^1.19.26",
"@types/uuid": "^11.0.0",
"@types/webpack-env": "^1.16.0",
"@typescript-eslint/eslint-plugin": "8.59.4",
"@typescript-eslint/parser": "8.59.4",
"@vitest/browser-playwright": "^4.1.7",
"@vitest/coverage-v8": "^4.1.7",
"@vitest/eslint-plugin": "^1.6.18",
"browserslist": "^4.28.1",
"eslint": "^9.39.2",
"angular-eslint": "^21.4.0",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"globals": "^17.5.0",
"jsdom": "^29.1.1",
"playwright": "^1.59.1",
"source-map-explorer": "^2.5.2",
"ts-node": "~10.9.2",
"typescript": "^5.9.3",
"typescript-eslint": "^8.59.4",
"vitest": "^4.1.7",
"wscat": "^6.1.0"
},
"dependencies": {
"@angular/animations": "^21.2.14",
"@angular/cdk": "^21.2.12",
"@angular/cli": "^21.2.12",
"@angular/common": "^21.2.14",
"@angular/compiler": "^21.2.14",
"@angular/compiler-cli": "^21.2.14",
"@angular/core": "^21.2.14",
"@angular/elements": "^21.2.14",
"@angular/forms": "^21.2.14",
"@angular/platform-browser": "^21.2.14",
"@angular/platform-browser-dynamic": "^21.2.14",
"@angular/router": "^21.2.14",
"@appsignal/javascript": "^1.6.1",
"@appsignal/plugin-breadcrumbs-console": "^1.1.37",
"@appsignal/plugin-breadcrumbs-network": "^1.1.24",
"@blocknote/core": "^0.44.2",
"@blocknote/mantine": "^0.44.2",
"@blocknote/react": "^0.44.2",
"@braintree/sanitize-url": "^7.1.1",
"@datorama/akita": "^8.0.1",
"@floating-ui/dom": "^1.2.1",
"@fullcalendar/angular": "^6.1.20",
"@fullcalendar/common": "^5.11.5",
"@fullcalendar/core": "^6.1.20",
"@fullcalendar/daygrid": "^6.1.20",
"@fullcalendar/interaction": "^6.1.20",
"@fullcalendar/list": "^6.1.20",
"@fullcalendar/moment": "^6.1.20",
"@fullcalendar/moment-timezone": "^6.1.20",
"@fullcalendar/multimonth": "^6.1.20",
"@fullcalendar/resource": "^6.1.20",
"@fullcalendar/resource-common": "^5.11.5",
"@fullcalendar/resource-timeline": "^6.1.20",
"@fullcalendar/timegrid": "^6.1.20",
"@github/webauthn-json": "^2.1.1",
"@hocuspocus/provider": "^3.4.4",
"@hotwired/stimulus": "^3.2.2",
"@hotwired/turbo": "^8.0.23",
"@hotwired/turbo-rails": "^8.0.23",
"@knowledgecode/delegate": "^0.10.3",
"@kolkov/ngx-gallery": "^2.0.1",
"@mantine/core": "^9.0.1",
"@mantine/hooks": "^9.0.1",
"@mantine/utils": "^6.0.22",
"@ng-select/ng-option-highlight": "^21.8.2",
"@ng-select/ng-select": "^21.8.0",
"@ngneat/content-loader": "^7.0.0",
"@openproject/octicons-angular": "^19.35.0",
"@openproject/primer-view-components": "^0.86.2",
"@openproject/reactivestates": "^3.0.1",
"@primer/css": "^22.1.0",
"@primer/live-region-element": "^0.8.0",
"@primer/primitives": "^11.5.1",
"@primer/view-components": "npm:@openproject/primer-view-components@^0.86.2",
"@rails/request.js": "^0.0.13",
"@stimulus-components/auto-submit": "^6.0.0",
"@stimulus-components/reveal": "^5.0.0",
"@tiptap/extensions": "^3.20.0",
"@uirouter/angular": "^21.0.0",
"@uirouter/core": "^6.1.2",
"@uirouter/rx": "^1.0.0",
"@w11k/ngx-componentdestroyed": "^5.0.2",
"@xeokit/xeokit-bim-viewer": "2.7.1",
"autoprefixer": "^10.4.27",
"byte-base64": "^1.1.0",
"chart.js": "4.5.1",
"chartjs-adapter-luxon": "^1.3.1",
"chartjs-plugin-datalabels": "^2.2.0",
"codemirror": "^5.65.21",
"copy-text-to-clipboard": "^3.2.2",
"core-js": "^3.49.0",
"crossvent": "^1.5.4",
"dom-autoscroller": "^2.2.8",
"dom-plane": "^1.0.2",
"dragula": "^3.7.3",
"es6-slide-up-down": "^1.0.0",
"flatpickr": "^4.6.13",
"glob": "^13.0.0",
"hammerjs": "^2.0.8",
"i18n-js": "^4.3.0",
"idiomorph": "^0.7.4",
"jquery": "^4.0.0",
"jquery-migrate": "^4.0.2",
"json5": "^2.2.2",
"lit-html": "^3.3.2",
"lodash": "^4.18.1",
"luxon": "^3.7.2",
"mdx-embed": "^1.1.2",
"mime": "^4.1.0",
"moment": "^2.30.1",
"moment-timezone": "^0.6.0",
"mousetrap": "~1.6.3",
"ng-dynamic-component": "^10.7.0",
"ng2-charts": "^10.0.0",
"ng2-dragula": "^6.0.0",
"ngx-cookie-service": "^21.1.0",
"observable-array": "0.0.4",
"op-blocknote-extensions": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.26/op-blocknote-extensions-0.0.26.tgz",
"openapi-explorer": "^2.4.793",
"pako": "^2.0.3",
"qr-creator": "^1.0.0",
"react": "^19.2.6",
"react-dom": "^19.2.6",
"reflect-metadata": "^0.2.2",
"rxjs": "^7.8.0",
"screenfull": "^6.0.2",
"stimulus-use": "^0.52.2",
"tablesorter": "^2.31.3",
"tiny-invariant": "^1.3.3",
"ts-action": "^11.0.0",
"ts-action-operators": "^9.1.2",
"turbo_power": "^0.7.1",
"typedjson": "^1.5.1",
"urijs": "^1.19.11",
"uuid": "^14.0.0"
},
"optionalDependencies": {
"fsevents": "*"
},
"browser": {
"fs": false,
"path": false,
"os": false
},
"scripts": {
"analyze": "ng build --configuration production --stats-json && npx esbuild-visualizer --metadata ../public/assets/frontend/stats.json",
"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",
"ci:plugins:register_frontend": "node ci-plugins-generator.js",
"serve": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng serve --host ${FE_HOST:-localhost} --port ${FE_PORT:-4200} --serve-path ${RAILS_RELATIVE_URL_ROOT}/assets/frontend",
"test": "ng test --watch=false",
"test:watch": "ng test --watch=true",
"lint": "ng lint",
"lint:fix": "ng lint --fix",
"generate-typings": "tsc -d -p tsconfig.app.json"
}
}