{ "name": "saas-voc-server", "version": "0.1.0", "private": true, "type": "module", "description": "Independent domestic ecommerce VOC backend template", "engines": { "node": ">=22.13.0 <23" }, "scripts": { "build": "tsc -p tsconfig.json", "dev": "tsx watch src/server.ts", "dev:local": "tsx watch src/local-server.ts", "start": "node dist/src/server.js", "start:local": "tsx src/local-server.ts", "migrate": "tsx scripts/migrate.ts", "bootstrap:parse-rest": "tsx scripts/bootstrap-parse-rest.ts", "verify:parse-rest": "tsx scripts/verify-parse-rest.ts", "import:workbook:parse-rest": "tsx scripts/import-workbook-parse-rest.ts", "sync:competitors:parse-rest": "tsx scripts/sync-parse-rest-competitors.ts", "refresh:competitor-listings": "tsx scripts/refresh-competitor-listings.ts", "sync:jd-listings": "tsx scripts/sync-jd-listings.ts", "sync:jd-listing-reviews": "tsx scripts/sync-jd-listing-reviews.ts", "backfill:voc-products": "tsx scripts/backfill-voc-products-from-listing-sources.ts", "enrich:listing-context": "tsx scripts/enrich-listing-context.ts", "score:jd-listings": "tsx scripts/score-listings.ts", "score:jd-listings:ai": "tsx scripts/score-listings-ai.ts", "score:jd-listings:codex": "tsx scripts/score-listings-codex.ts", "score:jd-voc:codex": "tsx scripts/score-jd-voc-codex.ts", "migrate:listing-current-scores": "tsx scripts/migrate-listing-current-scores.ts", "migrate:jd-voc-slots": "tsx scripts/migrate-jd-voc-score-slots.ts", "verify:listing-rollout": "tsx scripts/verify-listing-rollout.ts", "benchmark:jd-voc-migration": "tsx scripts/benchmark-jd-voc-migration.ts", "benchmark:jd-voc-images": "tsx scripts/benchmark-jd-voc-image-review.ts", "set:listing-cohort": "tsx scripts/set-listing-catalog-cohort.ts", "reset:listing-formal-ai": "tsx scripts/reset-listing-formal-ai-scores.ts", "publish:listing-simulation": "tsx scripts/publish-listing-simulated-scores.ts", "seed:knowledge:parse-rest": "tsx scripts/seed-product-knowledge.ts", "enrich:competitors:local": "tsx scripts/enrich-local-competitors.ts", "import:dataset": "tsx scripts/import-dataset.ts", "test": "tsx --test test/**/*.test.ts", "test:coverage": "tsx --test --experimental-test-coverage test/**/*.test.ts", "typecheck": "tsc -p tsconfig.json --noEmit" ,"deploy:cloud-function": "node scripts/deploy-cloud-function.mjs", "bootstrap:managed-user": "node scripts/bootstrap-managed-user.mjs" }, "dependencies": { "cors": "^2.8.6", "dotenv": "^17.2.3", "exceljs": "^4.4.0", "express": "^5.2.1", "parse-server": "^9.10.0", "pg": "^8.22.0", "zod": "^4.4.3" }, "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.6", "@types/node": "^24.10.0", "@types/pg": "^8.16.0", "tsx": "^4.23.1", "typescript": "^7.0.2" }, "overrides": { "ws": "8.21.0" } }