{
  "dependencies": {
    "@bytemd/plugin-breaks": "1.21.0",
    "@bytemd/plugin-gemoji": "1.21.0",
    "@bytemd/plugin-gfm": "1.21.0",
    "@bytemd/plugin-highlight-ssr": "1.21.0",
    "@bytemd/plugin-math": "1.21.0",
    "@bytemd/plugin-mermaid": "1.21.0",
    "@bytemd/react": "1.21.0",
    "@primer/octicons-react": "19.10.0",
    "@primer/react": "36.22.0",
    "@react-email/components": "0.0.19",
    "@react-email/render": "0.0.15",
    "@resvg/resvg-js": "2.6.2",
    "@upstash/ratelimit": "1.2.1",
    "@upstash/redis": "1.31.6",
    "@vercel/analytics": "1.3.1",
    "async-retry": "1.3.3",
    "bcryptjs": "2.4.3",
    "cookie": "0.6.0",
    "date-fns": "3.6.0",
    "feed": "4.2.2",
    "is-in-subnet": "4.0.1",
    "joi": "17.13.3",
    "next": "14.2.4",
    "next-connect": "0.13.0",
    "next-swr": "0.2.0-canary.0",
    "node-pg-migrate": "7.5.1",
    "nodemailer": "6.9.14",
    "nprogress": "0.2.0",
    "pg": "8.12.0",
    "pino": "9.2.0",
    "react": "18.3.1",
    "react-confetti": "6.1.0",
    "react-dom": "18.3.1",
    "react-icons": "5.2.1",
    "react-rewards": "2.0.4",
    "recharts": "2.12.7",
    "rehype-external-links": "3.0.0",
    "rehype-slug": "6.0.0",
    "satori": "0.10.13",
    "slug": "9.1.0",
    "snakeize": "0.1.0",
    "styled-components": "5.3.11",
    "swr": "2.2.5",
    "vis-network": "9.1.9"
  },
  "devDependencies": {
    "@commitlint/cli": "19.3.0",
    "@commitlint/config-conventional": "19.2.2",
    "@faker-js/faker": "8.4.1",
    "@testing-library/dom": "10.2.0",
    "@testing-library/react": "16.0.0",
    "@vitejs/plugin-react": "4.3.1",
    "concurrently": "8.2.2",
    "cz-conventional-changelog": "3.3.0",
    "dotenv": "16.4.5",
    "dotenv-expand": "11.0.6",
    "eslint": "8.57.0",
    "eslint-config-next": "14.2.4",
    "eslint-config-prettier": "9.1.0",
    "eslint-plugin-jsx-a11y": "6.9.0",
    "eslint-plugin-primer-react": "5.3.0",
    "eslint-plugin-vitest": "0.4.1",
    "eslint-plugin-vitest-globals": "1.5.0",
    "husky": "9.0.11",
    "kill-port": "1.6.1",
    "lint-staged": "15.2.7",
    "parse-link-header": "2.0.0",
    "prettier": "3.3.2",
    "react-email": "2.1.4",
    "set-cookie-parser": "2.6.0",
    "uuid": "9.0.1",
    "vite-tsconfig-paths": "4.3.2",
    "vitest": "1.6.0"
  },
  "scripts": {
    "dev": "npm run services:seed && npm run next && npm run services:stop",
    "next": "next dev",
    "build": "next build",
    "build:local": "npm run services:seed && next build",
    "start": "next start",
    "start:local": "npm run services:seed && next start && npm run services:stop",
    "email": "email dev --dir models/transactional/emails --port 3001",
    "services:seed": "kill-port 3000 && npm run services:up && npm run migration:run && npm run migration:seed",
    "services:up": "npm run docker:compose -- up -d",
    "services:stop": "npm run docker:compose -- stop",
    "services:down": "npm run docker:compose -- down",
    "docker:compose": "docker compose --env-file .env -f infra/docker-compose.development.yml",
    "preconcurrently": "kill-port 3000 && npm run services:up",
    "concurrently": "concurrently -s first -P -k -n next,vitest \"npm run next\" \"vitest {@}\"",
    "postconcurrently": "npm run services:stop",
    "test": "npm run concurrently -- --hide next -- run",
    "test:watch": "vitest watch",
    "test:watch:services": "npm run concurrently -- -- watch",
    "lint": "npm run lint:next && npm run lint:prettier",
    "lint:next": "next lint --max-warnings=0 --dir .",
    "lint:prettier": "prettier --check .",
    "lint:fix": "eslint --fix . && prettier --write .",
    "commit": "cz",
    "migration:create": "node-pg-migrate --migrations-dir ./infra/migrations create",
    "migration:run": "node -r dotenv-expand/config infra/scripts/wait-for-db-connection-ready.js && node-pg-migrate up --envPath ./.env -m infra/migrations/ 2>migrations.log",
    "migration:dry-run": "node-pg-migrate up --dry-run --envPath ./.env -m infra/migrations",
    "migration:seed": "node -r dotenv-expand/config infra/scripts/seed-database.js",
    "prepare": "husky",
    "pre-commit": "lint-staged"
  },
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": [
      "eslint --fix",
      "prettier --write"
    ],
    "*.{json,css,scss,md}": [
      "prettier --write"
    ]
  },
  "engines": {
    "node": "18"
  },
  "name": "tabnews.com.br",
  "description": "Conteúdos para quem vive de programação e tecnologia.",
  "version": "1.0.0",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/filipedeschamps/tabnews.com.br.git"
  },
  "keywords": [
    "news"
  ],
  "author": "Filipe Deschamps",
  "license": "GPL-3.0-only",
  "bugs": {
    "url": "https://github.com/filipedeschamps/tabnews.com.br/issues"
  },
  "homepage": "https://www.tabnews.com.br/",
  "config": {
    "commitizen": {
      "path": "./node_modules/cz-conventional-changelog"
    }
  }
}
