{ "name": "@openstapps/app", "description": "The generic app tailored to fulfill needs of German universities, written using Ionic Framework.", "version": "3.3.2", "private": true, "license": "GPL-3.0-only", "author": "Karl-Philipp Wulfert ", "contributors": [ "Frank Nagel ", "Jovan Krunić ", "Michel Jonathan Schmitz ", "Rainer Killinger ", "Sebastian Lange ", "Thea Schöbl " ], "scripts": { "analyze": "webpack-bundle-analyzer www/stats.json", "build": "pnpm check-icons && ng build --configuration=production --stats-json && webpack-bundle-analyzer www/stats.json --mode static --report www/bundle-info.html --no-open", "build:analyze": "npm run build:stats && npm run analyze", "build:android": "ionic capacitor build android --no-open && cd android && ./gradlew clean assemble && cd ..", "build:prod": "ng build --configuration=production", "build:stats": "ng build --configuration=production --stats-json", "changelog": "conventional-changelog -p angular -i src/assets/about/CHANGELOG.md -s -r 0", "check-icons": "node scripts/check-icon-correctness.mjs", "chromium:no-cors": "chromium --disable-web-security --user-data-dir=\".browser-data/chromium\"", "chromium:virtual-host": "chromium --host-resolver-rules=\"MAP mobile.app.uni-frankfurt.de:* localhost:8100\" --ignore-certificate-errors", "cypress:open": "cypress open", "cypress:run": "cypress run", "docker:build": "sudo docker run -p 8100:8100 -p 35729:35729 -p 53703:53703 -v $PWD:/app -it registry.gitlab.com/openstapps/app bash -c \"npm install && npm run build\"", "docker:build:android": "sudo docker run -p 8100:8100 -p 35729:35729 -p 53703:53703 -v $PWD:/app -it registry.gitlab.com/openstapps/app bash -c \"npm run build:android\"", "docker:enter": "sudo docker run -p 8100:8100 -p 35729:35729 -p 53703:53703 -v $PWD:/app -it registry.gitlab.com/openstapps/app bash", "docker:pull": "sudo docker pull registry.gitlab.com/openstapps/app", "docker:run:android": "sudo docker run -v $PWD:/app --privileged -v /dev/bus/usb:/dev/bus/usb --net=host -it registry.gitlab.com/openstapps/app bash -c \"npm run run:android\"", "docker:serve": "sudo docker run -p 8100:8100 -p 35729:35729 -p 53703:53703 -v $PWD:/app -it registry.gitlab.com/openstapps/app bash -c \"npm run start:external\"", "e2e": "ng e2e", "format": "prettier . -c", "format:fix": "prettier --write .", "licenses": "license-checker --json > src/assets/about/licenses.json && node ./scripts/accumulate-licenses.mjs && git add src/assets/about/licenses.json", "lint": "ng lint && stylelint \"**/*.scss\"", "lint:fix": "eslint --fix -c .eslintrc.json --ignore-path .eslintignore --ext .ts,.html src/ && stylelint --fix \"**/*.scss\"", "minify-icons": "node scripts/minify-icon-font.mjs", "postinstall": "jetify && echo \"skipping jetify in production mode\"", "preview": "http-server www --p 8101 -o", "push": "git push && git push origin \"v$npm_package_version\"", "resources:ios": "capacitor-assets generate --ios --iconBackgroundColor $(grep -oE \"^@include ion-color\\(primary, #[a-fA-F0-9]{3,6}\" src/theme/colors.scss | grep -oE \"#[a-fA-F0-9]{3,6}\") --splashBackgroundColor $(grep -oE \"^@include ion-color\\(primary, #[a-fA-F0-9]{3,6}\" src/theme/colors.scss | grep -oE \"#[a-fA-F0-9]{3,6}\")", "run:android": "ionic capacitor run android --livereload --external", "start": "ionic serve", "start:external": "ionic serve --external", "start:prod": "ionic serve --prod", "start:virtual-host": "ionic serve --public-host=mobile.app.uni-frankfurt.de --ssl=true --open=false", "test": "ng test --code-coverage", "test:integration": "sh integration-test.sh" }, "dependencies": { "@angular/animations": "17.3.0", "@angular/cdk": "17.3.0", "@angular/common": "17.3.0", "@angular/core": "17.3.0", "@angular/forms": "17.3.0", "@angular/platform-browser": "17.3.0", "@angular/router": "17.3.0", "@awesome-cordova-plugins/calendar": "6.6.0", "@awesome-cordova-plugins/core": "6.6.0", "@capacitor-community/screen-brightness": "6.0.0", "@capacitor/app": "5.0.7", "@capacitor/browser": "5.2.0", "@capacitor/clipboard": "5.0.7", "@capacitor/core": "5.7.3", "@capacitor/device": "5.0.7", "@capacitor/dialog": "5.0.7", "@capacitor/filesystem": "5.2.1", "@capacitor/geolocation": "5.0.7", "@capacitor/haptics": "5.0.7", "@capacitor/keyboard": "5.0.8", "@capacitor/local-notifications": "5.0.7", "@capacitor/network": "5.0.7", "@capacitor/preferences": "5.0.7", "@capacitor/screen-orientation": "6.0.0", "@capacitor/share": "5.0.7", "@capacitor/splash-screen": "5.0.7", "@ionic-native/core": "5.36.0", "@ionic/angular": "7.8.0", "@ionic/storage-angular": "4.0.0", "@maplibre/ngx-maplibre-gl": "17.4.1", "@ngx-translate/core": "15.0.0", "@ngx-translate/http-loader": "8.0.0", "@openid/appauth": "1.3.1", "@openstapps/api": "workspace:*", "@openstapps/collection-utils": "workspace:*", "@openstapps/core": "workspace:*", "@transistorsoft/capacitor-background-fetch": "5.2.0", "@types/dom-view-transitions": "1.0.4", "capacitor-secure-storage-plugin": "0.9.0", "cordova-plugin-calendar": "5.1.6", "date-fns": "3.6.0", "deepmerge": "4.3.1", "form-data": "4.0.0", "geojson": "0.5.0", "ionic-appauth": "0.9.0", "jsonpath-plus": "6.0.1", "maplibre-gl": "4.0.2", "material-symbols": "0.17.1", "moment": "2.30.1", "ngx-date-fns": "11.0.0", "ngx-logger": "5.0.12", "ngx-markdown": "17.1.1", "ngx-moment": "6.0.2", "opening_hours": "3.8.0", "pmtiles": "3.0.3", "rxjs": "7.8.1", "semver": "7.6.0", "swiper": "8.4.5", "tslib": "2.6.2", "zone.js": "0.14.4" }, "devDependencies": { "@angular-devkit/architect": "0.1703.0", "@angular-devkit/build-angular": "17.3.0", "@angular-devkit/core": "17.3.0", "@angular-devkit/schematics": "17.3.0", "@angular-eslint/builder": "17.3.0", "@angular-eslint/eslint-plugin": "17.3.0", "@angular-eslint/eslint-plugin-template": "17.3.0", "@angular-eslint/schematics": "17.3.0", "@angular-eslint/template-parser": "17.3.0", "@angular/cli": "17.3.0", "@angular/compiler": "17.3.0", "@angular/compiler-cli": "17.3.0", "@angular/language-server": "17.3.0", "@angular/language-service": "17.3.0", "@angular/platform-browser-dynamic": "17.3.0", "@capacitor/android": "5.7.3", "@capacitor/assets": "3.0.4", "@capacitor/cli": "5.7.3", "@capacitor/ios": "5.7.3", "@compodoc/compodoc": "1.1.23", "@cypress/schematic": "2.5.1", "@ionic/angular-toolkit": "11.0.1", "@ionic/cli": "7.2.0", "@openstapps/prettier-config": "workspace:*", "@openstapps/tsconfig": "workspace:*", "@types/fontkit": "2.0.7", "@types/geojson": "1.0.6", "@types/glob": "8.1.0", "@types/jasmine": "5.1.4", "@types/jasminewd2": "2.0.13", "@types/jsonpath": "0.2.0", "@types/karma": "6.3.8", "@types/karma-coverage": "2.0.3", "@types/karma-jasmine": "4.0.5", "@types/node": "18.15.3", "@types/semver": "7.5.8", "@typescript-eslint/eslint-plugin": "7.2.0", "@typescript-eslint/parser": "7.2.0", "cordova-res": "0.15.4", "cypress": "13.7.0", "eslint": "8.57.0", "eslint-plugin-jsdoc": "48.2.1", "eslint-plugin-prettier": "5.1.3", "eslint-plugin-unicorn": "51.0.1", "fast-deep-equal": "3.1.3", "fontkit": "2.0.2", "glob": "10.3.10", "http-server": "14.1.1", "is-docker": "2.2.1", "jasmine-core": "5.1.2", "jasmine-spec-reporter": "7.0.0", "jetifier": "2.0.0", "junit-report-merger": "6.0.3", "karma": "6.4.3", "karma-chrome-launcher": "3.2.0", "karma-coverage": "2.2.1", "karma-jasmine": "5.1.0", "karma-junit-reporter": "2.0.1", "karma-mocha-reporter": "2.2.5", "license-checker": "25.0.1", "stylelint": "16.3.1", "stylelint-config-clean-order": "5.4.1", "stylelint-config-prettier-scss": "1.0.0", "stylelint-config-recommended-scss": "14.0.0", "stylelint-config-standard-scss": "13.0.0", "surge": "0.23.1", "ts-node": "10.9.2", "typescript": "5.4.2", "webpack-bundle-analyzer": "4.10.1" }, "cordova": { "plugins": {}, "platforms": [ "ios", "browser", "android" ] } }