← 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"
  }
}