{ "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.4.0", "@discourse/moment-timezone-names-translations": "^1.0.0", "@fortawesome/fontawesome-free": "6.7.2", "@glint/core": "1.4.1-unstable.34c4510", "@glint/environment-ember-loose": "1.4.1-unstable.34c4510", "@glint/environment-ember-template-imports": "1.4.1-unstable.34c4510", "@glint/template": "1.4.1-unstable.34c4510", "@mixer/parallel-prettier": "^2.0.3", "@swc/core": "^1.10.16", "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.2", "ember-template-lint": "^6.1.0", "esbuild": "^0.25.0", "eslint": "^9.19.0", "jsdoc": "^4.0.4", "lefthook": "^1.10.10", "licensee": "^11.1.1", "lint-to-the-future": "^2.6.2", "lint-to-the-future-ember-template": "^3.0.0", "lint-to-the-future-eslint": "^3.0.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": "^24.2.0", "squoosh": "https://codeload.github.com/discourse/squoosh/tar.gz/dc9649d", "stylelint": "^16.14.1", "stylelint-config-standard": "^37.0.0", "stylelint-config-standard-scss": "^14.0.0", "terser": "^5.39.0", "typescript": "5.6.x" }, "scripts": { "dev": "concurrently \"bin/ember-cli server --environment=development\" \"RAILS_ENV=development bin/rails server\"", "lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"", "lint:css": "pnpm stylelint 'app/assets/stylesheets/**/*.scss' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss')", "lint:css:fix": "pnpm stylelint --fix 'app/assets/stylesheets/**/*.scss' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss')", "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,css}' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss') $(script/list_bundled_plugins '/{assets,admin/assets,test}/javascripts/**/*.{js,gjs,hbs}')", "lint:prettier:fix": "pnpm prettier -w 'app/assets/stylesheets/**/*.scss' 'app/assets/javascripts/**/*.{js,gjs,hbs,css}' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss') $(script/list_bundled_plugins '/{assets,admin/assets,test}/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" }, "packageManager": "pnpm@9.15.5", "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.1.1": "patches/content-tag@3.1.1.patch", "@ember-compat/tracked-built-ins@0.9.1": "patches/@ember-compat__tracked-built-ins@0.9.1.patch", "ember-source@5.12.0": "patches/ember-source@5.12.0.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" ] } } }