{
  "name": "egghead-io-nextjs",
  "version": "0.1.0",
  "engines": {
    "node": "18.x"
  },
  "resolutions": {
    "autoprefixer": "10.4.5"
  },
  "private": true,
  "scripts": {
    "dev": "next dev",
    "dev:concurrent": "concurrently \"npm:dev:*\"",
    "dev:inngest": "pnpx inngest-cli@latest dev --no-discovery -u http://egghead.af:3000/api/inngest",
    "dev-build": "NODE_ENV=production next build",
    "sanity": "cd studio && sanity dev",
    "sanity:deploy": "cd studio && sanity deploy",
    "prebuild": "pnpm make-tags-sitemap",
    "build": "pnpm dev-build",
    "postbuild": "NODE_ENV=production next-sitemap",
    "build:style": "tailwind build src/styles/index.css -o src/styles/output.css",
    "start": "NODE_ENV=production next start",
    "test": "jest --watch",
    "test:ci": "jest --ci --reporters='default' --reporters='./jest/json-reporter'",
    "e2e": "start-test dev 3000 cy:open",
    "cy:open": "cypress open",
    "pree2e": "rm -rf .nyc_output coverage .next || true",
    "check-coverage-limits": "nyc report --reporter=text-summary --check-coverage --statements 100",
    "format": "pnpm format:index && pnpm format:src",
    "format:index": "prettier --write \"*.{js,ts,json,md}\"",
    "format:src": "prettier --write \"src/**/*.{js,ts,tsx,md,mdx}\"",
    "analyze": "ANALYZE=true next build",
    "make-tags-sitemap": "NODE_ENV=production node tags-sitemap.js",
    "lint": "eslint --ext ts --ext tsx --fix src/",
    "prepare": "husky install",
    "preinstall": "npx only-allow pnpm",
    "postinstall": "prisma generate"
  },
  "dependencies": {
    "@asbjorn/eslint-plugin-groq": "^1.0.0",
    "@babel/plugin-transform-react-pure-annotations": "^7.14.5",
    "@babel/runtime": "^7.24.7",
    "@casl/ability": "^5.4.3",
    "@code-hike/mdx": "^0.9.0",
    "@dnd-kit/core": "^6.0.8",
    "@dnd-kit/sortable": "^7.0.2",
    "@headlessui/react": "^1.7.14",
    "@heroicons/react": "^1.0.4",
    "@hookform/resolvers": "^3.3.1",
    "@mdx-js/mdx": "2.3.0",
    "@mdx-js/react": "2.3.0",
    "@mux/mux-node": "^7.3.0",
    "@mux/mux-player": "^3.0.0",
    "@mux/mux-player-react": "^2.2.0",
    "@mux/playback-core": "^0.26.0",
    "@portabletext/react": "^3.0.7",
    "@prisma/client": "4.7.0",
    "@radix-ui/react-accordion": "^1.0.0",
    "@radix-ui/react-alert-dialog": "^0.1.7",
    "@radix-ui/react-collection": "^1.0.3",
    "@radix-ui/react-compose-refs": "^1.0.1",
    "@radix-ui/react-context": "^1.0.1",
    "@radix-ui/react-dialog": "^0.1.7",
    "@radix-ui/react-icons": "^1.3.0",
    "@radix-ui/react-label": "^2.0.2",
    "@radix-ui/react-primitive": "^1.0.3",
    "@radix-ui/react-progress": "^1.0.3",
    "@radix-ui/react-select": "^1.2.2",
    "@radix-ui/react-slot": "^1.0.2",
    "@radix-ui/react-switch": "^1.0.1",
    "@radix-ui/react-tooltip": "^1.0.6",
    "@reach/alert-dialog": "^0.16.2",
    "@reach/auto-id": "^0.18.0",
    "@reach/dialog": "^0.16.0",
    "@reach/listbox": "^0.16.1",
    "@reach/menu-button": "^0.16.1",
    "@reach/tabs": "^0.16.1",
    "@reach/utils": "^0.16.0",
    "@reach/visually-hidden": "^0.16.0",
    "@react-email/components": "^0.0.16",
    "@react-email/markdown": "^0.0.9",
    "@react-email/render": "^0.0.12",
    "@sanity/client": "^6.7.0",
    "@sanity/image-url": "^1.0.2",
    "@sanity/vision": "^3.18.1",
    "@sanity/webhook": "^2.0.0",
    "@sindresorhus/slugify": "^2.2.1",
    "@skillrecordings/player": "^1.1.8",
    "@skillrecordings/time": "^0.0.13",
    "@slack/web-api": "^7.0.2",
    "@stripe/react-stripe-js": "^1.4.1",
    "@stripe/stripe-js": "^1.17.1",
    "@supabase/supabase-js": "^1.21.0",
    "@tailwindcss/forms": "^0.5.6",
    "@tailwindcss/line-clamp": "^0.3.0",
    "@tailwindcss/typography": "^0.5.0",
    "@tanem/react-nprogress": "^3.0.77",
    "@tanstack/react-query": "^4.35.7",
    "@tanstack/react-query-devtools": "^4.3.5",
    "@testing-library/react-hooks": "^8.0.0",
    "@trpc/client": "^10.38.5",
    "@trpc/react-query": "^10.38.5",
    "@trpc/server": "^10.38.5",
    "@typeform/embed-react": "^2.11.0",
    "@upstash/ratelimit": "^1.0.3",
    "@upstash/redis": "^1.29.0",
    "@vercel/edge-config": "^0.2.1",
    "@vercel/kv": "2.0.0",
    "@vercel/og": "^0.6.2",
    "@videojs/http-streaming": "^2.9.3",
    "@xstate/react": "^3.2.2",
    "airtable": "^0.11.1",
    "algoliasearch": "^4.22.1",
    "aws-sdk": "^2.1089.0",
    "bitmovin-player": "^8.66.0",
    "browser-cookies": "^1.2.0",
    "class-variance-authority": "^0.7.0",
    "classnames": "^2.3.1",
    "client-oauth2": "^4.3.3",
    "clsx": "^2.0.0",
    "cookie": "^0.4.1",
    "cors": "^2.8.5",
    "cueplayer-react": "^0.3.23",
    "customerio-node": "^4.1.0",
    "date-fns": "^2.23.0",
    "discord.js": "^12.5.3",
    "facepaint": "^1.2.1",
    "feed": "^4.2.2",
    "file-extension": "^4.0.5",
    "focus-visible": "^5.2.0",
    "formik": "^2.2.9",
    "framer-motion": "^4.1.17",
    "friendly-time": "^1.1.1",
    "googleapis": "^133.0.0",
    "got": "^11.8.5",
    "graphql": "^15.5.1",
    "graphql-request": "^3.5.0",
    "graphql-tag": "^2.12.5",
    "groq": "^2.15.0",
    "gsap": "^3.7.1",
    "highlight.js": "^11.10.0",
    "hls.js": "^1.0.9",
    "honeycomb-beeline": "^2.7.4",
    "humanize-list": "^1.0.1",
    "inngest": "^3.6.0",
    "instantsearch.css": "^8.5.1",
    "isomorphic-fetch": "^3.0.0",
    "jotai": "^1.3.2",
    "js-cookie": "^3.0.0",
    "libhoney": "2.3.0",
    "liquidjs": "^10.10.2",
    "load-egghead-notes-mdx-url": "^0.1.1",
    "load-script": "^1.0.0",
    "lodash": "^4.17.21",
    "logrocket": "^2.0.0",
    "lucide-react": "^0.274.0",
    "mdast-util-to-markdown": "^0.6.5",
    "mdx-bundler": "9.2.1",
    "micro": "^9.3.4",
    "mime-types": "^2.1.35",
    "mixpanel": "^0.16.0",
    "mixpanel-browser": "^2.41.0",
    "mysql2": "^3.11.0",
    "nanoid": "^5.0.7",
    "next": "14.2.4",
    "next-compose-plugins": "^2.2.1",
    "next-images": "^1.8.1",
    "next-mdx-remote": "4.4.1",
    "next-sanity": "^9.3.10",
    "next-seo": "^4.26.0",
    "next-svgr": "^0.0.2",
    "next-themes": "^0.2.1",
    "next-transpile-modules": "^8.0.0",
    "nextjs-sitemap-generator": "^1.3.1",
    "partykit": "^0.0.35",
    "partysocket": "^0.0.14",
    "pg": "^8.12.0",
    "pluralize": "^8.0.0",
    "posthog-js": "^1.85.2",
    "prism-react-renderer": "^1.2.1",
    "prisma": "4.7.0",
    "qs": "^6.10.5",
    "query-string": "^7.0.1",
    "react": "18.3.1",
    "react-countdown": "^2.3.2",
    "react-dom": "18.3.1",
    "react-error-boundary": "^3.1.3",
    "react-facebook-pixel": "^1.0.4",
    "react-hook-form": "^7.45.4",
    "react-hot-toast": "^2.1.0",
    "react-icons": "^4.10.1",
    "react-instantsearch": "^7.7.0",
    "react-markdown": "^8.0.7",
    "react-refractor": "^2.1.7",
    "react-scroll": "^1.8.9",
    "react-scroll-tracker": "^1.7.0",
    "react-syntax-highlighter": "^15.5.0",
    "react-textfit": "^1.1.1",
    "react-twitter-embed": "^3.0.3",
    "react-use": "^17.2.4",
    "react-use-clipboard": "1.0.7",
    "react-wrap-balancer": "^1.0.0",
    "reading-time": "^1.4.0",
    "refractor": "^4.8.1",
    "rehype-highlight": "^7.0.0",
    "rehype-raw": "^6.1.1",
    "rehype-shiki": "^0.0.9",
    "remark-code-titles": "^0.1.2",
    "remark-footnotes": "^2.0.0",
    "remark-gfm": "^3.0.1",
    "remark-slug": "^6.1.0",
    "remove-markdown": "^0.3.0",
    "rss": "^1.2.2",
    "sanity": "^3.18.1",
    "sanity-plugin-markdown": "^4.1.0",
    "sharp": "^0.32.4",
    "shiki": "^0.14.4",
    "simplebar-react": "^2.3.5",
    "slugify": "^1.6.0",
    "speakingurl": "^14.0.1",
    "stripe": "^9.8.0",
    "superjson": "1.11.0",
    "swr": "^0.5.5",
    "tailwind-merge": "^1.12.0",
    "tailwindcss": "^3.4.1",
    "tincanjs": "^0.50.0",
    "tiny-invariant": "^1.2.0",
    "title": "^3.4.3",
    "ts-toolbelt": "^9.6.0",
    "typesense": "^1.8.2",
    "typesense-instantsearch-adapter": "^2.8.0",
    "unified": "^10.1.2",
    "unist-util-visit": "5.0.0",
    "use-fit-text": "^2.4.0",
    "uuid": "^8.3.2",
    "xstate": "^4.23.1",
    "yaml": "2.3.2",
    "yup": "^0.32.9",
    "zod": "3.19.1"
  },
  "devDependencies": {
    "@47ng/check-env": "^2.0.2",
    "@babel/core": "^7.15.0",
    "@babel/generator": "^7.15.0",
    "@babel/plugin-syntax-jsx": "^7.14.5",
    "@babel/preset-env": "^7.15.0",
    "@codemod/cli": "^2.3.2",
    "@cypress/code-coverage": "^3.9.10",
    "@mdx-js/loader": "2.3.0",
    "@next/bundle-analyzer": "^11.1.0",
    "@next/mdx": "14.2.4",
    "@testing-library/jest-dom": "^5.17.0",
    "@testing-library/react": "^14.0.0",
    "@types/cookie": "^0.4.1",
    "@types/cors": "^2.8.12",
    "@types/isomorphic-fetch": "^0.0.35",
    "@types/jest": "^27.0.1",
    "@types/js-cookie": "^3.0.6",
    "@types/lodash": "^4.14.172",
    "@types/mdx-js__react": "^1.5.5",
    "@types/micro": "^7.3.7",
    "@types/mixpanel-browser": "^2.35.7",
    "@types/node": "^16.18.98",
    "@types/pg": "^8.11.6",
    "@types/pluralize": "^0.0.29",
    "@types/qs": "^6.9.7",
    "@types/react": "18.3.3",
    "@types/react-dom": "18.3.0",
    "@types/react-scroll": "^1.8.7",
    "@types/react-syntax-highlighter": "^15.5.7",
    "@types/rss": "^0.0.32",
    "@types/shortid": "^0.0.29",
    "@types/speakingurl": "^13.0.3",
    "@types/title": "^3.4.1",
    "@types/uuid": "^8.3.4",
    "@types/yup": "^0.29.13",
    "@typescript-eslint/eslint-plugin": "^4.29.3",
    "@typescript-eslint/parser": "^4.28.5",
    "autoprefixer": "^10.4.2",
    "axios": "^0.21.4",
    "babel-eslint": "^10.0.0",
    "babel-jest": "^27.0.6",
    "babel-loader": "^8.2.2",
    "babel-plugin-apply-mdx-type-prop": "^1.6.22",
    "babel-plugin-inline-react-svg": "^2.0.1",
    "command-line-args": "^5.2.0",
    "concurrently": "^8.2.2",
    "cypress": "^6.9.1",
    "dotenv-flow": "^3.2.0",
    "encoding": "^0.1.13",
    "eslint": "^7.32.0",
    "eslint-config-next": "^14.1.0",
    "eslint-config-react-app": "^6.0.0",
    "eslint-plugin-flowtype": "^5.9.0",
    "eslint-plugin-import": "^2.24.0",
    "eslint-plugin-jest": "^24.4.0",
    "eslint-plugin-jsx-a11y": "^6.3.1",
    "eslint-plugin-react": "^7.24.0",
    "eslint-plugin-react-app": "^6.2.2",
    "eslint-plugin-react-hooks": "^4.0.8",
    "eslint-plugin-testing-library": "^4.11.0",
    "globby": "^12.0.1",
    "handlebars": "^4.7.7",
    "husky": "^7.0.1",
    "istanbul-lib-coverage": "^3.0.0",
    "jest": "^27.0.6",
    "lint-staged": "^11.1.2",
    "next-sitemap": "^1.6.148",
    "normalize.css": "^8.0.1",
    "nyc": "^15.1.0",
    "pad-number": "^0.0.4",
    "parse-link-header": "^2.0.0",
    "postcss": "^8.4.5",
    "postcss-loader": "^6.2.1",
    "postcss-preset-env": "^6.7.0",
    "prettier": "^2.3.2",
    "react-is": "^17.0.2",
    "react-test-renderer": "^17.0.2",
    "rehype": "^12.0.0",
    "storybook-addon-themes": "^6.1.0",
    "ts-node": "^10.2.0",
    "typescript": "5.1.6",
    "webpack": "^5.76.3"
  },
  "lint-staged": {
    "*.{js,json,md}": [
      "prettier --write"
    ],
    "src/**/*.{ts,tsx,md,mdx,js}": [
      "prettier --write"
    ],
    "src/**/*.{ts,tsx}": [
      "pnpm lint"
    ]
  },
  "prettier": {
    "printWidth": 80,
    "tabWidth": 2,
    "useTabs": false,
    "semi": false,
    "singleQuote": true,
    "trailingComma": "all",
    "bracketSpacing": false,
    "jsxBracketSameLine": false
  },
  "nyc": {
    "exclude": [
      "pages/api/__coverage__.js"
    ]
  }
}
