{
  "private": true,
  "repository": "https://github.com/discourse/discourse",
  "author": "Discourse",
  "license": "GPL-2.0-only",
  "devDependencies": {
    "@discourse/lint-configs": "^3.7.0",
    "@discourse/moment-timezone-names-translations": "^1.0.0",
    "@fortawesome/fontawesome-free": "7.3.1",
    "@glint/ember-tsc": "^1.11.4",
    "@glint/tsserver-plugin": "^2.7.7",
    "@rdil/parallel-prettier": "^3.0.0",
    "concurrently": "^10.0.5",
    "eslint": "10.6.0",
    "execa": "^10.0.1",
    "jsdoc": "^4.0.5",
    "lefthook": "^2.1.12",
    "licensee": "^12.0.2",
    "lint-to-the-future": "^3.2.0",
    "lint-to-the-future-eslint": "^4.0.0",
    "playwright": "1.62.1",
    "postcss-selector-parser": "^7.1.4",
    "postcss-value-parser": "^4.2.0",
    "prettier": "3.8.1",
    "stylelint": "17.5.0",
    "typescript": "^6.0.3"
  },
  "scripts": {
    "dev": "bin/dev",
    "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\"",
    "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\"",
    "lint:css": "pnpm stylelint 'app/assets/stylesheets/**/*.scss' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss') 'themes/**/*.scss'",
    "lint:css:fix": "pnpm stylelint --fix 'app/assets/stylesheets/**/*.scss' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss') 'themes/**/*.scss'",
    "lint:js": "eslint ./frontend $(script/list_bundled_plugins) ./themes --cache --concurrency auto --no-error-on-unmatched-pattern --max-warnings 0",
    "lint:js:fix": "eslint --fix ./frontend $(script/list_bundled_plugins) ./themes --no-error-on-unmatched-pattern",
    "lint:prettier": "pnpm pprettier --list-different 'app/assets/stylesheets/**/*.scss' 'frontend/**/*.{js,gjs,ts,gts,mts,cts,cjs,mjs,css}' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss') $(script/list_bundled_plugins '/{assets,admin/assets,test}/javascripts/**/*.{js,gjs,ts,gts,mts,cts,cjs,mjs}') 'themes/**/*.{js,gjs,ts,gts,cjs,mjs,scss}'",
    "lint:prettier:fix": "pnpm prettier -w --no-error-on-unmatched-pattern 'app/assets/stylesheets/**/*.scss' 'frontend/**/*.{js,gjs,ts,gts,mts,cts,cjs,mjs,css}' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss') $(script/list_bundled_plugins '/{assets,admin/assets,test}/javascripts/**/*.{js,gjs,ts,gts,mts,cts,cjs,mjs}') 'themes/**/*.{js,gjs,ts,gts,cjs,mjs,scss}'",
    "lint:types": "NODE_OPTIONS=--max-old-space-size=8192 ember-tsc -b",
    "types:generate": "pnpm --dir=frontend/discourse-i18n ember-tsc && pnpm --dir=frontend/discourse-types generate-external",
    "types:watch": "pnpm types:generate && NODE_OPTIONS=--max-old-space-size=8192 pnpm ember-tsc -b --watch --preserveWatchOutput",
    "lttf:ignore": "lint-to-the-future ignore",
    "lttf:output": "lint-to-the-future output -o ./lint-progress/",
    "lint-progress": "pnpm lttf:output && npx html-pages ./lint-progress --no-cache",
    "playwright-install": "playwright install --no-shell chromium",
    "build": "pnpm --silent --dir=frontend/discourse build",
    "start": "pnpm --silent --dir=frontend/discourse start"
  },
  "engines": {
    "node": ">= 20",
    "npm": "please-use-pnpm",
    "yarn": "please-use-pnpm",
    "pnpm": "^10"
  },
  "packageManager": "pnpm@10.34.5"
}
