{ "name": "pigallery2", "version": "3.5.2", "description": "This is a photo gallery optimised for running low resource servers (especially on raspberry pi)", "author": "Patrik J. Braun", "homepage": "https://github.com/bpatrik/pigallery2", "license": "MIT", "main": "./src/backend/index.js", "bin": "./src/backend/index.js", "scripts": { "build": "tsc && gulp build-prod", "build-en": "tsc && gulp build-prod --languages=en", "create-release": "gulp create-release", "build-backend": "tsc", "pretest": "tsc", "test": "ng test && nyc mocha test --exclude test/cypress/**/*.js --exclude folder-reset.js", "test-frontend": "ng test", "test-backend": "tsc && mocha test --exclude test/cypress/**/*.js --exclude folder-reset.js", "coverage": "nyc report --reporter=lcov", "start": "node ./src/backend/index", "run-diagnostics": "node ./src/backend/index --run-diagnostics --Server-Log-level=silly", "run-dev": "ng build --configuration=dev", "build-stats": "ng build --stats-json", "analyze": "webpack-bundle-analyzer dist/en/stats.json", "merge-new-translation": "gulp merge-new-translation", "generate-man": "gulp generate-man", "lint": "ng lint", "start-e2e-server": "node ./test/folder-reset test/e2e && node ./src/backend/index --config-path=test/e2e/config.json --Database-dbFolder=test/e2e --Server-port=8080 --Users.suppressDefUserWarn=true", "cypress:open": "cypress open", "cypress:run": "cypress run", "build-extension-interface": "tsc -p extension/ext-interface.tsconfig.json && tsc -p extension/ext-enums.tsconfig.json" }, "repository": { "type": "git", "url": "git+https://github.com/bpatrik/PiGallery2.git" }, "bugs": { "url": "https://github.com/bpatrik/PiGallery2/issues" }, "dependencies": { "adm-zip": "0.5.16", "archiver": "7.0.1", "bcrypt": "6.0.0", "better-sqlite3": "11.10.0", "cookie-parser": "1.4.7", "cookie-session": "2.1.1", "ejs": "3.1.10", "exif-reader": "2.0.2", "exifr": "7.1.3", "express": "4.21.2", "fluent-ffmpeg": "2.1.3", "image-size": "2.0.2", "locale": "0.1.0", "multer": "2.0.2", "node-geocoder": "4.4.1", "nodemailer": "7.0.5", "openid-client": "5.7.1", "reflect-metadata": "0.2.2", "sharp": "0.34.2", "ts-node-iptc": "1.0.11", "typeconfig": "2.3.4", "typeorm": "0.3.25", "xml2js": "0.6.2" }, "devDependencies": { "@angular-builders/custom-webpack": "19.0.1", "@angular/animations": "19.2.15", "@angular/cli": "19.2.19", "@angular/common": "19.2.15", "@angular/compiler": "19.2.15", "@angular/compiler-cli": "19.2.15", "@angular/core": "19.2.15", "@angular/forms": "19.2.15", "@angular/language-service": "19.2.15", "@angular/localize": "19.2.15", "@angular/platform-browser": "19.2.15", "@angular/platform-browser-dynamic": "19.2.15", "@angular/router": "19.2.15", "@bluehalo/ngx-leaflet": "19.0.0", "@bluehalo/ngx-leaflet-markercluster": "19.1.0", "@ng-icons/core": "31.4.0", "@ng-icons/ionicons": "31.4.0", "@ngx-loading-bar/core": "7.0.0", "@types/adm-zip": "0.5.7", "@types/archiver": "6.0.3", "@types/bcrypt": "6.0.0", "@types/chai": "5.2.2", "@types/cookie-parser": "1.4.9", "@types/cookie-session": "2.0.49", "@types/ejs": "3.1.5", "@types/express": "4.17.25", "@types/fluent-ffmpeg": "2.1.27", "@types/gulp": "4.0.17", "@types/gulp-sourcemaps": "0.0.38", "@types/gulp-zip": "4.0.4", "@types/jasmine": "5.1.8", "@types/leaflet": "1.9.20", "@types/leaflet.markercluster": "1.5.5", "@types/multer": "1.4.12", "@types/node": "22.16.5", "@types/node-geocoder": "4.2.6", "@types/nodemailer": "6.4.17", "@types/openid-client": "3.1.6", "@types/xml2js": "0.4.14", "angular-eslint": "19.8.1", "bootstrap": "5.3.7", "chai": "5.2.1", "chai-http": "5.1.2", "coveralls": "3.1.1", "cypress": "14.5.3", "deep-equal-in-any-order": "2.0.6", "ejs-loader": "0.5.0", "eslint": "9.32.0", "eslint-plugin-chai-friendly": "1.1.0", "gulp": "5.0.1", "gulp-json-editor": "2.6.0", "gulp-sourcemaps": "3.0.0", "gulp-typescript": "5.0.1", "gulp-zip": "5.1.0", "hammerjs": "2.0.8", "jasmine-core": "5.9.0", "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", "leaflet": "1.9.4", "leaflet.markercluster": "1.5.3", "mocha": "11.7.1", "ngx-bootstrap": "19.0.2", "ngx-clipboard": "16.0.0", "ngx-cookie-service": "19.1.2", "ngx-device-detector": "9.0.0", "ngx-markdown": "19.1.1", "ngx-toastr": "19.1.0", "nyc": "17.1.0", "rxjs": "7.8.2", "ts-helpers": "1.1.2", "ts-node": "10.9.2", "typescript-eslint": "8.38.0", "webpack-bundle-analyzer": "4.10.2", "xlf-google-translate": "1.0.1", "zone.js": "0.15.1" }, "optionalDependencies": { "ffmpeg-static": "5.2.0", "ffprobe-static": "3.1.0", "mysql": "2.18.1" }, "overrides": { "beasties": "^0.3.3" }, "notes": { "remove besties": "after angular v20: https://stackoverflow.com/questions/76798190/i-get-error-form-floatinglabel-in-ng-build" }, "engines": { "node": ">=22 <24.0" } }