{ "type": "commonjs", "scripts": { "start-nw": "concurrently --prefix \"{name}\" --names \"S,F,P\" \"npm run start:app\" \"npm run face:daemon\" \"npm run prototype:daemon\"", "start": "concurrently --names \"S,F,P,W\" \"npm run start:app\" \"npm run face:daemon\" \"npm run prototype:daemon\" \"npm run watcher\"", "start:app": "node server.js", "face:daemon": "node tools/runFaceScanDaemon.js --poll-ms 2000 --reset-stale-minutes 30 --stale-check-ms 60000", "face:status": "node tools/faceScanStatus.js", "face:worker": "node tools/runFaceScanWorker.js", "face:enqueue": "node tools/enqueueFaceScanJobs.js", "face:cluster": "node tools/runFaceClustering.js", "prototype:worker": "node tools/runPrototypeWorker.js --persist", "prototype:daemon": "node tools/runPrototypeDaemon.js", "prototype:once": "node tools/runPrototypeDaemon.js --once", "watcher": "cd watcher && ./start1.sh", "geocode:worker": "node tools/runGeocodeWorker.js", "geocode:daemon": "node tools/runGeocodeDaemon.js --poll-ms 2000 --reset-stale-minutes 30 --stale-check-ms 60000" }, "dependencies": { "axios": "^1.13.6", "bcrypt": "^6.0.0", "better-sqlite3": "^12.8.0", "dotenv": "^17.3.1", "exifreader": "^4.37.0", "express": "^5.2.1", "fit-file-parser": "^3.1.3", "jsonwebtoken": "^9.0.3", "knex": "^3.1.0", "mime-types": "^3.0.2", "multer": "^2.2.0", "node-fetch": "^2.7.0", "rbush": "^4.0.1", "sharp": "^0.34.5", "uuid": "^14.0.0", "ws": "^8.21.0", "xml2js": "^0.6.2" }, "devDependencies": { "concurrently": "^10.0.5" } }