{ "name": "booklore", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "dev": "ng serve --open --watch --configuration development", "watch": "ng build --watch --configuration development", "test": "ng test", "lint": "ng lint" }, "private": true, "dependencies": { "@angular/animations": "^20.1.6", "@angular/common": "^20.1.6", "@angular/compiler": "^20.1.6", "@angular/core": "^20.1.6", "@angular/forms": "^20.1.6", "@angular/platform-browser": "^20.1.6", "@angular/platform-browser-dynamic": "^20.1.6", "@angular/router": "^20.1.6", "@iharbeck/ngx-virtual-scroller": "^19.0.1", "@primeng/themes": "^20.0.1", "@stomp/rx-stomp": "^2.0.1", "@stomp/stompjs": "^7.1.1", "@tailwindcss/postcss": "^4.1.8", "@tweenjs/tween.js": "^25.0.0", "angular-oauth2-oidc": "^20.0.0", "chart.js": "^4.5.0", "chartjs-chart-matrix": "^3.0.0", "chartjs-plugin-datalabels": "^2.2.0", "epubjs": "^0.3.93", "jwt-decode": "^4.0.0", "ng-lazyload-image": "^9.1.3", "ng2-charts": "^8.0.0", "ngx-extended-pdf-viewer": "^23.3.1", "ngx-infinite-scroll": "^20.0.0", "primeicons": "^7.0.0", "primeng": "^20.0.1", "quill": "^2.0.3", "rxjs": "^7.8.2", "showdown": "^2.1.0", "tailwindcss-primeui": "^0.6.1", "tslib": "^2.8.1", "ws": "^8.18.2", "zone.js": "^0.15.1", "@angular/cdk": "^20.2.2" }, "devDependencies": { "@angular-devkit/build-angular": "^20.1.5", "@angular/cli": "^20.1.5", "@angular/compiler-cli": "^20.1.6", "@tailwindcss/typography": "^0.5.16", "@types/jasmine": "^5.1.8", "@types/showdown": "^2.0.6", "angular-eslint": "^20.1.1", "autoprefixer": "^10.4.21", "eslint": "^9.33.0", "jasmine-core": "^5.7.1", "karma": "^6.4.4", "karma-chrome-launcher": "^3.2.0", "karma-coverage": "^2.2.1", "karma-jasmine": "^5.1.0", "karma-jasmine-html-reporter": "^2.1.0", "tailwindcss": "3.4.17", "typescript": "~5.8.2", "typescript-eslint": "^8.39.0" } }