← back to Animals
package.json
81 lines
{
"name": "animals",
"version": "0.1.0",
"private": true,
"description": "Compliance-first directory + monetization platform for the entire animal ecosystem: vets, clinics, breeds, breeders, shelters, groomers, trainers. Powers the AnimalsDirectory consumer site, the Vet Site Upgrade SaaS upsell, and a lead-gen funnel.",
"license": "UNLICENSED",
"type": "module",
"scripts": {
"migrate": "node src/scripts/migrate.js",
"seed:breeds": "node src/scripts/seed_breeds.js",
"seed:sources": "node src/scripts/seed_sources.js",
"ingest:vets": "node src/ingest/state_vet_boards.js",
"ingest:osm-ca": "node src/ingest/osm_california.js",
"ingest:osm-state": "node src/ingest/osm_state.js",
"ingest:osm-major": "node src/ingest/osm_state.js --all-major",
"ingest:reddit": "node src/ingest/reddit.js",
"ingest:aaha-ca": "node src/ingest/aaha_california.js",
"enrich:emails": "node src/enrich/extract_emails.js",
"enrich:breed-images": "node src/enrich/wikimedia_breed_images.js",
"enrich:breed-gallery": "node src/enrich/wikimedia_breed_gallery.js",
"enrich:breed-gallery-v2": "node src/enrich/wikimedia_breed_gallery_v2.js",
"enrich:inaturalist": "node src/enrich/inaturalist_breeds.js",
"enrich:dog-pd": "node src/enrich/dog_pd_images.js --species dog",
"enrich:cat-pd": "node src/enrich/dog_pd_images.js --species cat",
"enrich:horse-pd": "node src/enrich/dog_pd_images.js --species horse",
"enrich:all-pd": "node src/enrich/dog_pd_images.js --species all",
"enrich:flickr": "node src/enrich/flickr_breed_images.js",
"enrich:backfill-heros": "node src/enrich/backfill_heros.js",
"enrich:pick-avatars": "node src/enrich/pick_dogpark_avatars.js --species all",
"ingest:github-data": "node src/ingest/github_open_data.js",
"ingest:gdrive-pets": "node src/ingest/gdrive_pet_photos.js",
"ingest:dog-shows-ca": "node src/ingest/dog_shows_ca.js",
"ingest:dog-shows-ca-pw": "node src/ingest/dog_shows_ca_playwright.js",
"debug:loop": "bash src/scripts/debug-loop.sh",
"seed:horse-breeds": "node src/scripts/seed_horse_breeds.js",
"research:traffic": "node src/scripts/research_traffic.js",
"ingest:clinics:aaha": "node src/ingest/aaha_accredited.js",
"ingest:shelters": "node src/ingest/petfinder_shelters.js",
"seed:ca-shelter-events": "node src/scripts/seed_ca_shelter_adoption_events.js",
"ingest:reddit:dry": "DRY=1 LIMIT=10 node src/ingest/reddit.js",
"ingest:nextdoor": "node src/ingest/nextdoor.js",
"audit:websites": "node src/audit/site_audit.js",
"enrich:adsignals": "node src/enrich/ad_signals.js",
"audit:images": "node src/audit/image_health.js",
"audit:mockups": "node src/audit/generate_mockups.js",
"audit:mockups-unique": "node src/audit/unique_mockups.js",
"domains:research": "node src/scripts/research_domains.js",
"newsletter:weekly": "node src/scripts/run_weekly_newsletter.js",
"newsletter:weekly:dry": "node src/scripts/run_weekly_newsletter.js --dry-run --limit 1",
"stats": "node src/scripts/stats.js",
"server": "node src/server/index.js",
"dev": "node --watch src/server/index.js",
"pm2:start": "pm2 start ecosystem.config.js",
"pm2:stop": "pm2 stop ecosystem.config.js",
"pm2:logs": "pm2 logs animals-viewer",
"test:lib": "node --test test/lib/*.test.js"
},
"dependencies": {
"bcryptjs": "^3.0.3",
"cheerio": "^1.0.0",
"compression": "^1.8.1",
"cookie-parser": "^1.4.7",
"csv-parse": "^6.2.1",
"csv-stringify": "^6.7.0",
"directory-core": "file:../directory-core",
"dotenv": "^16.6.1",
"ejs": "^3.1.10",
"express": "^4.21.2",
"helmet": "^8.1.0",
"multer": "^2.1.1",
"openai": "^6.35.0",
"pg": "^8.13.1",
"playwright": "^1.59.1",
"robots-parser": "^3.0.1",
"sharp": "^0.34.5",
"stripe": "^22.1.0",
"undici": "^7.2.0",
"ws": "^8.20.0"
}
}