0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-06 07:23:30 +08:00
discourse/package.json
David Taylor de793bc6ed
DEV: add typescript support for core, themes and plugins (#41478)
We've been using basic type-checking via JSDoc for some time. This
commit allows us to author proper `.ts`/`.gts` files, and use the full
typescript syntax. Initially, only d-button and a single chat file are
migrated, as proof of functionality.

In future, we may migrate more files, and consider making our tsconfig
more strict.
2026-07-08 12:57:18 +01:00

83 lines
4.2 KiB
JSON
Vendored

{
"private": true,
"repository": "https://github.com/discourse/discourse",
"author": "Discourse",
"license": "GPL-2.0-only",
"devDependencies": {
"@discourse/lint-configs": "^3.2.0",
"@discourse/moment-timezone-names-translations": "^1.0.0",
"@fortawesome/fontawesome-free": "7.2.0",
"@glint/ember-tsc": "^1.8.11",
"@glint/tsserver-plugin": "^2.5.17",
"@rdil/parallel-prettier": "^3.0.0",
"concurrently": "^9.2.1",
"eslint": "10.6.0",
"execa": "^9.6.0",
"jsdoc": "^4.0.5",
"lefthook": "^2.1.9",
"licensee": "^11.1.1",
"lint-to-the-future": "^3.2.0",
"lint-to-the-future-eslint": "^4.0.0",
"playwright": "1.59.1",
"prettier": "3.8.1",
"stylelint": "17.5.0",
"typescript": "^5.9.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 --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,css}' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss') $(script/list_bundled_plugins '/{assets,admin/assets,test}/javascripts/**/*.{js,gjs,ts,gts,mts,cts}') 'themes/**/*.{js,gjs,ts,gts,scss}'",
"lint:prettier:fix": "pnpm prettier -w --no-error-on-unmatched-pattern 'app/assets/stylesheets/**/*.scss' 'frontend/**/*.{js,gjs,ts,gts,mts,cts,css}' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss') $(script/list_bundled_plugins '/{assets,admin/assets,test}/javascripts/**/*.{js,gjs,ts,gts,mts,cts}') 'themes/**/*.{js,gjs,ts,gts,scss}'",
"lint:types": "ember-tsc -b",
"types:generate": "pnpm --dir=frontend/discourse-i18n ember-tsc && pnpm --dir=frontend/discourse-types generate-external",
"types:watch": "pnpm types:generate && 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.28.0",
"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",
"licensee@11.1.1": "patches/licensee@11.1.1.patch",
"@ember-compat/tracked-built-ins@0.9.1": "patches/@ember-compat__tracked-built-ins@0.9.1.patch",
"ember-source@6.10.1": "patches/ember-source@6.10.1.patch",
"http-proxy@1.18.1": "patches/http-proxy@1.18.1.patch",
"ember-exam@10.1.0": "patches/ember-exam@10.1.0.patch",
"message-bus-client": "patches/message-bus-client.patch",
"ember-buffered-proxy": "patches/ember-buffered-proxy.patch",
"pikaday": "patches/pikaday.patch"
},
"peerDependencyRules": {
"allowedVersions": {
"@mixer/parallel-prettier>prettier": "*",
"ember-this-fallback>ember-source": "*",
"ember-this-fallback>ember-cli-htmlbars": "*",
"@fullcalendar/moment-timezone>moment-timezone": "*"
},
"ignoreMissing": [
"webpack"
]
},
"overrides": {
"@ember/test-waiters": "4.1.1",
"babel-plugin-ember-template-compilation@~2.3.0": "2.4.1",
"broccoli-babel-transpiler@8.0.0": "^8.0.2"
}
}
}