{ "name": "gallery", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "dev:web": "node scripts/dev-web.js", "dev:server": "nodemon server/index.js", "dev:client": "npm run dev --prefix client", "dev:start": "node server/index.js", "dev:migrate": "node server/migrate.js", "dev:setup": "node server/migrate.js && node scripts/seed-wikipedia.js", "dev:seed": "node scripts/seed-wikipedia.js", "dev:fetch-images": "node scripts/fetch-missing-images.js", "dev:search-missing-paintings": "node scripts/fetch-missing-images.js", "dev:fetch-artist-images": "node scripts/fetch-artist-images.js", "dev:fetch-artist-bios": "node scripts/fetch-artist-bios.js", "dev:sync-image-paths": "node scripts/sync-image-paths.js", "dev:regenerate-thumbnails": "node scripts/regenerate-thumbnails.js", "dev:regenerate-portrait-thumbs": "node scripts/regenerate-portrait-thumbs.js", "dev:audit-painting-images": "node scripts/audit-painting-images.js", "dev:expand-catalog": "node scripts/expand-paintings.js", "dev:update-influences": "node scripts/update-influences.js", "dev:discover-influences": "node scripts/update-influences.js --discover-only", "dev: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);})\"", "dev:migrate:influence-sources": "node scripts/migrate-influence-sources.js", "dev:migrate:checkup-flags": "node scripts/migrate-checkup-flags.js", "dev:migrate:artist-checkup-flags": "node scripts/migrate-artist-checkup-flags.js", "dev:migrate:painting-annotations": "node scripts/migrate-painting-annotations.js", "dev:migrate:artist-palette": "node scripts/migrate-artist-palette.js", "dev:migrate:search": "node scripts/migrate-search.js", "dev:migrate:sync-timestamps": "node scripts/migrate-sync-timestamps.js", "dev:migrate:i18n": "node scripts/migrate-i18n.js", "dev:fetch-artist-bios-ru": "node scripts/fetch-artist-bios-ru.js", "dev:import-translations": "node scripts/import-translations.js", "dev:backfill-updated-at": "node scripts/backfill-updated-at.js", "dev:import-painter-palette": "node scripts/import-painter-palette.js", "dev:analyze-painter-palette": "node scripts/analyze-painter-palette.js", "dev:export-paintings": "node scripts/export-paintings-csv.js", "dev:update-painting-annotations": "node scripts/update-painting-annotations.js", "dev:find-duplicates": "node scripts/find-duplicate-paintings.js", "dev:audit-influence-duplicates": "node scripts/audit-influence-duplicates.js", "dev:db:backup": "node scripts/backup-db-data.js", "dev:db:restore": "node scripts/restore-db-data.js", "prod:build": "npm run build --prefix client", "prod:start": "npm run prod:build && node server/index.js", "prod:docker:publish": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/docker/build-push-lan.ps1", "prod:docker:push-only": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/docker/build-push-lan.ps1 -SkipBuild", "prod:db:backup": "node scripts/backup-db-data.js --prod", "devtoprod:db:restore": "node scripts/restore-db-data.js --prod", "devtoprod:thumbnails": "node scripts/run-devtoprod-thumbnails.js", "devtoprod:images": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/sync-images-to-prod.ps1", "devtoprod:release": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/deploy-dev-to-prod.ps1", "prodto:dev:db": "node scripts/sync-prod-to-dev.js", "prodto:dev:images": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/sync-images-from-prod.ps1", "harmonize:schema": "node scripts/harmonize-schema.js", "harmonize:db": "node scripts/harmonize-db.js", "harmonize:images": "node scripts/harmonize-images.js", "harmonize:backfill-updated-at": "node scripts/backfill-updated-at.js --prod", "harmonize:dry-run": "node scripts/harmonize-db.js --dry-run && node scripts/harmonize-images.js --dry-run", "harmonize": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/harmonize.ps1", "infra:db:split-dev-prod": "node scripts/split-dev-prod-databases.js" }, "keywords": [], "author": "", "license": "ISC", "type": "commonjs", "dependencies": { "bcryptjs": "^3.0.3", "connect-pg-simple": "^10.0.0", "compression": "^1.8.1", "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" } }