{ "name": "gallery", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "migrate": "node server/migrate.js", "migrate:thumbnails": "node -e \"require('./server/db').query(require('fs').readFileSync('./db/migrate-thumbnails.sql','utf8')).then(()=>{console.log('OK');process.exit(0);}).catch(e=>{console.error(e);process.exit(1);})\"", "seed": "node scripts/seed-wikipedia.js", "fetch-images": "node scripts/fetch-missing-images.js", "search-missing-paintings": "node scripts/fetch-missing-images.js", "fetch-artist-images": "node scripts/fetch-artist-images.js", "fetch-artist-bios": "node scripts/fetch-artist-bios.js", "sync-image-paths": "node scripts/sync-image-paths.js", "regenerate-thumbnails": "node scripts/regenerate-thumbnails.js", "audit-painting-images": "node scripts/audit-painting-images.js", "expand-catalog": "node scripts/expand-paintings.js", "update-influences": "node scripts/update-influences.js", "migrate:influence-sources": "node scripts/migrate-influence-sources.js", "migrate:checkup-flags": "node scripts/migrate-checkup-flags.js", "migrate:artist-checkup-flags": "node scripts/migrate-artist-checkup-flags.js", "migrate:painting-annotations": "node scripts/migrate-painting-annotations.js", "migrate:artist-palette": "node scripts/migrate-artist-palette.js", "import-painter-palette": "node scripts/import-painter-palette.js", "analyze-painter-palette": "node scripts/analyze-painter-palette.js", "export-paintings": "node scripts/export-paintings-csv.js", "update-painting-annotations": "node scripts/update-painting-annotations.js", "find-duplicates": "node scripts/find-duplicate-paintings.js", "audit-influence-duplicates": "node scripts/audit-influence-duplicates.js", "discover-influences": "node scripts/update-influences.js --discover-only", "build": "npm run build --prefix client", "start": "node server/index.js", "start:prod": "npm run build && node server/index.js", "server": "node server/index.js", "dev:web": "node scripts/dev-web.js", "dev:server": "nodemon server/index.js", "dev:client": "npm run dev --prefix client", "docker:publish": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/docker/build-push-lan.ps1", "docker:publish:push-only": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/docker/build-push-lan.ps1 -SkipBuild", "db:split-databases": "node scripts/split-dev-prod-databases.js", "db:sync-from-prod": "node scripts/sync-prod-to-dev.js", "db:backup": "node scripts/backup-db-data.js", "db:backup:prod": "node scripts/backup-db-data.js --prod", "db:restore": "node scripts/restore-db-data.js", "db:restore:prod": "node scripts/restore-db-data.js --prod", "images:sync-to-prod": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/sync-images-to-prod.ps1", "images:sync-from-prod": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/sync-images-from-prod.ps1", "dev": "node server/index.js", "setup": "node server/migrate.js && node scripts/seed-wikipedia.js" }, "keywords": [], "author": "", "license": "ISC", "type": "commonjs", "dependencies": { "bcryptjs": "^3.0.3", "connect-pg-simple": "^10.0.0", "cors": "^2.8.6", "dotenv": "^17.4.2", "express": "^5.2.1", "express-session": "^1.19.0", "pg": "^8.21.0", "sharp": "^0.35.1" }, "devDependencies": { "nodemon": "^3.1.14" } }