{ "name": "discourse", "version": "1.0.0", "repository": "https://github.com/discourse/discourse", "author": "Discourse", "license": "GPL-2.0-only", "devDependencies": { "@discourse/moment-timezone-names-translations": "^1.0.0", "@fortawesome/fontawesome-free": "5.15.4", "@glint/core": "^1.1.0", "@glint/environment-ember-loose": "^1.1.0", "@glint/environment-ember-template-imports": "^1.1.0", "@glint/template": "^1.1.0", "@highlightjs/cdn-assets": "11.8.0", "@json-editor/json-editor": "2.10.0", "@mixer/parallel-prettier": "^2.0.3", "ace-builds": "1.4.13", "chart.js": "3.5.1", "chartjs-plugin-datalabels": "2.2.0", "chrome-launcher": "^0.15.1", "chrome-remote-interface": "^0.31.3", "concurrently": "^8.2.1", "diffhtml": "1.0.0-beta.30", "ember-template-lint": "5.11.2", "esbuild": "^0.19.2", "eslint": "^8.37.0", "eslint-config-discourse": "^5.1.0", "eslint-plugin-decorator-position": "^5.0.2", "eslint-plugin-ember": "11.11.1", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-sort-class-members": "1.18.0", "jsdoc": "^4.0.0", "lefthook": "^1.2.0", "lint-to-the-future": "^2.0.0", "lint-to-the-future-ember-template": "^1.1.1", "lint-to-the-future-eslint": "^2.0.1", "magnific-popup": "1.1.0", "moment": "2.29.4", "moment-timezone": "0.5.43", "pikaday": "1.8.2", "prettier-plugin-ember-template-tag": "^0.3.2", "puppeteer-core": "^21.0.3", "squoosh": "discourse/squoosh#dc9649d", "tidy-jsdoc": "^1.4.1", "typescript": "^5.1.3" }, "scripts": { "lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"", "lint:fix": "concurrently \"npm:lint:*:fix\" --names \"fix:\"", "lint:js": "eslint ./app/assets/javascripts --cache", "lint:js-plugins": "eslint ./plugins --cache", "lint:js:fix": "eslint --fix ./app/assets/javascripts", "lint:js-plugins:fix": "eslint --fix ./plugins", "lint:hbs": "ember-template-lint 'app/assets/javascripts/**/*.{gjs,hbs}' 'plugins/**/assets/javascripts/**/*.{gjs,hbs}' --no-error-on-unmatched-pattern", "lint:hbs:fix": "ember-template-lint 'app/assets/javascripts/**/*.{gjs,hbs}' 'plugins/**/assets/javascripts/**/*.{gjs,hbs}' --no-error-on-unmatched-pattern --fix", "lint:prettier": "yarn pprettier --list-different 'app/assets/stylesheets/**/*.scss' 'app/assets/javascripts/**/*.{js,gjs,hbs}' 'plugins/**/assets/stylesheets/**/*.scss' 'plugins/**/assets/javascripts/**/*.{js,gjs,hbs}'", "lint:prettier:fix": "yarn prettier -w 'app/assets/stylesheets/**/*.scss' 'app/assets/javascripts/**/*.{js,gjs,hbs}' 'plugins/**/assets/stylesheets/**/*.scss' 'plugins/**/assets/javascripts/**/*.{js,gjs,hbs}'", "lttf:ignore": "lint-to-the-future ignore", "lttf:output": "lint-to-the-future output -o ./lint-progress/", "lint-progress": "yarn lttf:output && npx html-pages ./lint-progress --no-cache", "postinstall": "yarn --cwd app/assets/javascripts $(node -e 'const argv = JSON.parse(process.env.npm_config_argv).original; const passthrough = [`--frozen-lockfile`, `-s`].filter(arg => argv.includes(arg)); console.log(passthrough.join(` `));')" }, "engines": { "node": "16.* || >= 18", "npm": "please-use-yarn", "yarn": ">= 1.21.1" } }