Files
Art-gallery/package.json
T
Danila KhodjaefandCursor 48bd17e985 Add curator Influences tool with import wizard, CRUD, and graph.
CSV/JSON/XLSX mapping wizard expands artist-level rows to all paintings, blocks duplicate file/data imports via content and payload hashes, and documents the workflow in influence-import.md.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 18:54:26 +03:00

85 lines
4.7 KiB
JSON

{
"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",
"compression": "^1.8.1",
"connect-pg-simple": "^10.0.0",
"cors": "^2.8.6",
"csv-parse": "^7.0.1",
"dotenv": "^17.4.2",
"express": "^5.2.1",
"express-session": "^1.19.0",
"pg": "^8.21.0",
"sharp": "^0.35.1",
"xlsx": "^0.18.5"
},
"devDependencies": {
"nodemon": "^3.1.14"
}
}