{
  "name": "discourse",
  "private": true,
  "repository": "https://github.com/discourse/discourse",
  "author": "Discourse",
  "license": "GPL-2.0-only",
  "devDependencies": {
    "@babel/plugin-proposal-decorators": "^7.25.9",
    "@discourse/lint-configs": "^2.2.1",
    "@discourse/moment-timezone-names-translations": "^1.0.0",
    "@fortawesome/fontawesome-free": "6.6.0",
    "@glint/core": "^1.5.0",
    "@glint/environment-ember-loose": "^1.5.0",
    "@glint/environment-ember-template-imports": "^1.5.0",
    "@glint/template": "^1.5.0",
    "@mixer/parallel-prettier": "^2.0.3",
    "@swc/core": "^1.9.3",
    "chart.js": "3.5.1",
    "chartjs-plugin-datalabels": "2.2.0",
    "chrome-launcher": "^1.1.2",
    "chrome-remote-interface": "^0.33.2",
    "concurrently": "^9.1.0",
    "ember-template-lint": "^6.0.0",
    "esbuild": "^0.24.0",
    "eslint": "^9.14.0",
    "jsdoc": "^4.0.4",
    "lefthook": "^1.8.5",
    "licensee": "^11.1.1",
    "lint-to-the-future": "^2.5.1",
    "lint-to-the-future-ember-template": "^2.0.0",
    "lint-to-the-future-eslint": "^2.2.0",
    "magnific-popup": "1.1.0",
    "moment": "2.30.1",
    "moment-timezone": "0.5.45",
    "pikaday": "1.8.2",
    "prettier": "^2.8.8",
    "puppeteer-core": "^23.9.0",
    "squoosh": "https://codeload.github.com/discourse/squoosh/tar.gz/dc9649d",
    "terser": "^5.36.0",
    "typescript": "^5.7.2"
  },
  "scripts": {
    "dev": "concurrently \"bin/ember-cli server --environment=development\" \"RAILS_ENV=development bin/rails server\"",
    "lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"",
    "lint:fix": "concurrently \"npm:lint:*:fix\" --names \"fix:\"",
    "lint:js": "eslint ./app/assets/javascripts $(script/list_bundled_plugins) --cache --no-error-on-unmatched-pattern",
    "lint:js:fix": "eslint --fix ./app/assets/javascripts $(script/list_bundled_plugins) --no-error-on-unmatched-pattern",
    "lint:hbs": "ember-template-lint 'app/assets/javascripts/**/*.{gjs,hbs}' 'plugins/*/assets/javascripts/**/*.{gjs,hbs}' 'plugins/*/admin/assets/javascripts/**/*.{gjs,hbs}'",
    "lint:hbs:fix": "ember-template-lint 'app/assets/javascripts/**/*.{gjs,hbs}' 'plugins/*/assets/javascripts/**/*.{gjs,hbs}' 'plugins/*/admin/assets/javascripts/**/*.{gjs,hbs}' --fix",
    "lint:prettier": "pnpm pprettier --list-different 'app/assets/stylesheets/**/*.scss' 'app/assets/javascripts/**/*.{js,gjs,hbs}' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss') $(script/list_bundled_plugins '/{assets,admin/assets}/javascripts/**/*.{js,gjs,hbs}')",
    "lint:prettier:fix": "pnpm prettier -w 'app/assets/stylesheets/**/*.scss' 'app/assets/javascripts/**/*.{js,gjs,hbs}' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss') $(script/list_bundled_plugins '/{assets,admin/assets}/javascripts/**/*.{js,gjs,hbs}')",
    "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",
    "ember": "pnpm --dir=app/assets/javascripts/discourse ember"
  },
  "engines": {
    "node": ">= 18",
    "npm": "please-use-pnpm",
    "yarn": "please-use-pnpm",
    "pnpm": ">= 9"
  },
  "pnpm": {
    "patchedDependencies": {
      "ember-this-fallback@0.4.0": "patches/ember-this-fallback@0.4.0.patch",
      "babel-plugin-debug-macros@0.3.4": "patches/babel-plugin-debug-macros@0.3.4.patch",
      "virtual-dom@2.1.1": "patches/virtual-dom@2.1.1.patch",
      "licensee@11.1.1": "patches/licensee@11.1.1.patch",
      "content-tag@3.0.0": "patches/content-tag@3.0.0.patch",
      "@ember-compat/tracked-built-ins@0.9.1": "patches/@ember-compat__tracked-built-ins@0.9.1.patch"
    },
    "peerDependencyRules": {
      "allowedVersions": {
        "lint-to-the-future-eslint>eslint": "*",
        "@mixer/parallel-prettier>prettier": "*",
        "lint-to-the-future-ember-template>ember-template-lint": "*",
        "ember-this-fallback>ember-source": "*"
      },
      "ignoreMissing": [
        "webpack"
      ]
    }
  }
}