{
  "name": "hackernews",
  "version": "0.9.0",
  "description": "A hacker news clone built from the ground up to demonstrate React and GraphQL",
  "engines": {
    "node": ">=14.16.0"
  },
  "scripts": {
    "clean": "rm -rf dist && rm -rf ./.next",
    "build": "npm run clean && next build && tsc --project tsconfig-server.json",
    "build:docker": "docker build --tag 'clintonwoo/hackernews-react-graphql:latest' --rm . && docker run --rm -p 80:3000 --name hackernews-react-graphql clintonwoo/hackernews-react-graphql",
    "build:prod": "cross-env NODE_ENV=production npm run build",
    "build:static-website": "rm -rf build/static && cross-env NODE_ENV=production next build && next export -o build/static",
    "debug": "cross-env DEBUG=app:* npm start",
    "debug:all": "cross-env DEBUG=* npm start",
    "debug:inspect": "cross-env DEBUG=app* TS_NODE_COMPILER_OPTIONS={\\\"module\\\":\\\"commonjs\\\"} node --inspect -r ts-node/register server/server.ts --project tsconfig-server.json",
    "debug:inspect-prod": "cross-env DEBUG=app* NODE_ENV=production node --inspect dist/server/server.js",
    "lint": "eslint \"src/**/*.ts?(x)\" --ext .js,.jsx,.ts,.tsx",
    "prettier:check": "prettier --check .",
    "prettier:format": "prettier --write .",
    "test": "jest --runInBand --config jest.config.js",
    "tsc:check": "tsc --noEmit",
    "start": "nodemon",
    "start:prod": "cross-env NODE_ENV=production node dist/server/server.js"
  },
  "author": "Clinton D'Annolfo",
  "license": "Apache-2.0",
  "keywords": [
    "hacker-news",
    "clone",
    "react",
    "graphql"
  ],
  "dependencies": {
    "@apollo/client": "3.5.7",
    "@graphql-tools/utils": "8.6.1",
    "apollo-server-express": "3.6.1",
    "body-parser": "1.19.1",
    "cookie": "0.4.1",
    "cookie-parser": "1.4.6",
    "cross-env": "7.0.3",
    "debug": "4.3.3",
    "dotenv": "12.0.3",
    "express": "4.17.2",
    "express-session": "1.17.2",
    "firebase": "9.6.3",
    "graphql": "16.2.0",
    "graphql-tag": "2.12.6",
    "isomorphic-unfetch": "3.1.0",
    "lru-cache": "6.0.0",
    "next": "12.0.8",
    "passport": "0.5.2",
    "passport-local": "1.0.0",
    "react": "17.0.2",
    "react-apollo": "3.1.5",
    "react-dom": "17.0.2",
    "react-render-html": "0.6.0",
    "url": "0.11.0"
  },
  "devDependencies": {
    "@testing-library/jest-dom": "5.16.1",
    "@testing-library/react": "12.1.2",
    "@types/async": "3.2.12",
    "@types/body-parser": "1.19.2",
    "@types/cookie": "0.4.1",
    "@types/cookie-parser": "1.4.2",
    "@types/debug": "4.1.7",
    "@types/express": "4.17.13",
    "@types/express-session": "1.17.4",
    "@types/isomorphic-fetch": "0.0.35",
    "@types/jest": "27.4.0",
    "@types/lru-cache": "5.1.1",
    "@types/node": "17.0.8",
    "@types/passport": "1.0.7",
    "@types/passport-local": "1.0.34",
    "@types/react": "17.0.38",
    "@typescript-eslint/eslint-plugin": "5.9.1",
    "@typescript-eslint/eslint-plugin-tslint": "5.9.1",
    "@typescript-eslint/parser": "5.9.1",
    "babel-loader": "8.2.3",
    "babel-plugin-transform-define": "2.0.1",
    "eslint": "8.6.0",
    "eslint-config-prettier": "8.3.0",
    "eslint-plugin-import": "2.25.4",
    "eslint-plugin-jsx-a11y": "6.5.1",
    "eslint-plugin-prettier": "4.0.0",
    "eslint-plugin-react": "7.28.0",
    "jest": "27.4.7",
    "mockdate": "3.0.5",
    "nodemon": "2.0.15",
    "postcss": "8.4.5",
    "postcss-preset-env": "7.2.3",
    "prettier": "2.5.1",
    "react-test-renderer": "17.0.2",
    "rimraf": "3.0.2",
    "ts-jest": "27.1.3",
    "ts-node": "10.4.0",
    "tslint-config-prettier": "1.18.0",
    "typescript": "4.5.4"
  }
}
