{
  "name": "@freecodecamp/client",
  "version": "0.0.1",
  "description": "The freeCodeCamp.org open-source codebase and curriculum",
  "license": "BSD-3-Clause",
  "private": true,
  "engines": {
    "node": ">=24",
    "pnpm": ">=10"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/freeCodeCamp/freeCodeCamp.git"
  },
  "bugs": {
    "url": "https://github.com/freeCodeCamp/freeCodeCamp/issues"
  },
  "homepage": "https://github.com/freeCodeCamp/freeCodeCamp#readme",
  "author": "freeCodeCamp <team@freecodecamp.org>",
  "main": "index.js",
  "scripts": {
    "build": "NODE_OPTIONS=\"--max-old-space-size=7168 --no-deprecation\" gatsby build --prefix-paths",
    "clean": "gatsby clean",
    "copy:scripts": "tsx ./tools/copy-browser-scripts.ts",
    "create:env": "DEBUG=fcc:* tsx ./tools/create-env.ts",
    "create:external-curriculum": "tsx ./tools/external-curriculum/build",
    "create:trending": "tsx ./tools/download-trending.ts",
    "create:search-placeholder": "tsx ./tools/generate-search-placeholder",
    "develop": "NODE_OPTIONS=\"--max-old-space-size=7168 --no-deprecation\" gatsby develop --inspect=9230",
    "lint": "eslint --max-warnings 0",
    "setup": "pnpm clean && pnpm create:env && pnpm create:trending && pnpm create:search-placeholder && pnpm create:external-curriculum && pnpm copy:scripts",
    "serve": "gatsby serve -p 8000",
    "serve-ci": "serve -l 8000 -c serve.json public",
    "prestand-alone": "pnpm run prebuild",
    "stand-alone": "gatsby develop",
    "test": "vitest run",
    "test:watch": "vitest",
    "test:ui": "vitest --ui",
    "type-check": "tsc --noEmit"
  },
  "dependencies": {
    "@babel/plugin-proposal-export-default-from": "7.23.3",
    "@babel/plugin-proposal-function-bind": "7.23.3",
    "@babel/plugin-transform-runtime": "^7.19.6",
    "@babel/preset-env": "7.23.7",
    "@babel/preset-react": "7.23.3",
    "@babel/preset-typescript": "7.23.3",
    "@codesandbox/sandpack-react": "2.20.0",
    "@codesandbox/sandpack-themes": "2.0.21",
    "@fortawesome/fontawesome-svg-core": "7.2.0",
    "@fortawesome/free-brands-svg-icons": "7.2.0",
    "@fortawesome/free-solid-svg-icons": "7.2.0",
    "@fortawesome/react-fontawesome": "3.3.1",
    "@freecodecamp/challenge-builder": "workspace:*",
    "@freecodecamp/ui": "6.0.1",
    "@gatsbyjs/reach-router": "1.3.9",
    "@growthbook/growthbook-react": "1.6.5",
    "@loadable/component": "5.16.7",
    "@redux-devtools/extension": "3.3.0",
    "@redux-saga/core": "^1.4.2",
    "@reduxjs/toolkit": "2.11.2",
    "@stripe/react-stripe-js": "1.16.5",
    "@stripe/stripe-js": "1.54.2",
    "@types/react-speech-recognition": "3.9.6",
    "@xterm/addon-fit": "0.11.0",
    "@xterm/xterm": "6.0.0",
    "algoliasearch": "4.27.0",
    "assert": "2.0.0",
    "babel-plugin-preval": "5.1.0",
    "babel-plugin-prismjs": "2.1.0",
    "bezier-easing": "2.1.0",
    "browser-cookies": "1.2.0",
    "canvas-confetti": "^1.6.0",
    "crypto-browserify": "3.12.1",
    "date-fns": "4.1.0",
    "date-fns-tz": "3.2.0",
    "eslint-config-react-app": "^7.0.1",
    "final-form": "4.20.10",
    "gatsby": "5.16.1",
    "gatsby-cli": "5.16.0",
    "gatsby-plugin-postcss": "6.16.0",
    "gatsby-plugin-react-helmet": "6.16.0",
    "gatsby-plugin-remove-serviceworker": "1.0.0",
    "gatsby-source-filesystem": "5.16.0",
    "gatsby-transformer-remark": "6.16.0",
    "i18next": "25.10.10",
    "instantsearch.js": "4.95.0",
    "lodash": "4.18.1",
    "lodash-es": "4.18.1",
    "micromark": "4.0.2",
    "monaco-editor": "0.52.2",
    "nanoid": "3.3.12",
    "normalize-url": "6.1.0",
    "path-browserify": "1.0.1",
    "pinyin-tone": "2.4.0",
    "postcss": "8.5.13",
    "prismjs": "1.30.0",
    "process": "0.11.10",
    "prop-types": "15.8.1",
    "qrcode.react": "^3.1.0",
    "query-string": "7.1.3",
    "react": "18.3.1",
    "react-calendar-heatmap": "1.10.0",
    "react-dom": "18.3.1",
    "react-final-form": "6.5.9",
    "react-gtm-module": "2.0.11",
    "react-helmet": "6.1.0",
    "react-hotkeys": "2.0.0",
    "react-i18next": "15.7.4",
    "react-instantsearch": "7.31.0",
    "react-instantsearch-core": "7.31.0",
    "react-monaco-editor": "0.59.0",
    "react-redux": "8.1.3",
    "react-reflex": "4.2.7",
    "react-responsive": "9.0.2",
    "react-scroll": "1.9.3",
    "react-speech-recognition": "4.0.1",
    "react-spinkit": "3.0.0",
    "react-tooltip": "4.5.1",
    "react-transition-group": "4.4.5",
    "react-youtube": "10.1.0",
    "redux": "4.2.1",
    "redux-actions": "2.6.5",
    "redux-observable": "1.2.0",
    "redux-saga": "1.4.2",
    "reselect": "4.1.8",
    "rxjs": "6.6.7",
    "sanitize-html": "2.17.3",
    "store": "2.0.12",
    "stream-browserify": "3.0.0",
    "tone": "15.1.22",
    "typescript": "5.9.3",
    "util": "0.12.5",
    "uuid": "8.3.2",
    "validator": "13.15.35"
  },
  "devDependencies": {
    "@babel/plugin-syntax-dynamic-import": "7.8.3",
    "@freecodecamp/browser-scripts": "workspace:*",
    "@freecodecamp/curriculum": "workspace:*",
    "@freecodecamp/eslint-config": "workspace:*",
    "@freecodecamp/shared": "workspace:*",
    "@testing-library/jest-dom": "^6.8.0",
    "@testing-library/react": "14.3.1",
    "@testing-library/user-event": "14.6.1",
    "@total-typescript/ts-reset": "^0.5.0",
    "@types/canvas-confetti": "^1.6.0",
    "@types/gatsbyjs__reach-router": "1.3.0",
    "@types/js-yaml": "4.0.9",
    "@types/loadable__component": "5.13.10",
    "@types/lodash-es": "^4.17.6",
    "@types/prismjs": "^1.26.0",
    "@types/react": "18.3.28",
    "@types/react-dom": "18.3.7",
    "@types/react-gtm-module": "2.0.4",
    "@types/react-helmet": "6.1.11",
    "@types/react-redux": "7.1.34",
    "@types/react-scroll": "1.8.10",
    "@types/react-spinkit": "3.0.10",
    "@types/react-test-renderer": "16.9.12",
    "@types/react-transition-group": "4.4.12",
    "@types/redux-actions": "2.6.5",
    "@types/sanitize-html": "^2.8.0",
    "@types/store": "^2.0.2",
    "@types/validator": "^13.7.12",
    "@vitest/ui": "^4.0.15",
    "autoprefixer": "10.4.27",
    "babel-plugin-macros": "3.1.0",
    "core-js": "3.49.0",
    "dotenv": "16.6.1",
    "eslint": "^9.39.1",
    "eslint-plugin-flowtype": "^8.0.3",
    "gatsby-plugin-pnpm-gatsby-5": "1.2.11",
    "gatsby-plugin-schema-snapshot": "4.16.0",
    "gatsby-plugin-webpack-bundle-analyser-v2": "1.1.32",
    "i18next-fs-backend": "2.6.5",
    "joi": "18.1.2",
    "js-yaml": "4.1.0",
    "monaco-editor-webpack-plugin": "7.1.1",
    "react-test-renderer": "18.3.1",
    "readdirp": "3.6.0",
    "redux-saga-test-plan": "4.0.6",
    "serve": "13.0.4",
    "vitest": "^4.0.15",
    "webpack": "5.106.2"
  }
}
