diff --git a/.gitignore b/.gitignore index d9811a0f842..e3bc8a66421 100644 --- a/.gitignore +++ b/.gitignore @@ -121,6 +121,10 @@ openapi/* # direnv.net .direnv +# Types +frontend/discourse-types/declarations +*.tsbuildinfo + # discourse-ai evals /plugins/discourse-ai/evals/cases /plugins/discourse-ai/evals/log diff --git a/.pnpmfile.cjs b/.pnpmfile.cjs index 91c1bc55e37..9439b8c721a 100644 --- a/.pnpmfile.cjs +++ b/.pnpmfile.cjs @@ -47,7 +47,7 @@ const pluginName = if ( pluginName && - fs.existsSync(`${discourseRoot}/plugins/${pluginName}/package.json`) && + fs.existsSync(`${discourseRoot}/plugins/${pluginName}/pnpm-lock.yaml`) && !process.argv.includes("--ignore-workspace") ) { console.log( diff --git a/bin/ember-cli b/bin/ember-cli index f21049eb135..9ccb5bc53fa 100755 --- a/bin/ember-cli +++ b/bin/ember-cli @@ -2,6 +2,7 @@ # frozen_string_literal: true require "pathname" +require "open3" RAILS_ROOT = File.expand_path("../../", Pathname.new(__FILE__).realpath) PORT = ENV["UNICORN_PORT"] ||= "3000" @@ -94,9 +95,9 @@ if ARGV.include?("-u") || ARGV.include?("--unicorn") unicorn_pid = spawn(unicorn_env, __dir__ + "/unicorn") ember_cli_pid = nil + tsc_pid = nil Thread.new do - require "open3" Open3.popen2e(pnpm_env, "pnpm", *args.to_a.flatten) do |i, oe, t| ember_cli_pid = t.pid puts "Ember CLI running on PID: #{ember_cli_pid}" @@ -115,6 +116,20 @@ if ARGV.include?("-u") || ARGV.include?("--unicorn") end end + Thread.new do + Open3.popen2e(pnpm_env, "pnpm", "ember-tsc", "-b", "--watch", "--preserveWatchOutput") do |i, oe, t| + tsc_pid = t.pid + puts "Ember TSC running on PID: #{tsc_pid}" + oe.each do |line| + puts "[ember-tsc] #{line}" + end + end + if process_running?(unicorn_pid) + puts "[bin/ember-cli] ember-tsc process stopped. Terminating unicorn." + Process.kill("TERM", unicorn_pid) + end + end + trap("SIGINT") do # we got to swallow sigint to give time for # children to handle it @@ -126,6 +141,11 @@ if ARGV.include?("-u") || ARGV.include?("--unicorn") puts "[bin/ember-cli] unicorn process stopped. Terminating ember-cli." Process.kill("TERM", ember_cli_pid) end + + if tsc_pid && process_running?(tsc_pid) + puts "[bin/ember-cli] unicorn process stopped. Terminating ember-tsc." + Process.kill("TERM", tsc_pid) + end else exec(pnpm_env, "pnpm", *args.to_a.flatten) end diff --git a/frontend/discourse-types/external-types.d.ts b/frontend/discourse-types/external-types.d.ts new file mode 100644 index 00000000000..2edc20729c2 --- /dev/null +++ b/frontend/discourse-types/external-types.d.ts @@ -0,0 +1,59 @@ +/// + +declare module "@glimmer/component" { + export { default } from "@types/@glimmer__component"; +} + +declare module "@glint/template/-private/integration" { + export { + AnyFunction, + AnyContext, + AnyBlocks, + InvokeDirect, + DirectInvokable, + Invoke, + InvokableInstance, + Invokable, + Context, + HasContext, + ModifierReturn, + ComponentReturn, + TemplateContext, + FlattenBlockParams, + NamedArgs, + NamedArgsMarker, + NamedArgNames, + UnwrapNamedArgs, + } from "@types/@glint__template/-private/integration"; +} + +declare module "@glint/ember-tsc/-private/dsl" { + export { + resolve, + resolveOrReturn, + templateExpression, + Globals, + AnyFunction, + AnyContext, + AnyBlocks, + InvokeDirect, + DirectInvokable, + Invoke, + InvokableInstance, + Invokable, + Context, + HasContext, + ModifierReturn, + ComponentReturn, + TemplateContext, + FlattenBlockParams, + NamedArgs, + NamedArgsMarker, + NamedArgNames, + UnwrapNamedArgs, + } from "@types/@glint__ember-tsc/-private/dsl"; +} + +declare module "qunit" { + export { module, test } from "@types/qunit"; +} diff --git a/frontend/discourse-types/package.json b/frontend/discourse-types/package.json new file mode 100644 index 00000000000..edd7b536184 --- /dev/null +++ b/frontend/discourse-types/package.json @@ -0,0 +1,34 @@ +{ + "name": "@discourse/types", + "version": "0.0.0", + "description": "Types only", + "license": "GPL-2.0-only", + "author": "Discourse", + "exports": { + "./tsconfig-plugin": "./tsconfig-plugin.json", + "./external-types": { + "types": "./external-types.d.ts" + }, + "./tests/*": { + "types": "./declarations/tests/*.d.ts" + }, + "./admin/*": { + "types": "./declarations/admin/*.d.ts" + }, + "./*": { + "types": "./declarations/app/*.d.ts" + } + }, + "dependencies": { + "ember-source": "~6.6.0", + "@types/@glimmer__component": "npm:@glimmer/component@^2.0.0", + "@types/@glint__ember-tsc": "npm:@glint/ember-tsc@^1.0.7", + "@types/@glint__template": "npm:@glint/template@^1.7.2" + }, + "engines": { + "node": ">= 18", + "npm": "please-use-pnpm", + "yarn": "please-use-pnpm", + "pnpm": "^9" + } +} diff --git a/frontend/discourse-types/tsconfig-plugin.json b/frontend/discourse-types/tsconfig-plugin.json new file mode 100644 index 00000000000..0ab71fc69a6 --- /dev/null +++ b/frontend/discourse-types/tsconfig-plugin.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "es2021", + "module": "nodenext", + "moduleResolution": "nodenext", + "experimentalDecorators": true, + "allowJs": true, + "skipLibCheck": true, + "noEmit": true, + "noEmitOnError": false, + "declaration": true, + "outDir": "declarations", + "composite": true, + "types": ["discourse/external-types"], + } +} diff --git a/frontend/discourse/admin/adapters/build-plugin.js b/frontend/discourse/admin/adapters/build-plugin.js index 98b875ba94b..c31a7c0eacb 100644 --- a/frontend/discourse/admin/adapters/build-plugin.js +++ b/frontend/discourse/admin/adapters/build-plugin.js @@ -1,5 +1,6 @@ import RestAdapter from "discourse/adapters/rest"; +/** @returns {any} */ export default function buildPluginAdapter(pluginName) { return class extends RestAdapter { pathFor(store, type, findArgs) { diff --git a/frontend/discourse/admin/components/admin-config-areas/user-fields-list.gjs b/frontend/discourse/admin/components/admin-config-areas/user-fields-list.gjs index 47d71be6d3e..920f3d7fef8 100644 --- a/frontend/discourse/admin/components/admin-config-areas/user-fields-list.gjs +++ b/frontend/discourse/admin/components/admin-config-areas/user-fields-list.gjs @@ -13,6 +13,7 @@ export default class AdminConfigAreasUserFieldsList extends Component { @service toasts; @service adminUserFields; + /** @type {any} */ fieldTypes = UserField.fieldTypes(); get fields() { diff --git a/frontend/discourse/admin/components/admin-user-fields-form.gjs b/frontend/discourse/admin/components/admin-user-fields-form.gjs index bc388cbf687..db870c2f3ee 100644 --- a/frontend/discourse/admin/components/admin-user-fields-form.gjs +++ b/frontend/discourse/admin/components/admin-user-fields-form.gjs @@ -25,6 +25,7 @@ export default class AdminUserFieldsForm extends Component { originalRequirement = this.args.userField.requirement; userField; + /** @returns {any} */ get fieldTypes() { return UserField.fieldTypes(); } diff --git a/frontend/discourse/admin/components/edit-category-panel.gjs b/frontend/discourse/admin/components/edit-category-panel.gjs index 8541636980c..e813396ea79 100644 --- a/frontend/discourse/admin/components/edit-category-panel.gjs +++ b/frontend/discourse/admin/components/edit-category-panel.gjs @@ -18,6 +18,7 @@ export default class EditCategoryPanel extends Component { } +/** @returns { any } */ export function buildCategoryPanel(tab) { @classNameBindings( ":edit-category-tab", diff --git a/frontend/discourse/admin/models/color-scheme.js b/frontend/discourse/admin/models/color-scheme.js index 7ed9a059466..03c4170b619 100644 --- a/frontend/discourse/admin/models/color-scheme.js +++ b/frontend/discourse/admin/models/color-scheme.js @@ -55,6 +55,7 @@ export default class ColorScheme extends EmberObject { init() { super.init(...arguments); + /** @type Array */ const colors = A(this.colors ?? []); this.colors = colors.map((c) => { return ColorSchemeColor.create(c); @@ -103,6 +104,7 @@ export default class ColorScheme extends EmberObject { const newScheme = ColorScheme.create({ name: this.name, can_edit: true, + /** @type Array */ colors: A(), }); this.colors.forEach((c) => { @@ -206,6 +208,7 @@ export default class ColorScheme extends EmberObject { }); } + /** @returns {any} */ destroy() { if (this.id) { return ajax(`/admin/color_schemes/${this.id}`, { type: "DELETE" }); diff --git a/frontend/discourse/admin/routes/admin-watched-words.js b/frontend/discourse/admin/routes/admin-watched-words.js index ef75d2331b2..700dfe8b9f0 100644 --- a/frontend/discourse/admin/routes/admin-watched-words.js +++ b/frontend/discourse/admin/routes/admin-watched-words.js @@ -11,6 +11,7 @@ export default class AdminWatchedWordsRoute extends DiscourseRoute { return i18n("admin.config.watched_words.title"); } + /** @returns {any} */ model() { return WatchedWord.findAll(); } diff --git a/frontend/discourse/app/app.js b/frontend/discourse/app/app.js index 64bbb55b6f8..d4600a13052 100644 --- a/frontend/discourse/app/app.js +++ b/frontend/discourse/app/app.js @@ -300,7 +300,3 @@ function printDebugInfo() { } export default Discourse; - -/** - * @typedef {import('ember-source/types')} EmberTypes - */ diff --git a/frontend/discourse/app/components/d-otp/index.gjs b/frontend/discourse/app/components/d-otp/index.gjs index a16cfdd699b..be9f1506c1c 100644 --- a/frontend/discourse/app/components/d-otp/index.gjs +++ b/frontend/discourse/app/components/d-otp/index.gjs @@ -8,6 +8,7 @@ import { TrackedArray } from "@ember-compat/tracked-built-ins"; import autoFocus from "discourse/modifiers/auto-focus"; import preventScrollOnFocus from "discourse/modifiers/prevent-scroll-on-focus"; import { i18n } from "discourse-i18n"; +/** @type {import("./slot.gjs").default} */ import Slot from "./slot"; const DEFAULT_SLOTS = 6; diff --git a/frontend/discourse/app/controllers/signup.js b/frontend/discourse/app/controllers/signup.js index d2294fd024d..a3c18799f7b 100644 --- a/frontend/discourse/app/controllers/signup.js +++ b/frontend/discourse/app/controllers/signup.js @@ -39,6 +39,7 @@ export default class SignupPageController extends Controller { accountChallenge = 0; accountHoneypot = 0; formSubmitted = false; + /** @type Array */ rejectedEmails = A(); prefilledUsername = null; maskPassword = true; diff --git a/frontend/discourse/app/helpers/helper-fn.js b/frontend/discourse/app/helpers/helper-fn.js index ab8ab4ccca8..30e2a69ef19 100644 --- a/frontend/discourse/app/helpers/helper-fn.js +++ b/frontend/discourse/app/helpers/helper-fn.js @@ -9,7 +9,7 @@ import { bind } from "discourse/lib/decorators"; * Whenever any autotracked state is changed, the cleanup function will be run, and your function * will be re-evaluated. * - * @param {(args: object, on: { cleanup: () => void } ) => any} fn - The helper function. + * @returns {typeof Helper} - A Helper subclass with cleanup logic. */ export default function helperFn(callback) { return class extends Helper { diff --git a/frontend/discourse/app/helpers/lazy-hash.js b/frontend/discourse/app/helpers/lazy-hash.js index 6e08b198fc4..7b5618091d7 100644 --- a/frontend/discourse/app/helpers/lazy-hash.js +++ b/frontend/discourse/app/helpers/lazy-hash.js @@ -23,11 +23,17 @@ class LazyHash { // Like ember's builtin hash helper, but instead of returning a reified object // every time its referenced, it returns a static proxy object with auto-trackable keys. -export default setInternalHelperManager(({ named: namedRefs }) => { - let instance; - return createComputeRef( - () => (instance ??= new LazyHash(namedRefs)), - null, - "lazy-hash" - ); -}, {}); +/** + * @type (opts: any) => any + */ +export default setInternalHelperManager( + ({ named: namedRefs }) => { + let instance; + return createComputeRef( + () => (instance ??= new LazyHash(namedRefs)), + null, + "lazy-hash" + ); + }, + function lazyHash() {} +); diff --git a/frontend/discourse/app/lib/api.js b/frontend/discourse/app/lib/api.js index 33525a229d0..334fc6ca12b 100644 --- a/frontend/discourse/app/lib/api.js +++ b/frontend/discourse/app/lib/api.js @@ -6,7 +6,7 @@ let _apiInitializerId = 0; /** * Define an initializer which will execute a callback with a PluginApi object. * - * @param {(api: import("discourse/lib/plugin-api").PluginApi, opts: object) => any} apiCodeCallback - The callback function to execute + * @param {(api: import("./plugin-api.gjs").PluginApi, opts: object) => any} apiCodeCallback - The callback function to execute * @param {object} [opts] - Optional additional options to pass to the callback function. */ export function apiInitializer(apiCodeCallback, opts) { diff --git a/frontend/discourse/app/lib/composer/rich-editor-extensions.js b/frontend/discourse/app/lib/composer/rich-editor-extensions.js index 4155df1b1a1..9c09d391726 100644 --- a/frontend/discourse/app/lib/composer/rich-editor-extensions.js +++ b/frontend/discourse/app/lib/composer/rich-editor-extensions.js @@ -6,10 +6,10 @@ * @property {number} topicId * @property {number} categoryId * @property {import("discourse/models/session").default} session - * @property {import("float-kit/services/menu").default} menu + * @property {import("discourse/float-kit/services/menu").default} menu * @property {import("discourse/services/capabilities").default} capabilities * @property {import("discourse/services/modal").default} modal - * @property {import("float-kit/services/toasts").default} toasts + * @property {import("discourse/float-kit/services/toasts").default} toasts * @property {import("discourse/models/site").default} site * @property {(toolbar: import("discourse/lib/composer/toolbar").ToolbarBase) => void} replaceToolbar * @property {(nodeView: import("discourse/static/prosemirror/lib/glimmer-node-view").default) => void} addGlimmerNodeView diff --git a/frontend/discourse/app/lib/load-js-diff.js b/frontend/discourse/app/lib/load-js-diff.js index 3be4da6b4aa..a5b112b521c 100644 --- a/frontend/discourse/app/lib/load-js-diff.js +++ b/frontend/discourse/app/lib/load-js-diff.js @@ -2,6 +2,9 @@ Plugins & themes are unable to async-import npm modules directly. This wrapper provides them with a way to use morphlex, while keeping the `import()` in core's codebase. */ +/** + * @returns {Promise} + */ export default async function loadJSDiff() { return await import("diff"); } diff --git a/frontend/discourse/app/lib/plugin-api.gjs b/frontend/discourse/app/lib/plugin-api.gjs index 9f83edd29ba..cc564cdd5ba 100644 --- a/frontend/discourse/app/lib/plugin-api.gjs +++ b/frontend/discourse/app/lib/plugin-api.gjs @@ -238,9 +238,9 @@ function wrapWithErrorHandler(func, messageKey) { } /** - * @typedef {PluginApi} PluginApi + * @typedef {_PluginApi} PluginApi */ -class PluginApi { +class _PluginApi { constructor(container) { this.container = container; this.h = h; @@ -3460,7 +3460,7 @@ function getPluginApi() { let pluginApi = owner.lookup("plugin-api:main"); if (!pluginApi) { - pluginApi = new PluginApi(owner); + pluginApi = new _PluginApi(owner); owner.registry.register("plugin-api:main", pluginApi, { instantiate: false, }); @@ -3475,7 +3475,7 @@ function getPluginApi() { /** * Executes the provided callback function with the `PluginApi` object. * - * @param {(api: PluginApi, opts: object) => any} apiCodeCallback - The callback function to execute + * @param {(api: _PluginApi, opts: object) => any} apiCodeCallback - The callback function to execute * @param {object} [opts] - Optional additional options to pass to the callback function. * @returns {any} The result of the `callback` function, if executed */ diff --git a/frontend/discourse/app/mapping-router.js b/frontend/discourse/app/mapping-router.js index 86c1ab68bca..6e487f3509e 100644 --- a/frontend/discourse/app/mapping-router.js +++ b/frontend/discourse/app/mapping-router.js @@ -97,6 +97,7 @@ class RouteNode { } } +/** @returns {any} */ export function mapRoutes() { const tree = new RouteNode("root"); const extras = []; diff --git a/frontend/discourse/app/models/category.js b/frontend/discourse/app/models/category.js index 05cc4714cac..825edfba764 100644 --- a/frontend/discourse/app/models/category.js +++ b/frontend/discourse/app/models/category.js @@ -578,7 +578,12 @@ export default class Category extends RestModel { @discourseComputed("id") searchContext(id) { - return { type: "category", id, category: this }; + return { + type: "category", + id, + /** @type Category */ + category: this, + }; } @discourseComputed("parentCategory.ancestors") diff --git a/frontend/discourse/app/models/tag.js b/frontend/discourse/app/models/tag.js index ac53953152a..e4add42c40e 100644 --- a/frontend/discourse/app/models/tag.js +++ b/frontend/discourse/app/models/tag.js @@ -12,6 +12,12 @@ export default class Tag extends RestModel { @discourseComputed("id") searchContext(id) { - return { type: "tag", id, tag: this, name: id }; + return { + type: "tag", + id, + /** @type Tag */ + tag: this, + name: id, + }; } } diff --git a/frontend/discourse/app/models/user.js b/frontend/discourse/app/models/user.js index 2b4d29386c6..23fad1e8087 100644 --- a/frontend/discourse/app/models/user.js +++ b/frontend/discourse/app/models/user.js @@ -314,6 +314,7 @@ export default class User extends RestModel.extend(Evented) { return { type: "user", id: username, + /** @type User */ user: this, }; } diff --git a/frontend/discourse/app/routes/build-category-route.js b/frontend/discourse/app/routes/build-category-route.js index 69168295e16..69c77b7ea6f 100644 --- a/frontend/discourse/app/routes/build-category-route.js +++ b/frontend/discourse/app/routes/build-category-route.js @@ -170,6 +170,7 @@ class AbstractCategoryRoute extends DiscourseRoute { } // A helper function to create a category route with parameters +/** @returns {any} */ export default function buildCategoryRoute(routeConfig) { return class extends AbstractCategoryRoute { routeConfig = routeConfig; diff --git a/frontend/discourse/app/routes/build-group-messages-route.js b/frontend/discourse/app/routes/build-group-messages-route.js index c177dde84a8..954a90bb84a 100644 --- a/frontend/discourse/app/routes/build-group-messages-route.js +++ b/frontend/discourse/app/routes/build-group-messages-route.js @@ -1,6 +1,7 @@ import UserTopicListRoute from "discourse/routes/user-topic-list"; import { i18n } from "discourse-i18n"; +/** @returns {any} */ export default (type) => { return class BuildGroupMessagesRoute extends UserTopicListRoute { titleToken() { diff --git a/frontend/discourse/app/routes/build-private-messages-route.js b/frontend/discourse/app/routes/build-private-messages-route.js index 102fd853e5f..9a92402a441 100644 --- a/frontend/discourse/app/routes/build-private-messages-route.js +++ b/frontend/discourse/app/routes/build-private-messages-route.js @@ -13,6 +13,7 @@ export const INBOX_FILTER = "inbox"; export const ARCHIVE_FILTER = "archive"; // A helper to build a user topic list route +/** @returns {any} */ export default (inboxType, path, filter) => { return class BuildPrivateMessagesRoute extends UserTopicListRoute { userActionType = UserAction.TYPES.messages_received; diff --git a/frontend/discourse/app/routes/build-topic-route.js b/frontend/discourse/app/routes/build-topic-route.js index 0e5273c9973..9a8631b3d82 100644 --- a/frontend/discourse/app/routes/build-topic-route.js +++ b/frontend/discourse/app/routes/build-topic-route.js @@ -148,6 +148,7 @@ class AbstractTopicRoute extends DiscourseRoute { } } +/** @returns {any} */ export default function buildTopicRoute(filter) { return class extends AbstractTopicRoute { routeConfig = { filter }; diff --git a/frontend/discourse/app/routes/group/activity/posts.js b/frontend/discourse/app/routes/group/activity/posts.js index 23e1cc44f0d..49cabb5fc3b 100644 --- a/frontend/discourse/app/routes/group/activity/posts.js +++ b/frontend/discourse/app/routes/group/activity/posts.js @@ -3,6 +3,7 @@ import { TrackedArray } from "@ember-compat/tracked-built-ins"; import DiscourseRoute from "discourse/routes/discourse"; import { i18n } from "discourse-i18n"; +/** @returns {any} */ export function buildGroupPage(type) { return class GroupActivityPosts extends DiscourseRoute { type = type; diff --git a/frontend/discourse/app/routes/tag/show.js b/frontend/discourse/app/routes/tag/show.js index 2ddb16e48d0..f9a2ab42456 100644 --- a/frontend/discourse/app/routes/tag/show.js +++ b/frontend/discourse/app/routes/tag/show.js @@ -215,6 +215,7 @@ export default class TagShowRoute extends DiscourseRoute { } } +/** @returns {any} */ export function buildTagRoute(routeConfig = {}) { return class extends TagShowRoute { routeConfig = routeConfig; diff --git a/frontend/discourse/app/services/composer.js b/frontend/discourse/app/services/composer.js index 85cb4da9268..933ff1cb543 100644 --- a/frontend/discourse/app/services/composer.js +++ b/frontend/discourse/app/services/composer.js @@ -147,6 +147,9 @@ export default class ComposerService extends Service { this._showPreview = value; } + /** + * @returns {import("discourse/controllers/topic").default}; + */ get topicController() { return getOwner(this).lookup("controller:topic"); } diff --git a/frontend/discourse/app/services/presence.js b/frontend/discourse/app/services/presence.js index e1dc06012bb..5e712d1f050 100644 --- a/frontend/discourse/app/services/presence.js +++ b/frontend/discourse/app/services/presence.js @@ -303,6 +303,7 @@ export default class PresenceService extends Service { getChannel(channelName) { return PresenceChannel.create({ name: channelName, + /** @type PresenceService */ presenceService: this, }); } diff --git a/frontend/discourse/app/services/store.js b/frontend/discourse/app/services/store.js index 296b484dfdb..5eecc3eae42 100644 --- a/frontend/discourse/app/services/store.js +++ b/frontend/discourse/app/services/store.js @@ -275,6 +275,7 @@ export default class StoreService extends Service { loadMoreUrl: pageTarget["load_more_" + typeName], refreshUrl: pageTarget["refresh_" + typeName], resultSetMeta: result.meta, + /** @type StoreService */ store: this, __type: type, }; diff --git a/frontend/discourse/tsconfig.json b/frontend/discourse/tsconfig.json new file mode 100644 index 00000000000..db8b548d672 --- /dev/null +++ b/frontend/discourse/tsconfig.json @@ -0,0 +1,30 @@ +{ + "include": [ + "./app/**/*", + "./tests/**/*", + "./admin/**/*", + "./select-kit/**/*", + "./float-kit/**/*", + "./truth-helpers/**/*", + "./dialog-holder/**/*", + "./config/environment.js" + ], + "exclude": ["./tests/unit/utils/decorators-test.js"], + "extends": "../../tsconfig-base.json", + "compilerOptions": { + "composite": true, + "rootDir": "./", + "outDir": "../discourse-types/declarations", + "types": ["ember-source/types"], + "paths": { + "discourse/tests/*": ["./tests/*"], + "discourse/admin/*": ["./admin/*"], + "discourse/select-kit/*": ["./select-kit/*"], + "discourse/float-kit/*": ["./float-kit/*"], + "discourse/truth-helpers/*": ["./truth-helpers/*"], + "discourse/truth-helpers": ["./truth-helpers/index.js"], + "discourse/dialog-holder/*": ["./dialog-holder/*"], + "discourse/*": ["./app/*"], + } + } +} diff --git a/jsconfig.json b/jsconfig.json deleted file mode 100644 index 7f6bae84323..00000000000 --- a/jsconfig.json +++ /dev/null @@ -1,317 +0,0 @@ -// This file was generated by script/build_jsconfig.rb -{ - "compilerOptions": { - "target": "es2021", - "module": "esnext", - "moduleResolution": "bundler", - "experimentalDecorators": true, - "allowJs": true, - "paths": { - "discourse/admin/*": [ - "./frontend/discourse/admin/*" - ], - "discourse/*": [ - "./frontend/discourse/app/*" - ], - "discourse/tests/*": [ - "./frontend/discourse/tests/*" - ], - "admin/*": [ - "./frontend/discourse/admin/*" - ], - "pretty-text/*": [ - "./frontend/pretty-text/addon/*" - ], - "select-kit/*": [ - "./frontend/discourse/select-kit/*" - ], - "float-kit/*": [ - "./frontend/discourse/float-kit/*" - ], - "truth-helpers/*": [ - "./frontend/discourse/truth-helpers/*" - ], - "dialog-holder/*": [ - "./frontend/discourse/dialog-holder/*" - ], - "discourse/plugins/automation/*": [ - "./plugins/automation/assets/javascripts/*", - "./plugins/automation/test/javascripts/*" - ], - "discourse/plugins/chat/*": [ - "./plugins/chat/assets/javascripts/*", - "./plugins/chat/test/javascripts/*" - ], - "discourse/plugins/checklist/*": [ - "./plugins/checklist/assets/javascripts/*", - "./plugins/checklist/test/javascripts/*" - ], - "discourse/plugins/discourse-adplugin/*": [ - "./plugins/discourse-adplugin/assets/javascripts/*", - "./plugins/discourse-adplugin/test/javascripts/*" - ], - "discourse/plugins/discourse-affiliate/*": [ - "./plugins/discourse-affiliate/assets/javascripts/*", - "./plugins/discourse-affiliate/test/javascripts/*" - ], - "discourse/plugins/discourse-ai/*": [ - "./plugins/discourse-ai/assets/javascripts/*", - "./plugins/discourse-ai/test/javascripts/*" - ], - "discourse/plugins/discourse-apple-auth/*": [ - "./plugins/discourse-apple-auth/assets/javascripts/*", - "./plugins/discourse-apple-auth/test/javascripts/*" - ], - "discourse/plugins/discourse-assign/*": [ - "./plugins/discourse-assign/assets/javascripts/*", - "./plugins/discourse-assign/test/javascripts/*" - ], - "discourse/plugins/discourse-cakeday/*": [ - "./plugins/discourse-cakeday/assets/javascripts/*", - "./plugins/discourse-cakeday/test/javascripts/*" - ], - "discourse/plugins/discourse-calendar/*": [ - "./plugins/discourse-calendar/assets/javascripts/*", - "./plugins/discourse-calendar/test/javascripts/*" - ], - "discourse/plugins/discourse-chat-integration/*": [ - "./plugins/discourse-chat-integration/assets/javascripts/*", - "./plugins/discourse-chat-integration/test/javascripts/*" - ], - "discourse/plugins/discourse-data-explorer/*": [ - "./plugins/discourse-data-explorer/assets/javascripts/*", - "./plugins/discourse-data-explorer/test/javascripts/*" - ], - "discourse/plugins/discourse-details/*": [ - "./plugins/discourse-details/assets/javascripts/*", - "./plugins/discourse-details/test/javascripts/*" - ], - "discourse/plugins/discourse-gamification/*": [ - "./plugins/discourse-gamification/assets/javascripts/*", - "./plugins/discourse-gamification/test/javascripts/*" - ], - "discourse/plugins/discourse-github/*": [ - "./plugins/discourse-github/assets/javascripts/*", - "./plugins/discourse-github/test/javascripts/*" - ], - "discourse/plugins/discourse-graphviz/*": [ - "./plugins/discourse-graphviz/assets/javascripts/*", - "./plugins/discourse-graphviz/test/javascripts/*" - ], - "discourse/plugins/discourse-hcaptcha/*": [ - "./plugins/discourse-hcaptcha/assets/javascripts/*", - "./plugins/discourse-hcaptcha/test/javascripts/*" - ], - "discourse/plugins/discourse-lazy-videos/*": [ - "./plugins/discourse-lazy-videos/assets/javascripts/*", - "./plugins/discourse-lazy-videos/test/javascripts/*" - ], - "discourse/plugins/discourse-local-dates/*": [ - "./plugins/discourse-local-dates/assets/javascripts/*", - "./plugins/discourse-local-dates/test/javascripts/*" - ], - "discourse/plugins/discourse-login-with-amazon/*": [ - "./plugins/discourse-login-with-amazon/assets/javascripts/*", - "./plugins/discourse-login-with-amazon/test/javascripts/*" - ], - "discourse/plugins/discourse-lti/*": [ - "./plugins/discourse-lti/assets/javascripts/*", - "./plugins/discourse-lti/test/javascripts/*" - ], - "discourse/plugins/discourse-math/*": [ - "./plugins/discourse-math/assets/javascripts/*", - "./plugins/discourse-math/test/javascripts/*" - ], - "discourse/plugins/discourse-microsoft-auth/*": [ - "./plugins/discourse-microsoft-auth/assets/javascripts/*", - "./plugins/discourse-microsoft-auth/test/javascripts/*" - ], - "discourse/plugins/discourse-narrative-bot/*": [ - "./plugins/discourse-narrative-bot/assets/javascripts/*", - "./plugins/discourse-narrative-bot/test/javascripts/*" - ], - "discourse/plugins/discourse-oauth2-basic/*": [ - "./plugins/discourse-oauth2-basic/assets/javascripts/*", - "./plugins/discourse-oauth2-basic/test/javascripts/*" - ], - "discourse/plugins/discourse-openid-connect/*": [ - "./plugins/discourse-openid-connect/assets/javascripts/*", - "./plugins/discourse-openid-connect/test/javascripts/*" - ], - "discourse/plugins/discourse-patreon/*": [ - "./plugins/discourse-patreon/assets/javascripts/*", - "./plugins/discourse-patreon/test/javascripts/*" - ], - "discourse/plugins/discourse-policy/*": [ - "./plugins/discourse-policy/assets/javascripts/*", - "./plugins/discourse-policy/test/javascripts/*" - ], - "discourse/plugins/discourse-post-voting/*": [ - "./plugins/discourse-post-voting/assets/javascripts/*", - "./plugins/discourse-post-voting/test/javascripts/*" - ], - "discourse/plugins/discourse-presence/*": [ - "./plugins/discourse-presence/assets/javascripts/*", - "./plugins/discourse-presence/test/javascripts/*" - ], - "discourse/plugins/discourse-reactions/*": [ - "./plugins/discourse-reactions/assets/javascripts/*", - "./plugins/discourse-reactions/test/javascripts/*" - ], - "discourse/plugins/discourse-rss-polling/*": [ - "./plugins/discourse-rss-polling/assets/javascripts/*", - "./plugins/discourse-rss-polling/test/javascripts/*" - ], - "discourse/plugins/discourse-solved/*": [ - "./plugins/discourse-solved/assets/javascripts/*", - "./plugins/discourse-solved/test/javascripts/*" - ], - "discourse/plugins/discourse-subscriptions/*": [ - "./plugins/discourse-subscriptions/assets/javascripts/*", - "./plugins/discourse-subscriptions/test/javascripts/*" - ], - "discourse/plugins/discourse-templates/*": [ - "./plugins/discourse-templates/assets/javascripts/*", - "./plugins/discourse-templates/test/javascripts/*" - ], - "discourse/plugins/discourse-topic-voting/*": [ - "./plugins/discourse-topic-voting/assets/javascripts/*", - "./plugins/discourse-topic-voting/test/javascripts/*" - ], - "discourse/plugins/discourse-user-notes/*": [ - "./plugins/discourse-user-notes/assets/javascripts/*", - "./plugins/discourse-user-notes/test/javascripts/*" - ], - "discourse/plugins/discourse-zendesk-plugin/*": [ - "./plugins/discourse-zendesk-plugin/assets/javascripts/*", - "./plugins/discourse-zendesk-plugin/test/javascripts/*" - ], - "discourse/plugins/footnote/*": [ - "./plugins/footnote/assets/javascripts/*", - "./plugins/footnote/test/javascripts/*" - ], - "discourse/plugins/poll/*": [ - "./plugins/poll/assets/javascripts/*", - "./plugins/poll/test/javascripts/*" - ], - "discourse/plugins/spoiler-alert/*": [ - "./plugins/spoiler-alert/assets/javascripts/*", - "./plugins/spoiler-alert/test/javascripts/*" - ], - "discourse/plugins/styleguide/*": [ - "./plugins/styleguide/assets/javascripts/*", - "./plugins/styleguide/test/javascripts/*" - ], - "discourse/themes/foundation/*": [ - "./themes/foundation/javascripts/*", - "./themes/foundation/test/*" - ], - "discourse/themes/horizon/*": [ - "./themes/horizon/javascripts/*", - "./themes/horizon/test/*" - ] - } - }, - "include": [ - "./frontend/discourse/admin", - "./frontend/discourse/app", - "./frontend/discourse/tests", - "./frontend/discourse/admin", - "./frontend/pretty-text/addon", - "./frontend/discourse/select-kit", - "./frontend/discourse/float-kit", - "./frontend/discourse/truth-helpers", - "./frontend/discourse/dialog-holder", - "./plugins/automation/assets/javascripts", - "./plugins/automation/test/javascripts", - "./plugins/chat/assets/javascripts", - "./plugins/chat/test/javascripts", - "./plugins/checklist/assets/javascripts", - "./plugins/checklist/test/javascripts", - "./plugins/discourse-adplugin/assets/javascripts", - "./plugins/discourse-adplugin/test/javascripts", - "./plugins/discourse-affiliate/assets/javascripts", - "./plugins/discourse-affiliate/test/javascripts", - "./plugins/discourse-ai/assets/javascripts", - "./plugins/discourse-ai/test/javascripts", - "./plugins/discourse-apple-auth/assets/javascripts", - "./plugins/discourse-apple-auth/test/javascripts", - "./plugins/discourse-assign/assets/javascripts", - "./plugins/discourse-assign/test/javascripts", - "./plugins/discourse-cakeday/assets/javascripts", - "./plugins/discourse-cakeday/test/javascripts", - "./plugins/discourse-calendar/assets/javascripts", - "./plugins/discourse-calendar/test/javascripts", - "./plugins/discourse-chat-integration/assets/javascripts", - "./plugins/discourse-chat-integration/test/javascripts", - "./plugins/discourse-data-explorer/assets/javascripts", - "./plugins/discourse-data-explorer/test/javascripts", - "./plugins/discourse-details/assets/javascripts", - "./plugins/discourse-details/test/javascripts", - "./plugins/discourse-gamification/assets/javascripts", - "./plugins/discourse-gamification/test/javascripts", - "./plugins/discourse-github/assets/javascripts", - "./plugins/discourse-github/test/javascripts", - "./plugins/discourse-graphviz/assets/javascripts", - "./plugins/discourse-graphviz/test/javascripts", - "./plugins/discourse-hcaptcha/assets/javascripts", - "./plugins/discourse-hcaptcha/test/javascripts", - "./plugins/discourse-lazy-videos/assets/javascripts", - "./plugins/discourse-lazy-videos/test/javascripts", - "./plugins/discourse-local-dates/assets/javascripts", - "./plugins/discourse-local-dates/test/javascripts", - "./plugins/discourse-login-with-amazon/assets/javascripts", - "./plugins/discourse-login-with-amazon/test/javascripts", - "./plugins/discourse-lti/assets/javascripts", - "./plugins/discourse-lti/test/javascripts", - "./plugins/discourse-math/assets/javascripts", - "./plugins/discourse-math/test/javascripts", - "./plugins/discourse-microsoft-auth/assets/javascripts", - "./plugins/discourse-microsoft-auth/test/javascripts", - "./plugins/discourse-narrative-bot/assets/javascripts", - "./plugins/discourse-narrative-bot/test/javascripts", - "./plugins/discourse-oauth2-basic/assets/javascripts", - "./plugins/discourse-oauth2-basic/test/javascripts", - "./plugins/discourse-openid-connect/assets/javascripts", - "./plugins/discourse-openid-connect/test/javascripts", - "./plugins/discourse-patreon/assets/javascripts", - "./plugins/discourse-patreon/test/javascripts", - "./plugins/discourse-policy/assets/javascripts", - "./plugins/discourse-policy/test/javascripts", - "./plugins/discourse-post-voting/assets/javascripts", - "./plugins/discourse-post-voting/test/javascripts", - "./plugins/discourse-presence/assets/javascripts", - "./plugins/discourse-presence/test/javascripts", - "./plugins/discourse-reactions/assets/javascripts", - "./plugins/discourse-reactions/test/javascripts", - "./plugins/discourse-rss-polling/assets/javascripts", - "./plugins/discourse-rss-polling/test/javascripts", - "./plugins/discourse-solved/assets/javascripts", - "./plugins/discourse-solved/test/javascripts", - "./plugins/discourse-subscriptions/assets/javascripts", - "./plugins/discourse-subscriptions/test/javascripts", - "./plugins/discourse-templates/assets/javascripts", - "./plugins/discourse-templates/test/javascripts", - "./plugins/discourse-topic-voting/assets/javascripts", - "./plugins/discourse-topic-voting/test/javascripts", - "./plugins/discourse-user-notes/assets/javascripts", - "./plugins/discourse-user-notes/test/javascripts", - "./plugins/discourse-zendesk-plugin/assets/javascripts", - "./plugins/discourse-zendesk-plugin/test/javascripts", - "./plugins/footnote/assets/javascripts", - "./plugins/footnote/test/javascripts", - "./plugins/poll/assets/javascripts", - "./plugins/poll/test/javascripts", - "./plugins/spoiler-alert/assets/javascripts", - "./plugins/spoiler-alert/test/javascripts", - "./plugins/styleguide/assets/javascripts", - "./plugins/styleguide/test/javascripts", - "./themes/foundation/javascripts", - "./themes/foundation/test", - "./themes/horizon/javascripts", - "./themes/horizon/test" - ], - "exclude": [ - "frontend/discourse/tests/unit/utils/decorators-test.js" - ] -} diff --git a/package.json b/package.json index 36f51050a94..589a87d45ae 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,4 @@ { - "name": "discourse", "private": true, "repository": "https://github.com/discourse/discourse", "author": "Discourse", @@ -10,6 +9,7 @@ "@discourse/moment-timezone-names-translations": "^1.0.0", "@fortawesome/fontawesome-free": "6.7.2", "@glint/ember-tsc": "^1.0.7", + "@glint/tsserver-plugin": "^2.0.7", "@rdil/parallel-prettier": "^3.0.0", "@swc/core": "^1.15.0", "chrome-launcher": "^1.2.1", @@ -43,7 +43,7 @@ "lint:hbs:fix": "ember-template-lint 'frontend/**/*.{gjs,hbs}' 'plugins/*/assets/javascripts/**/*.{gjs,hbs}' 'plugins/*/admin/assets/javascripts/**/*.{gjs,hbs}' 'themes/**/*.{gjs,hbs}' --fix", "lint:prettier": "pnpm pprettier --list-different 'app/assets/stylesheets/**/*.scss' 'frontend/**/*.{js,gjs,hbs,css}' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss') $(script/list_bundled_plugins '/{assets,admin/assets,test}/javascripts/**/*.{js,gjs,hbs}') 'themes/**/*.{js,gjs,hbs,scss}'", "lint:prettier:fix": "pnpm prettier -w --no-error-on-unmatched-pattern 'app/assets/stylesheets/**/*.scss' 'frontend/**/*.{js,gjs,hbs,css}' $(script/list_bundled_plugins '/assets/stylesheets/**/*.scss') $(script/list_bundled_plugins '/{assets,admin/assets,test}/javascripts/**/*.{js,gjs,hbs}') 'themes/**/*.{js,gjs,hbs,scss}'", - "lint:glint": "ember-tsc -p jsconfig.json --noEmit", + "lint:glint": "ember-tsc -b", "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", diff --git a/plugins/automation/package.json b/plugins/automation/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/automation/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/automation/tsconfig.json b/plugins/automation/tsconfig.json new file mode 100644 index 00000000000..be202cef93f --- /dev/null +++ b/plugins/automation/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/automation/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/chat/package.json b/plugins/chat/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/chat/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/chat/tsconfig.json b/plugins/chat/tsconfig.json new file mode 100644 index 00000000000..9f52037bca0 --- /dev/null +++ b/plugins/chat/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/chat/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/checklist/package.json b/plugins/checklist/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/checklist/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/checklist/tsconfig.json b/plugins/checklist/tsconfig.json new file mode 100644 index 00000000000..fdc311d2b21 --- /dev/null +++ b/plugins/checklist/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/checklist/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-adplugin/package.json b/plugins/discourse-adplugin/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-adplugin/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-adplugin/tsconfig.json b/plugins/discourse-adplugin/tsconfig.json new file mode 100644 index 00000000000..c72e2029810 --- /dev/null +++ b/plugins/discourse-adplugin/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-adplugin/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-affiliate/package.json b/plugins/discourse-affiliate/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-affiliate/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-affiliate/tsconfig.json b/plugins/discourse-affiliate/tsconfig.json new file mode 100644 index 00000000000..5aa0f0f0e84 --- /dev/null +++ b/plugins/discourse-affiliate/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./package.json", + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-affiliate/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-ai/package.json b/plugins/discourse-ai/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-ai/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-ai/tsconfig.json b/plugins/discourse-ai/tsconfig.json new file mode 100644 index 00000000000..ae7968a60f8 --- /dev/null +++ b/plugins/discourse-ai/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-ai/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-apple-auth/package.json b/plugins/discourse-apple-auth/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-apple-auth/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-apple-auth/tsconfig.json b/plugins/discourse-apple-auth/tsconfig.json new file mode 100644 index 00000000000..b436771376d --- /dev/null +++ b/plugins/discourse-apple-auth/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./package.json", + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-apple-auth/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-assign/package.json b/plugins/discourse-assign/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-assign/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-assign/tsconfig.json b/plugins/discourse-assign/tsconfig.json new file mode 100644 index 00000000000..cfecc1bf087 --- /dev/null +++ b/plugins/discourse-assign/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-assign/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-cakeday/assets/javascripts/discourse/routes/build-cakeday-route.js b/plugins/discourse-cakeday/assets/javascripts/discourse/routes/build-cakeday-route.js index 1f8126ec0da..15d122f9ad9 100644 --- a/plugins/discourse-cakeday/assets/javascripts/discourse/routes/build-cakeday-route.js +++ b/plugins/discourse-cakeday/assets/javascripts/discourse/routes/build-cakeday-route.js @@ -1,5 +1,6 @@ import DiscourseRoute from "discourse/routes/discourse"; +/** @returns {any} */ export default (storeName, filter) => { return class BuildCakedayRoute extends DiscourseRoute { model(params) { diff --git a/plugins/discourse-cakeday/package.json b/plugins/discourse-cakeday/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-cakeday/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-cakeday/tsconfig.json b/plugins/discourse-cakeday/tsconfig.json new file mode 100644 index 00000000000..e04035fdeeb --- /dev/null +++ b/plugins/discourse-cakeday/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-cakeday/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-calendar/package.json b/plugins/discourse-calendar/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-calendar/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-calendar/tsconfig.json b/plugins/discourse-calendar/tsconfig.json new file mode 100644 index 00000000000..3545c920675 --- /dev/null +++ b/plugins/discourse-calendar/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-calendar/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-chat-integration/package.json b/plugins/discourse-chat-integration/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-chat-integration/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-chat-integration/tsconfig.json b/plugins/discourse-chat-integration/tsconfig.json new file mode 100644 index 00000000000..c9ab439cc0a --- /dev/null +++ b/plugins/discourse-chat-integration/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-chat-integration/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-data-explorer/package.json b/plugins/discourse-data-explorer/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-data-explorer/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-data-explorer/tsconfig.json b/plugins/discourse-data-explorer/tsconfig.json new file mode 100644 index 00000000000..df9cf1b8b97 --- /dev/null +++ b/plugins/discourse-data-explorer/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-data-explorer/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-details/package.json b/plugins/discourse-details/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-details/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-details/tsconfig.json b/plugins/discourse-details/tsconfig.json new file mode 100644 index 00000000000..9f167f725ca --- /dev/null +++ b/plugins/discourse-details/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-details/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-gamification/package.json b/plugins/discourse-gamification/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-gamification/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-gamification/tsconfig.json b/plugins/discourse-gamification/tsconfig.json new file mode 100644 index 00000000000..2a17a4e6943 --- /dev/null +++ b/plugins/discourse-gamification/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-gamification/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-github/package.json b/plugins/discourse-github/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-github/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-github/tsconfig.json b/plugins/discourse-github/tsconfig.json new file mode 100644 index 00000000000..a8bac336ec5 --- /dev/null +++ b/plugins/discourse-github/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./package.json", + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-github/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-graphviz/package.json b/plugins/discourse-graphviz/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-graphviz/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-graphviz/tsconfig.json b/plugins/discourse-graphviz/tsconfig.json new file mode 100644 index 00000000000..aed83aac4f4 --- /dev/null +++ b/plugins/discourse-graphviz/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-graphviz/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-hcaptcha/package.json b/plugins/discourse-hcaptcha/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-hcaptcha/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-hcaptcha/tsconfig.json b/plugins/discourse-hcaptcha/tsconfig.json new file mode 100644 index 00000000000..fbd60e52074 --- /dev/null +++ b/plugins/discourse-hcaptcha/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-hcaptcha/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-lazy-videos/package.json b/plugins/discourse-lazy-videos/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-lazy-videos/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-lazy-videos/tsconfig.json b/plugins/discourse-lazy-videos/tsconfig.json new file mode 100644 index 00000000000..ef6ffbf15da --- /dev/null +++ b/plugins/discourse-lazy-videos/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-lazy-videos/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-local-dates/package.json b/plugins/discourse-local-dates/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-local-dates/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-local-dates/tsconfig.json b/plugins/discourse-local-dates/tsconfig.json new file mode 100644 index 00000000000..55852df3aae --- /dev/null +++ b/plugins/discourse-local-dates/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-local-dates/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-login-with-amazon/package.json b/plugins/discourse-login-with-amazon/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-login-with-amazon/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-login-with-amazon/tsconfig.json b/plugins/discourse-login-with-amazon/tsconfig.json new file mode 100644 index 00000000000..7fe94e850a6 --- /dev/null +++ b/plugins/discourse-login-with-amazon/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./package.json", + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-login-with-amazon/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-lti/package.json b/plugins/discourse-lti/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-lti/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-lti/tsconfig.json b/plugins/discourse-lti/tsconfig.json new file mode 100644 index 00000000000..df04d811e8a --- /dev/null +++ b/plugins/discourse-lti/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-lti/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-math/package.json b/plugins/discourse-math/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-math/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-math/tsconfig.json b/plugins/discourse-math/tsconfig.json new file mode 100644 index 00000000000..32c3e6130a2 --- /dev/null +++ b/plugins/discourse-math/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-math/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-microsoft-auth/package.json b/plugins/discourse-microsoft-auth/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-microsoft-auth/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-microsoft-auth/tsconfig.json b/plugins/discourse-microsoft-auth/tsconfig.json new file mode 100644 index 00000000000..f08d07b837c --- /dev/null +++ b/plugins/discourse-microsoft-auth/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./package.json", + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-microsoft-auth/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-narrative-bot/package.json b/plugins/discourse-narrative-bot/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-narrative-bot/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-narrative-bot/tsconfig.json b/plugins/discourse-narrative-bot/tsconfig.json new file mode 100644 index 00000000000..438f02086ca --- /dev/null +++ b/plugins/discourse-narrative-bot/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./package.json", + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-narrative-bot/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-oauth2-basic/package.json b/plugins/discourse-oauth2-basic/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-oauth2-basic/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-oauth2-basic/tsconfig.json b/plugins/discourse-oauth2-basic/tsconfig.json new file mode 100644 index 00000000000..bff50350626 --- /dev/null +++ b/plugins/discourse-oauth2-basic/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./package.json", + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-oauth2-basic/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-openid-connect/package.json b/plugins/discourse-openid-connect/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-openid-connect/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-openid-connect/tsconfig.json b/plugins/discourse-openid-connect/tsconfig.json new file mode 100644 index 00000000000..3997a996f3f --- /dev/null +++ b/plugins/discourse-openid-connect/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./package.json", + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-openid-connect/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-patreon/package.json b/plugins/discourse-patreon/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-patreon/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-patreon/tsconfig.json b/plugins/discourse-patreon/tsconfig.json new file mode 100644 index 00000000000..e1683c8f5f2 --- /dev/null +++ b/plugins/discourse-patreon/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-patreon/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-policy/package.json b/plugins/discourse-policy/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-policy/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-policy/tsconfig.json b/plugins/discourse-policy/tsconfig.json new file mode 100644 index 00000000000..28c6b177df2 --- /dev/null +++ b/plugins/discourse-policy/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-policy/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-post-voting/package.json b/plugins/discourse-post-voting/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-post-voting/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-post-voting/tsconfig.json b/plugins/discourse-post-voting/tsconfig.json new file mode 100644 index 00000000000..044d96fb107 --- /dev/null +++ b/plugins/discourse-post-voting/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-post-voting/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-presence/package.json b/plugins/discourse-presence/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-presence/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-presence/tsconfig.json b/plugins/discourse-presence/tsconfig.json new file mode 100644 index 00000000000..e7d4daf0492 --- /dev/null +++ b/plugins/discourse-presence/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-presence/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-reactions/package.json b/plugins/discourse-reactions/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-reactions/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-reactions/tsconfig.json b/plugins/discourse-reactions/tsconfig.json new file mode 100644 index 00000000000..4cc08b42ec5 --- /dev/null +++ b/plugins/discourse-reactions/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-reactions/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-rss-polling/package.json b/plugins/discourse-rss-polling/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-rss-polling/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-rss-polling/tsconfig.json b/plugins/discourse-rss-polling/tsconfig.json new file mode 100644 index 00000000000..a209fe85ac9 --- /dev/null +++ b/plugins/discourse-rss-polling/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-rss-polling/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-solved/package.json b/plugins/discourse-solved/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-solved/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-solved/tsconfig.json b/plugins/discourse-solved/tsconfig.json new file mode 100644 index 00000000000..c894efaa5bb --- /dev/null +++ b/plugins/discourse-solved/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-solved/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-subscriptions/package.json b/plugins/discourse-subscriptions/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-subscriptions/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-subscriptions/tsconfig.json b/plugins/discourse-subscriptions/tsconfig.json new file mode 100644 index 00000000000..b7089a64fed --- /dev/null +++ b/plugins/discourse-subscriptions/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-subscriptions/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-templates/package.json b/plugins/discourse-templates/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-templates/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-templates/tsconfig.json b/plugins/discourse-templates/tsconfig.json new file mode 100644 index 00000000000..69614698a3d --- /dev/null +++ b/plugins/discourse-templates/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-templates/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-topic-voting/package.json b/plugins/discourse-topic-voting/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-topic-voting/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-topic-voting/tsconfig.json b/plugins/discourse-topic-voting/tsconfig.json new file mode 100644 index 00000000000..83f0222495d --- /dev/null +++ b/plugins/discourse-topic-voting/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-topic-voting/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-user-notes/package.json b/plugins/discourse-user-notes/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-user-notes/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-user-notes/tsconfig.json b/plugins/discourse-user-notes/tsconfig.json new file mode 100644 index 00000000000..6cc9269594c --- /dev/null +++ b/plugins/discourse-user-notes/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-user-notes/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/discourse-zendesk-plugin/package.json b/plugins/discourse-zendesk-plugin/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/discourse-zendesk-plugin/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/discourse-zendesk-plugin/tsconfig.json b/plugins/discourse-zendesk-plugin/tsconfig.json new file mode 100644 index 00000000000..6373a0186c4 --- /dev/null +++ b/plugins/discourse-zendesk-plugin/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/discourse-zendesk-plugin/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/footnote/package.json b/plugins/footnote/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/footnote/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/footnote/tsconfig.json b/plugins/footnote/tsconfig.json new file mode 100644 index 00000000000..9a5e285dc1b --- /dev/null +++ b/plugins/footnote/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/footnote/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/poll/package.json b/plugins/poll/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/poll/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/poll/tsconfig.json b/plugins/poll/tsconfig.json new file mode 100644 index 00000000000..fdb7a4ba60e --- /dev/null +++ b/plugins/poll/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/poll/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/spoiler-alert/package.json b/plugins/spoiler-alert/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/spoiler-alert/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/spoiler-alert/tsconfig.json b/plugins/spoiler-alert/tsconfig.json new file mode 100644 index 00000000000..e9e52e2f3eb --- /dev/null +++ b/plugins/spoiler-alert/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/spoiler-alert/*": ["./assets/javascripts/*"] + } + } +} diff --git a/plugins/styleguide/package.json b/plugins/styleguide/package.json new file mode 100644 index 00000000000..cddae255cd8 --- /dev/null +++ b/plugins/styleguide/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "discourse": "workspace:@discourse/types@0.0.0" + } +} diff --git a/plugins/styleguide/tsconfig.json b/plugins/styleguide/tsconfig.json new file mode 100644 index 00000000000..e3f991ec363 --- /dev/null +++ b/plugins/styleguide/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "discourse/tsconfig-plugin", + "include": [ + "./assets/javascripts/**/*", + "./test/javascripts/**/*" + ], + "compilerOptions": { + "paths": { + "discourse/plugins/styleguide/*": ["./assets/javascripts/*"] + } + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 007ff0f4c13..3d3db76ec38 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,7 +36,7 @@ importers: version: 7.28.0(@babel/core@7.28.5) '@discourse/lint-configs': specifier: ^2.34.2 - version: 2.34.2(ember-template-lint@7.9.3)(eslint@9.39.1)(postcss@8.5.6)(prettier@3.6.2)(stylelint@16.25.0(typescript@5.9.3)) + version: 2.34.2(ember-template-lint@7.9.3)(eslint@9.39.1(jiti@2.4.2))(postcss@8.5.6)(prettier@3.6.2)(stylelint@16.25.0(typescript@5.9.3)) '@discourse/moment-timezone-names-translations': specifier: ^1.0.0 version: 1.0.0 @@ -46,6 +46,9 @@ importers: '@glint/ember-tsc': specifier: ^1.0.7 version: 1.0.7(typescript@5.9.3) + '@glint/tsserver-plugin': + specifier: ^2.0.7 + version: 2.0.7 '@rdil/parallel-prettier': specifier: ^3.0.0 version: 3.0.0(prettier@3.6.2) @@ -66,10 +69,10 @@ importers: version: 7.9.3 esbuild: specifier: ^0.25.11 - version: 0.25.12 + version: 0.25.11 eslint: specifier: 9.39.1 - version: 9.39.1 + version: 9.39.1(jiti@2.4.2) jsdoc: specifier: ^4.0.5 version: 4.0.5 @@ -87,7 +90,7 @@ importers: version: 3.1.0(ember-template-lint@7.9.3) lint-to-the-future-eslint: specifier: ^3.2.0 - version: 3.2.0(eslint@9.39.1) + version: 3.2.0(eslint@9.39.1(jiti@2.4.2)) playwright: specifier: 1.56.1 version: 1.56.1 @@ -202,7 +205,7 @@ importers: devDependencies: vitest: specifier: ^4.0.8 - version: 4.0.8(@types/node@24.10.0)(jsdom@25.0.1)(terser@5.44.1) + version: 4.0.8(@types/node@24.9.2)(jiti@2.4.2)(jsdom@25.0.1)(terser@5.44.1) frontend/custom-proxy: devDependencies: @@ -436,7 +439,7 @@ importers: version: 2.1.8(@embroider/core@3.5.5(@glint/template@1.7.2))(@glint/template@1.7.2) '@embroider/webpack': specifier: ^4.1.0 - version: 4.1.0(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + version: 4.1.0(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) '@floating-ui/dom': specifier: ^1.7.4 version: 1.7.4 @@ -514,7 +517,7 @@ importers: version: 2.0.1(@babel/core@7.28.5)(@glint/template@1.7.2) ember-auto-import: specifier: ^2.11.2 - version: 2.11.2(@glint/template@1.7.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + version: 2.11.2(@glint/template@1.7.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) ember-buffered-proxy: specifier: ^2.1.1 version: 2.1.1(@babel/core@7.28.5) @@ -523,7 +526,7 @@ importers: version: 1.0.2(@babel/core@7.28.5)(@glint/template@1.7.2)(ember-source@6.6.0(patch_hash=nsmtwj6thcg4lxkztr5oqzscwe)(@glimmer/component@2.0.0)(rsvp@4.8.5)) ember-cli: specifier: ~6.8.0 - version: 6.8.0(@types/node@24.10.0)(handlebars@4.7.8)(underscore@1.13.7) + version: 6.8.0(@types/node@24.9.2)(handlebars@4.7.8)(underscore@1.13.7) ember-cli-app-version: specifier: ^7.0.0 version: 7.0.0(ember-source@6.6.0(patch_hash=nsmtwj6thcg4lxkztr5oqzscwe)(@glimmer/component@2.0.0)(rsvp@4.8.5)) @@ -553,7 +556,7 @@ importers: version: 6.1.1 ember-exam: specifier: ^10.0.0 - version: 10.0.0(@glint/template@1.7.2)(ember-qunit@9.0.4(@ember/test-helpers@5.4.0(@babel/core@7.28.5)(@glint/template@1.7.2))(@glint/template@1.7.2)(qunit@2.24.2))(ember-source@6.6.0(patch_hash=nsmtwj6thcg4lxkztr5oqzscwe)(@glimmer/component@2.0.0)(rsvp@4.8.5))(qunit@2.24.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + version: 10.0.0(@glint/template@1.7.2)(ember-qunit@9.0.4(@ember/test-helpers@5.4.0(@babel/core@7.28.5)(@glint/template@1.7.2))(@glint/template@1.7.2)(qunit@2.24.2))(ember-source@6.6.0(patch_hash=nsmtwj6thcg4lxkztr5oqzscwe)(@glimmer/component@2.0.0)(rsvp@4.8.5))(qunit@2.24.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) ember-load-initializers: specifier: ^3.0.1 version: 3.0.1(ember-source@6.6.0(patch_hash=nsmtwj6thcg4lxkztr5oqzscwe)(@glimmer/component@2.0.0)(rsvp@4.8.5)) @@ -574,7 +577,7 @@ importers: version: 2.6.0 imports-loader: specifier: ^5.0.0 - version: 5.0.0(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + version: 5.0.0(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) jquery: specifier: ^3.7.1 version: 3.7.1 @@ -625,10 +628,10 @@ importers: version: 2.1.1(patch_hash=ng672yys7q7cl7vz44xn3y54uq) webpack: specifier: 5.99.9 - version: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + version: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) webpack-retry-chunk-load-plugin: specifier: ^3.1.1 - version: 3.1.1(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + version: 3.1.1(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) webpack-stats-plugin: specifier: ^1.1.3 version: 1.1.3 @@ -655,7 +658,7 @@ importers: version: link:../discourse-i18n ember-auto-import: specifier: ^2.11.2 - version: 2.11.2(@glint/template@1.7.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + version: 2.11.2(@glint/template@1.7.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) markdown-it: specifier: 14.0.0 version: 14.0.0 @@ -692,10 +695,25 @@ importers: devDependencies: ember-cli: specifier: ~6.8.0 - version: 6.8.0(@types/node@24.10.0)(handlebars@4.7.8)(underscore@1.13.7) + version: 6.8.0(@types/node@24.9.2)(handlebars@4.7.8)(underscore@1.13.7) webpack: specifier: 5.99.9 - version: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + version: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) + + frontend/discourse-types: + dependencies: + '@types/@glimmer__component': + specifier: npm:@glimmer/component@^2.0.0 + version: '@glimmer/component@2.0.0' + '@types/@glint__ember-tsc': + specifier: npm:@glint/ember-tsc@^1.0.7 + version: '@glint/ember-tsc@1.0.7(typescript@5.9.3)' + '@types/@glint__template': + specifier: npm:@glint/template@^1.7.2 + version: '@glint/template@1.7.2' + ember-source: + specifier: ~6.6.0 + version: 6.6.0(patch_hash=nsmtwj6thcg4lxkztr5oqzscwe)(@glimmer/component@2.0.0)(rsvp@4.8.5) frontend/discourse-widget-hbs: dependencies: @@ -704,7 +722,7 @@ importers: version: 7.28.5(supports-color@8.1.1) ember-auto-import: specifier: ^2.11.2 - version: 2.11.2(@glint/template@1.7.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + version: 2.11.2(@glint/template@1.7.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) ember-cli-babel: specifier: ^8.2.0 version: 8.2.0(@babel/core@7.28.5) @@ -717,7 +735,7 @@ importers: version: 2.2.0 '@embroider/test-setup': specifier: ^4.0.0 - version: 4.0.0(@embroider/compat@3.8.5(@embroider/core@3.5.5(@glint/template@1.7.2))(@glint/template@1.7.2))(@embroider/core@3.5.5(@glint/template@1.7.2))(@embroider/webpack@4.1.0(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12))) + version: 4.0.0(@embroider/compat@3.8.5(@embroider/core@3.5.5(@glint/template@1.7.2))(@glint/template@1.7.2))(@embroider/core@3.5.5(@glint/template@1.7.2))(@embroider/webpack@4.1.0(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11))) '@glimmer/component': specifier: ^2.0.0 version: 2.0.0 @@ -729,7 +747,7 @@ importers: version: 3.0.0 ember-cli: specifier: ~6.8.0 - version: 6.8.0(@types/node@24.10.0)(handlebars@4.7.8)(underscore@1.13.7) + version: 6.8.0(@types/node@24.9.2)(handlebars@4.7.8)(underscore@1.13.7) ember-cli-inject-live-reload: specifier: ^2.1.0 version: 2.1.0 @@ -759,7 +777,7 @@ importers: version: 4.7.0 webpack: specifier: 5.99.9 - version: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + version: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) frontend/ember-cli-progress-ci: {} @@ -773,7 +791,7 @@ importers: version: link:../discourse-i18n ember-auto-import: specifier: ^2.11.2 - version: 2.11.2(@glint/template@1.7.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + version: 2.11.2(@glint/template@1.7.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) ember-cli-babel: specifier: ^8.2.0 version: 8.2.0(@babel/core@7.28.5) @@ -789,7 +807,7 @@ importers: version: 2.2.0 '@embroider/test-setup': specifier: ^4.0.0 - version: 4.0.0(@embroider/compat@3.8.5(@embroider/core@3.5.5(@glint/template@1.7.2))(@glint/template@1.7.2))(@embroider/core@3.5.5(@glint/template@1.7.2))(@embroider/webpack@4.1.0(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12))) + version: 4.0.0(@embroider/compat@3.8.5(@embroider/core@3.5.5(@glint/template@1.7.2))(@glint/template@1.7.2))(@embroider/core@3.5.5(@glint/template@1.7.2))(@embroider/webpack@4.1.0(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11))) '@glimmer/component': specifier: ^2.0.0 version: 2.0.0 @@ -807,7 +825,7 @@ importers: version: 3.0.0 ember-cli: specifier: ~6.8.0 - version: 6.8.0(@types/node@24.10.0)(handlebars@4.7.8)(underscore@1.13.7) + version: 6.8.0(@types/node@24.9.2)(handlebars@4.7.8)(underscore@1.13.7) ember-cli-inject-live-reload: specifier: ^2.1.0 version: 2.1.0 @@ -837,7 +855,259 @@ importers: version: 4.7.0 webpack: specifier: 5.99.9 - version: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + version: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) + + plugins/automation: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/chat: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/checklist: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-adplugin: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-affiliate: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-ai: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-apple-auth: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-assign: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-cakeday: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-calendar: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-chat-integration: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-data-explorer: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-details: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-gamification: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-github: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-graphviz: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-hcaptcha: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-lazy-videos: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-local-dates: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-login-with-amazon: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-lti: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-math: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-microsoft-auth: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-narrative-bot: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-oauth2-basic: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-openid-connect: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-patreon: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-policy: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-post-voting: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-presence: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-reactions: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-rss-polling: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-solved: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-subscriptions: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-templates: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-topic-voting: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-user-notes: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/discourse-zendesk-plugin: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/footnote: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/poll: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/spoiler-alert: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types + + plugins/styleguide: + dependencies: + discourse: + specifier: workspace:@discourse/types@0.0.0 + version: link:../../frontend/discourse-types packages: @@ -856,8 +1126,8 @@ packages: resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.28.5': - resolution: {integrity: sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA==} + '@babel/eslint-parser@7.28.4': + resolution: {integrity: sha512-Aa+yDiH87980jR6zvRfFuCR1+dLb00vBydhTL+zI992Rz/wQhSvuxjmOOuJOgO3XmakO6RykRGD2S1mq1AtgHA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 @@ -1677,158 +1947,158 @@ packages: '@embroider/core': ^3.5.2 webpack: ^5.0.0 - '@esbuild/aix-ppc64@0.25.12': - resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} + '@esbuild/aix-ppc64@0.25.11': + resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.12': - resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} + '@esbuild/android-arm64@0.25.11': + resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.12': - resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} + '@esbuild/android-arm@0.25.11': + resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.12': - resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} + '@esbuild/android-x64@0.25.11': + resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.12': - resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} + '@esbuild/darwin-arm64@0.25.11': + resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.12': - resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} + '@esbuild/darwin-x64@0.25.11': + resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.12': - resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} + '@esbuild/freebsd-arm64@0.25.11': + resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.12': - resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} + '@esbuild/freebsd-x64@0.25.11': + resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.12': - resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} + '@esbuild/linux-arm64@0.25.11': + resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.12': - resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} + '@esbuild/linux-arm@0.25.11': + resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.12': - resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} + '@esbuild/linux-ia32@0.25.11': + resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.12': - resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} + '@esbuild/linux-loong64@0.25.11': + resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.12': - resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} + '@esbuild/linux-mips64el@0.25.11': + resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.12': - resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} + '@esbuild/linux-ppc64@0.25.11': + resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.12': - resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} + '@esbuild/linux-riscv64@0.25.11': + resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.12': - resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} + '@esbuild/linux-s390x@0.25.11': + resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.12': - resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} + '@esbuild/linux-x64@0.25.11': + resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.12': - resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} + '@esbuild/netbsd-arm64@0.25.11': + resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.12': - resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} + '@esbuild/netbsd-x64@0.25.11': + resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.12': - resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} + '@esbuild/openbsd-arm64@0.25.11': + resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.12': - resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} + '@esbuild/openbsd-x64@0.25.11': + resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.12': - resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} + '@esbuild/openharmony-arm64@0.25.11': + resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.25.12': - resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} + '@esbuild/sunos-x64@0.25.11': + resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.12': - resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} + '@esbuild/win32-arm64@0.25.11': + resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.12': - resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} + '@esbuild/win32-ia32@0.25.11': + resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.12': - resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} + '@esbuild/win32-x64@0.25.11': + resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1839,8 +2109,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.12.2': - resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/config-array@0.21.1': @@ -2020,6 +2290,9 @@ packages: '@glint/template@1.7.2': resolution: {integrity: sha512-2oR9keyT1+MEP61zM9D7wPRTvoukUtRm+OpRZgWPIJH8WhjaVWardTuF3l7OX2frR1j/46FpKt0kZoFBXhzW4Q==} + '@glint/tsserver-plugin@2.0.7': + resolution: {integrity: sha512-w8NU7l2csI04DUHR4CdzLLwd9wQFeRqaS/C+g/EGBUxN+loI++vcVJ6JISuJJoskAJWHSJGwWGUHWK9ZmCK68A==} + '@handlebars/parser@2.0.0': resolution: {integrity: sha512-EP9uEDZv/L5Qh9IWuMUGJRfwhXJ4h1dqKTT4/3+tY0eu7sPis7xh23j61SYUnNF4vqCQvvUXpDo9Bh/+q1zASA==} @@ -2639,8 +2912,8 @@ packages: '@types/minimatch@3.0.5': resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - '@types/node@24.10.0': - resolution: {integrity: sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==} + '@types/node@24.9.2': + resolution: {integrity: sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA==} '@types/qs@6.14.0': resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} @@ -2690,8 +2963,8 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/tsconfig-utils@8.46.2': - resolution: {integrity: sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==} + '@typescript-eslint/tsconfig-utils@8.46.0': + resolution: {integrity: sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -3221,8 +3494,8 @@ packages: balanced-match@2.0.0: resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} - bare-events@2.8.2: - resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} + bare-events@2.8.1: + resolution: {integrity: sha512-oxSAxTS1hRfnyit2CL5QpAOS5ixfBjj6ex3yTNvXyY/kE719jQ/IjuESJBK2w5v4wwQRAHGseVJXx9QBYOtFGQ==} peerDependencies: bare-abort-controller: '*' peerDependenciesMeta: @@ -3256,8 +3529,8 @@ packages: bare-events: optional: true - bare-url@2.3.2: - resolution: {integrity: sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==} + bare-url@2.3.1: + resolution: {integrity: sha512-v2yl0TnaZTdEnelkKtXZGnotiV6qATBlnNuUMrHl6v9Lmmrh9mw9RYyImPU7/4RahumSwQS1k2oKXcRfXcbjJw==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -4599,8 +4872,8 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - esbuild@0.25.12: - resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} + esbuild@0.25.11: + resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==} engines: {node: '>=18'} hasBin: true @@ -5936,6 +6209,10 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + jquery@3.7.1: resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==} @@ -8745,8 +9022,8 @@ packages: '@volar/language-service': optional: true - vscode-html-languageservice@5.6.0: - resolution: {integrity: sha512-FIVz83oGw2tBkOr8gQPeiREInnineCKGCz3ZD1Pi6opOuX3nSRkc4y4zLLWsuop+6ttYX//XZCI6SLzGhRzLmA==} + vscode-html-languageservice@5.5.2: + resolution: {integrity: sha512-QpaUhCjvb7U/qThOzo4V6grwsRE62Jk/vf8BRJZoABlMw3oplLB5uovrvcrLO9vYhkeMiSjyqLnCxbfHzzZqmw==} vscode-jsonrpc@8.2.0: resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} @@ -9101,11 +9378,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.28.5(@babel/core@7.28.5)(eslint@9.39.1)': + '@babel/eslint-parser@7.28.4(@babel/core@7.28.5)(eslint@9.39.1(jiti@2.4.2))': dependencies: '@babel/core': 7.28.5(supports-color@8.1.1) '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 9.39.1 + eslint: 9.39.1(jiti@2.4.2) eslint-visitor-keys: 2.1.0 semver: 6.3.1 @@ -9910,19 +10187,19 @@ snapshots: '@discourse/itsatrap@2.0.10': {} - '@discourse/lint-configs@2.34.2(ember-template-lint@7.9.3)(eslint@9.39.1)(postcss@8.5.6)(prettier@3.6.2)(stylelint@16.25.0(typescript@5.9.3))': + '@discourse/lint-configs@2.34.2(ember-template-lint@7.9.3)(eslint@9.39.1(jiti@2.4.2))(postcss@8.5.6)(prettier@3.6.2)(stylelint@16.25.0(typescript@5.9.3))': dependencies: '@babel/core': 7.28.5(supports-color@8.1.1) - '@babel/eslint-parser': 7.28.5(@babel/core@7.28.5)(eslint@9.39.1) + '@babel/eslint-parser': 7.28.4(@babel/core@7.28.5)(eslint@9.39.1(jiti@2.4.2)) '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5) ember-template-lint: 7.9.3 - eslint: 9.39.1 - eslint-plugin-decorator-position: 6.0.0(@babel/eslint-parser@7.28.5(@babel/core@7.28.5)(eslint@9.39.1))(eslint@9.39.1) - eslint-plugin-ember: 12.7.4(@babel/core@7.28.5)(eslint@9.39.1)(typescript@5.9.3) - eslint-plugin-import: 2.32.0(eslint@9.39.1) - eslint-plugin-qunit: 8.2.5(eslint@9.39.1) - eslint-plugin-simple-import-sort: 12.1.1(eslint@9.39.1) - eslint-plugin-sort-class-members: 1.21.0(eslint@9.39.1) + eslint: 9.39.1(jiti@2.4.2) + eslint-plugin-decorator-position: 6.0.0(@babel/eslint-parser@7.28.4(@babel/core@7.28.5)(eslint@9.39.1(jiti@2.4.2)))(eslint@9.39.1(jiti@2.4.2)) + eslint-plugin-ember: 12.7.4(@babel/core@7.28.5)(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3) + eslint-plugin-import: 2.32.0(eslint@9.39.1(jiti@2.4.2)) + eslint-plugin-qunit: 8.2.5(eslint@9.39.1(jiti@2.4.2)) + eslint-plugin-simple-import-sort: 12.1.1(eslint@9.39.1(jiti@2.4.2)) + eslint-plugin-sort-class-members: 1.21.0(eslint@9.39.1(jiti@2.4.2)) globals: 16.4.0 prettier: 3.6.2 prettier-plugin-ember-template-tag: 2.1.0(prettier@3.6.2) @@ -10071,11 +10348,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@embroider/babel-loader-9@3.1.1(@embroider/core@3.5.5(@glint/template@1.7.2))(supports-color@8.1.1)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12))': + '@embroider/babel-loader-9@3.1.1(@embroider/core@3.5.5(@glint/template@1.7.2))(supports-color@8.1.1)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11))': dependencies: '@babel/core': 7.28.5(supports-color@8.1.1) '@embroider/core': 3.5.5(@glint/template@1.7.2) - babel-loader: 9.2.1(@babel/core@7.28.5)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + babel-loader: 9.2.1(@babel/core@7.28.5)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) transitivePeerDependencies: - supports-color - webpack @@ -10167,10 +10444,10 @@ snapshots: - supports-color - utf-8-validate - '@embroider/hbs-loader@3.0.3(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12))': + '@embroider/hbs-loader@3.0.3(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11))': dependencies: '@embroider/core': 3.5.5(@glint/template@1.7.2) - webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) '@embroider/macros@1.16.12(@glint/template@1.7.2)': dependencies: @@ -10264,130 +10541,130 @@ snapshots: transitivePeerDependencies: - supports-color - '@embroider/test-setup@4.0.0(@embroider/compat@3.8.5(@embroider/core@3.5.5(@glint/template@1.7.2))(@glint/template@1.7.2))(@embroider/core@3.5.5(@glint/template@1.7.2))(@embroider/webpack@4.1.0(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)))': + '@embroider/test-setup@4.0.0(@embroider/compat@3.8.5(@embroider/core@3.5.5(@glint/template@1.7.2))(@glint/template@1.7.2))(@embroider/core@3.5.5(@glint/template@1.7.2))(@embroider/webpack@4.1.0(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)))': dependencies: lodash: 4.17.21 resolve: 1.22.11 optionalDependencies: '@embroider/compat': 3.8.5(@embroider/core@3.5.5(@glint/template@1.7.2))(@glint/template@1.7.2) '@embroider/core': 3.5.5(@glint/template@1.7.2) - '@embroider/webpack': 4.1.0(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + '@embroider/webpack': 4.1.0(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) - '@embroider/webpack@4.1.0(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12))': + '@embroider/webpack@4.1.0(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11))': dependencies: '@babel/core': 7.28.5(supports-color@8.1.1) '@babel/preset-env': 7.28.5(@babel/core@7.28.5)(supports-color@8.1.1) - '@embroider/babel-loader-9': 3.1.1(@embroider/core@3.5.5(@glint/template@1.7.2))(supports-color@8.1.1)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + '@embroider/babel-loader-9': 3.1.1(@embroider/core@3.5.5(@glint/template@1.7.2))(supports-color@8.1.1)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) '@embroider/core': 3.5.5(@glint/template@1.7.2) - '@embroider/hbs-loader': 3.0.3(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + '@embroider/hbs-loader': 3.0.3(@embroider/core@3.5.5(@glint/template@1.7.2))(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) '@embroider/shared-internals': 2.9.0(supports-color@8.1.1) '@types/supports-color': 8.1.3 assert-never: 1.4.0 - babel-loader: 8.4.1(@babel/core@7.28.5)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) - css-loader: 5.2.7(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + babel-loader: 8.4.1(@babel/core@7.28.5)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) + css-loader: 5.2.7(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) csso: 4.2.0 debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 fs-extra: 9.1.0 jsdom: 25.0.1(supports-color@8.1.1) lodash: 4.17.21 - mini-css-extract-plugin: 2.9.4(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + mini-css-extract-plugin: 2.9.4(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) semver: 7.7.3 source-map-url: 0.4.1 - style-loader: 2.0.0(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + style-loader: 2.0.0(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) supports-color: 8.1.1 terser: 5.44.1 - thread-loader: 3.0.4(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) - webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + thread-loader: 3.0.4(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) + webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) transitivePeerDependencies: - bufferutil - canvas - utf-8-validate - '@esbuild/aix-ppc64@0.25.12': + '@esbuild/aix-ppc64@0.25.11': optional: true - '@esbuild/android-arm64@0.25.12': + '@esbuild/android-arm64@0.25.11': optional: true - '@esbuild/android-arm@0.25.12': + '@esbuild/android-arm@0.25.11': optional: true - '@esbuild/android-x64@0.25.12': + '@esbuild/android-x64@0.25.11': optional: true - '@esbuild/darwin-arm64@0.25.12': + '@esbuild/darwin-arm64@0.25.11': optional: true - '@esbuild/darwin-x64@0.25.12': + '@esbuild/darwin-x64@0.25.11': optional: true - '@esbuild/freebsd-arm64@0.25.12': + '@esbuild/freebsd-arm64@0.25.11': optional: true - '@esbuild/freebsd-x64@0.25.12': + '@esbuild/freebsd-x64@0.25.11': optional: true - '@esbuild/linux-arm64@0.25.12': + '@esbuild/linux-arm64@0.25.11': optional: true - '@esbuild/linux-arm@0.25.12': + '@esbuild/linux-arm@0.25.11': optional: true - '@esbuild/linux-ia32@0.25.12': + '@esbuild/linux-ia32@0.25.11': optional: true - '@esbuild/linux-loong64@0.25.12': + '@esbuild/linux-loong64@0.25.11': optional: true - '@esbuild/linux-mips64el@0.25.12': + '@esbuild/linux-mips64el@0.25.11': optional: true - '@esbuild/linux-ppc64@0.25.12': + '@esbuild/linux-ppc64@0.25.11': optional: true - '@esbuild/linux-riscv64@0.25.12': + '@esbuild/linux-riscv64@0.25.11': optional: true - '@esbuild/linux-s390x@0.25.12': + '@esbuild/linux-s390x@0.25.11': optional: true - '@esbuild/linux-x64@0.25.12': + '@esbuild/linux-x64@0.25.11': optional: true - '@esbuild/netbsd-arm64@0.25.12': + '@esbuild/netbsd-arm64@0.25.11': optional: true - '@esbuild/netbsd-x64@0.25.12': + '@esbuild/netbsd-x64@0.25.11': optional: true - '@esbuild/openbsd-arm64@0.25.12': + '@esbuild/openbsd-arm64@0.25.11': optional: true - '@esbuild/openbsd-x64@0.25.12': + '@esbuild/openbsd-x64@0.25.11': optional: true - '@esbuild/openharmony-arm64@0.25.12': + '@esbuild/openharmony-arm64@0.25.11': optional: true - '@esbuild/sunos-x64@0.25.12': + '@esbuild/sunos-x64@0.25.11': optional: true - '@esbuild/win32-arm64@0.25.12': + '@esbuild/win32-arm64@0.25.11': optional: true - '@esbuild/win32-ia32@0.25.12': + '@esbuild/win32-ia32@0.25.11': optional: true - '@esbuild/win32-x64@0.25.12': + '@esbuild/win32-x64@0.25.11': optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1)': + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1(jiti@2.4.2))': dependencies: - eslint: 9.39.1 + eslint: 9.39.1(jiti@2.4.2) eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.2': {} + '@eslint-community/regexpp@4.12.1': {} '@eslint/config-array@0.21.1': dependencies: @@ -10674,6 +10951,16 @@ snapshots: '@glint/template@1.7.2': {} + '@glint/tsserver-plugin@2.0.7': + dependencies: + '@glint/ember-tsc': 1.0.7(typescript@5.9.3) + '@volar/language-core': 2.4.23 + '@volar/typescript': 2.4.23 + jiti: 2.4.2 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@handlebars/parser@2.0.0': {} '@handlebars/parser@2.2.1': {} @@ -10691,12 +10978,12 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@inquirer/external-editor@1.0.2(@types/node@24.10.0)': + '@inquirer/external-editor@1.0.2(@types/node@24.9.2)': dependencies: chardet: 2.1.0 iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 24.10.0 + '@types/node': 24.9.2 '@inquirer/figures@1.0.14': {} @@ -11237,7 +11524,7 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 24.10.0 + '@types/node': 24.9.2 '@types/chai-as-promised@7.1.8': dependencies: @@ -11252,11 +11539,11 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 24.10.0 + '@types/node': 24.9.2 '@types/cors@2.8.18': dependencies: - '@types/node': 24.10.0 + '@types/node': 24.9.2 '@types/deep-eql@4.0.2': {} @@ -11279,7 +11566,7 @@ snapshots: '@types/express-serve-static-core@4.19.7': dependencies: - '@types/node': 24.10.0 + '@types/node': 24.9.2 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 1.2.0 @@ -11293,11 +11580,11 @@ snapshots: '@types/fs-extra@5.1.0': dependencies: - '@types/node': 24.10.0 + '@types/node': 24.9.2 '@types/fs-extra@8.1.5': dependencies: - '@types/node': 24.10.0 + '@types/node': 24.9.2 '@types/glob@9.0.0': dependencies: @@ -11326,7 +11613,7 @@ snapshots: '@types/minimatch@3.0.5': {} - '@types/node@24.10.0': + '@types/node@24.9.2': dependencies: undici-types: 7.16.0 @@ -11341,23 +11628,23 @@ snapshots: '@types/rimraf@2.0.5': dependencies: '@types/glob': 9.0.0 - '@types/node': 24.10.0 + '@types/node': 24.9.2 '@types/rsvp@4.0.9': {} '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 24.10.0 + '@types/node': 24.9.2 '@types/send@1.2.0': dependencies: - '@types/node': 24.10.0 + '@types/node': 24.9.2 '@types/serve-static@1.15.9': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 24.10.0 + '@types/node': 24.9.2 '@types/send': 0.17.5 '@types/sizzle@2.3.10': {} @@ -11376,10 +11663,10 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 24.10.0 + '@types/node': 24.9.2 optional: true - '@typescript-eslint/tsconfig-utils@8.46.2(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.46.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 @@ -11434,13 +11721,13 @@ snapshots: chai: 6.2.0 tinyrainbow: 3.0.3 - '@vitest/mocker@4.0.8(vite@7.2.2(@types/node@24.10.0)(terser@5.44.1))': + '@vitest/mocker@4.0.8(vite@7.2.2(@types/node@24.9.2)(jiti@2.4.2)(terser@5.44.1))': dependencies: '@vitest/spy': 4.0.8 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.2.2(@types/node@24.10.0)(terser@5.44.1) + vite: 7.2.2(@types/node@24.9.2)(jiti@2.4.2)(terser@5.44.1) '@vitest/pretty-format@4.0.8': dependencies: @@ -11876,21 +12163,21 @@ snapshots: babel-import-util@3.0.1: {} - babel-loader@8.4.1(@babel/core@7.28.5)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)): + babel-loader@8.4.1(@babel/core@7.28.5)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)): dependencies: '@babel/core': 7.28.5(supports-color@8.1.1) find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) - babel-loader@9.2.1(@babel/core@7.28.5)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)): + babel-loader@9.2.1(@babel/core@7.28.5)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)): dependencies: '@babel/core': 7.28.5(supports-color@8.1.1) find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) babel-plugin-debug-macros@0.2.0(@babel/core@7.28.5): dependencies: @@ -12000,14 +12287,14 @@ snapshots: balanced-match@2.0.0: {} - bare-events@2.8.2: {} + bare-events@2.8.1: {} bare-fs@4.5.0: dependencies: - bare-events: 2.8.2 + bare-events: 2.8.1 bare-path: 3.0.0 - bare-stream: 2.7.0(bare-events@2.8.2) - bare-url: 2.3.2 + bare-stream: 2.7.0(bare-events@2.8.1) + bare-url: 2.3.1 fast-fifo: 1.3.2 transitivePeerDependencies: - bare-abort-controller @@ -12022,17 +12309,17 @@ snapshots: bare-os: 3.6.2 optional: true - bare-stream@2.7.0(bare-events@2.8.2): + bare-stream@2.7.0(bare-events@2.8.1): dependencies: streamx: 2.23.0 optionalDependencies: - bare-events: 2.8.2 + bare-events: 2.8.1 transitivePeerDependencies: - bare-abort-controller - react-native-b4a optional: true - bare-url@2.3.2: + bare-url@2.3.1: dependencies: bare-path: 3.0.0 optional: true @@ -12685,7 +12972,7 @@ snapshots: chrome-launcher@1.2.1: dependencies: - '@types/node': 24.10.0 + '@types/node': 24.9.2 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 2.0.2 @@ -12971,7 +13258,7 @@ snapshots: css-functions-list@3.2.3: {} - css-loader@5.2.7(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)): + css-loader@5.2.7(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)): dependencies: icss-utils: 5.1.0(postcss@8.5.6) loader-utils: 2.0.4 @@ -12983,7 +13270,7 @@ snapshots: postcss-value-parser: 4.2.0 schema-utils: 3.3.0 semver: 7.7.3 - webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) css-tree@1.1.3: dependencies: @@ -13186,7 +13473,7 @@ snapshots: - '@glint/template' - supports-color - ember-auto-import@2.11.2(@glint/template@1.7.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)): + ember-auto-import@2.11.2(@glint/template@1.7.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)): dependencies: '@babel/core': 7.28.5(supports-color@8.1.1) '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.28.5) @@ -13196,7 +13483,7 @@ snapshots: '@babel/preset-env': 7.28.5(@babel/core@7.28.5)(supports-color@8.1.1) '@embroider/macros': 1.19.2(@glint/template@1.7.2) '@embroider/shared-internals': 2.9.1 - babel-loader: 8.4.1(@babel/core@7.28.5)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + babel-loader: 8.4.1(@babel/core@7.28.5)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) babel-plugin-ember-modules-api-polyfill: 3.5.0 babel-plugin-ember-template-compilation: 2.4.1 babel-plugin-htmlbars-inline-precompile: 5.3.1 @@ -13206,7 +13493,7 @@ snapshots: broccoli-merge-trees: 4.2.0 broccoli-plugin: 4.0.7 broccoli-source: 3.0.1 - css-loader: 5.2.7(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + css-loader: 5.2.7(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) debug: 4.4.3(supports-color@8.1.1) fs-extra: 10.1.0 fs-tree-diff: 2.0.1 @@ -13214,14 +13501,14 @@ snapshots: is-subdir: 1.2.0 js-string-escape: 1.0.1 lodash: 4.17.21 - mini-css-extract-plugin: 2.9.4(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + mini-css-extract-plugin: 2.9.4(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) minimatch: 3.1.2 parse5: 6.0.1 pkg-entry-points: 1.1.1 resolve: 1.22.11 resolve-package-path: 4.0.3 semver: 7.7.3 - style-loader: 2.0.0(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + style-loader: 2.0.0(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) typescript-memoize: 1.1.1 walk-sync: 3.0.0 transitivePeerDependencies: @@ -13473,7 +13760,7 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli@6.8.0(@types/node@24.10.0)(handlebars@4.7.8)(underscore@1.13.7): + ember-cli@6.8.0(@types/node@24.9.2)(handlebars@4.7.8)(underscore@1.13.7): dependencies: '@ember-tooling/blueprint-blueprint': 0.2.1 '@ember-tooling/blueprint-model': 0.4.1 @@ -13529,7 +13816,7 @@ snapshots: heimdalljs-logger: 0.1.10 http-proxy: 1.18.1 inflection: 2.0.1 - inquirer: 9.3.8(@types/node@24.10.0) + inquirer: 9.3.8(@types/node@24.9.2) is-git-url: 1.0.0 is-language-code: 3.1.0 isbinaryfile: 5.0.6 @@ -13649,12 +13936,12 @@ snapshots: ember-disable-prototype-extensions@1.1.3: {} - ember-eslint-parser@0.5.11(@babel/core@7.28.5)(eslint@9.39.1)(typescript@5.9.3): + ember-eslint-parser@0.5.11(@babel/core@7.28.5)(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3): dependencies: '@babel/core': 7.28.5(supports-color@8.1.1) - '@babel/eslint-parser': 7.28.5(@babel/core@7.28.5)(eslint@9.39.1) + '@babel/eslint-parser': 7.28.4(@babel/core@7.28.5)(eslint@9.39.1(jiti@2.4.2)) '@glimmer/syntax': 0.93.1 - '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3) content-tag: 2.0.3 eslint-scope: 7.2.2 html-tags: 3.3.1 @@ -13664,13 +13951,13 @@ snapshots: - eslint - typescript - ember-exam@10.0.0(@glint/template@1.7.2)(ember-qunit@9.0.4(@ember/test-helpers@5.4.0(@babel/core@7.28.5)(@glint/template@1.7.2))(@glint/template@1.7.2)(qunit@2.24.2))(ember-source@6.6.0(patch_hash=nsmtwj6thcg4lxkztr5oqzscwe)(@glimmer/component@2.0.0)(rsvp@4.8.5))(qunit@2.24.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)): + ember-exam@10.0.0(@glint/template@1.7.2)(ember-qunit@9.0.4(@ember/test-helpers@5.4.0(@babel/core@7.28.5)(@glint/template@1.7.2))(@glint/template@1.7.2)(qunit@2.24.2))(ember-source@6.6.0(patch_hash=nsmtwj6thcg4lxkztr5oqzscwe)(@glimmer/component@2.0.0)(rsvp@4.8.5))(qunit@2.24.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)): dependencies: '@babel/core': 7.28.5(supports-color@8.1.1) chalk: 5.6.0 cli-table3: 0.6.5 debug: 4.4.3(supports-color@8.1.1) - ember-auto-import: 2.11.2(@glint/template@1.7.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + ember-auto-import: 2.11.2(@glint/template@1.7.2)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) ember-cli-babel: 8.2.0(@babel/core@7.28.5) ember-qunit: 9.0.4(@ember/test-helpers@5.4.0(@babel/core@7.28.5)(@glint/template@1.7.2))(@glint/template@1.7.2)(qunit@2.24.2) ember-source: 6.6.0(patch_hash=nsmtwj6thcg4lxkztr5oqzscwe)(@glimmer/component@2.0.0)(rsvp@4.8.5) @@ -13866,7 +14153,7 @@ snapshots: engine.io@6.6.4: dependencies: '@types/cors': 2.8.18 - '@types/node': 24.10.0 + '@types/node': 24.9.2 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -13996,34 +14283,34 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - esbuild@0.25.12: + esbuild@0.25.11: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.12 - '@esbuild/android-arm': 0.25.12 - '@esbuild/android-arm64': 0.25.12 - '@esbuild/android-x64': 0.25.12 - '@esbuild/darwin-arm64': 0.25.12 - '@esbuild/darwin-x64': 0.25.12 - '@esbuild/freebsd-arm64': 0.25.12 - '@esbuild/freebsd-x64': 0.25.12 - '@esbuild/linux-arm': 0.25.12 - '@esbuild/linux-arm64': 0.25.12 - '@esbuild/linux-ia32': 0.25.12 - '@esbuild/linux-loong64': 0.25.12 - '@esbuild/linux-mips64el': 0.25.12 - '@esbuild/linux-ppc64': 0.25.12 - '@esbuild/linux-riscv64': 0.25.12 - '@esbuild/linux-s390x': 0.25.12 - '@esbuild/linux-x64': 0.25.12 - '@esbuild/netbsd-arm64': 0.25.12 - '@esbuild/netbsd-x64': 0.25.12 - '@esbuild/openbsd-arm64': 0.25.12 - '@esbuild/openbsd-x64': 0.25.12 - '@esbuild/openharmony-arm64': 0.25.12 - '@esbuild/sunos-x64': 0.25.12 - '@esbuild/win32-arm64': 0.25.12 - '@esbuild/win32-ia32': 0.25.12 - '@esbuild/win32-x64': 0.25.12 + '@esbuild/aix-ppc64': 0.25.11 + '@esbuild/android-arm': 0.25.11 + '@esbuild/android-arm64': 0.25.11 + '@esbuild/android-x64': 0.25.11 + '@esbuild/darwin-arm64': 0.25.11 + '@esbuild/darwin-x64': 0.25.11 + '@esbuild/freebsd-arm64': 0.25.11 + '@esbuild/freebsd-x64': 0.25.11 + '@esbuild/linux-arm': 0.25.11 + '@esbuild/linux-arm64': 0.25.11 + '@esbuild/linux-ia32': 0.25.11 + '@esbuild/linux-loong64': 0.25.11 + '@esbuild/linux-mips64el': 0.25.11 + '@esbuild/linux-ppc64': 0.25.11 + '@esbuild/linux-riscv64': 0.25.11 + '@esbuild/linux-s390x': 0.25.11 + '@esbuild/linux-x64': 0.25.11 + '@esbuild/netbsd-arm64': 0.25.11 + '@esbuild/netbsd-x64': 0.25.11 + '@esbuild/openbsd-arm64': 0.25.11 + '@esbuild/openbsd-x64': 0.25.11 + '@esbuild/openharmony-arm64': 0.25.11 + '@esbuild/sunos-x64': 0.25.11 + '@esbuild/win32-arm64': 0.25.11 + '@esbuild/win32-ia32': 0.25.11 + '@esbuild/win32-x64': 0.25.11 escalade@3.2.0: {} @@ -14051,36 +14338,36 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint@9.39.1): + eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint@9.39.1(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - eslint: 9.39.1 + eslint: 9.39.1(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-decorator-position@6.0.0(@babel/eslint-parser@7.28.5(@babel/core@7.28.5)(eslint@9.39.1))(eslint@9.39.1): + eslint-plugin-decorator-position@6.0.0(@babel/eslint-parser@7.28.4(@babel/core@7.28.5)(eslint@9.39.1(jiti@2.4.2)))(eslint@9.39.1(jiti@2.4.2)): dependencies: '@babel/core': 7.28.5(supports-color@8.1.1) '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5) '@ember-data/rfc395-data': 0.0.4 ember-rfc176-data: 0.3.18 - eslint: 9.39.1 + eslint: 9.39.1(jiti@2.4.2) snake-case: 3.0.4 optionalDependencies: - '@babel/eslint-parser': 7.28.5(@babel/core@7.28.5)(eslint@9.39.1) + '@babel/eslint-parser': 7.28.4(@babel/core@7.28.5)(eslint@9.39.1(jiti@2.4.2)) transitivePeerDependencies: - supports-color - eslint-plugin-ember@12.7.4(@babel/core@7.28.5)(eslint@9.39.1)(typescript@5.9.3): + eslint-plugin-ember@12.7.4(@babel/core@7.28.5)(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3): dependencies: '@ember-data/rfc395-data': 0.0.4 css-tree: 3.1.0 - ember-eslint-parser: 0.5.11(@babel/core@7.28.5)(eslint@9.39.1)(typescript@5.9.3) + ember-eslint-parser: 0.5.11(@babel/core@7.28.5)(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3) ember-rfc176-data: 0.3.18 - eslint: 9.39.1 - eslint-utils: 3.0.0(eslint@9.39.1) + eslint: 9.39.1(jiti@2.4.2) + eslint-utils: 3.0.0(eslint@9.39.1(jiti@2.4.2)) estraverse: 5.3.0 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 @@ -14090,7 +14377,7 @@ snapshots: - '@babel/core' - typescript - eslint-plugin-import@2.32.0(eslint@9.39.1): + eslint-plugin-import@2.32.0(eslint@9.39.1(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -14099,9 +14386,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.39.1 + eslint: 9.39.1(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint@9.39.1) + eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint@9.39.1(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -14117,20 +14404,20 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-qunit@8.2.5(eslint@9.39.1): + eslint-plugin-qunit@8.2.5(eslint@9.39.1(jiti@2.4.2)): dependencies: - eslint-utils: 3.0.0(eslint@9.39.1) + eslint-utils: 3.0.0(eslint@9.39.1(jiti@2.4.2)) requireindex: 1.2.0 transitivePeerDependencies: - eslint - eslint-plugin-simple-import-sort@12.1.1(eslint@9.39.1): + eslint-plugin-simple-import-sort@12.1.1(eslint@9.39.1(jiti@2.4.2)): dependencies: - eslint: 9.39.1 + eslint: 9.39.1(jiti@2.4.2) - eslint-plugin-sort-class-members@1.21.0(eslint@9.39.1): + eslint-plugin-sort-class-members@1.21.0(eslint@9.39.1(jiti@2.4.2)): dependencies: - eslint: 9.39.1 + eslint: 9.39.1(jiti@2.4.2) eslint-scope@5.1.1: dependencies: @@ -14147,9 +14434,9 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@3.0.0(eslint@9.39.1): + eslint-utils@3.0.0(eslint@9.39.1(jiti@2.4.2)): dependencies: - eslint: 9.39.1 + eslint: 9.39.1(jiti@2.4.2) eslint-visitor-keys: 2.1.0 eslint-visitor-keys@2.1.0: {} @@ -14158,10 +14445,10 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.39.1: + eslint@9.39.1(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1) - '@eslint-community/regexpp': 4.12.2 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.4.2)) + '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.1 '@eslint/config-helpers': 0.4.2 '@eslint/core': 0.17.0 @@ -14194,6 +14481,8 @@ snapshots: minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 + optionalDependencies: + jiti: 2.4.2 transitivePeerDependencies: - supports-color @@ -14243,7 +14532,7 @@ snapshots: events-universal@1.0.1: dependencies: - bare-events: 2.8.2 + bare-events: 2.8.1 transitivePeerDependencies: - bare-abort-controller @@ -15280,11 +15569,11 @@ snapshots: import-meta-resolve@4.1.0: {} - imports-loader@5.0.0(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)): + imports-loader@5.0.0(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)): dependencies: source-map-js: 1.2.1 strip-comments: 2.0.1 - webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) imurmurhash@0.1.4: {} @@ -15339,9 +15628,9 @@ snapshots: strip-ansi: 6.0.1 through: 2.3.8 - inquirer@9.3.8(@types/node@24.10.0): + inquirer@9.3.8(@types/node@24.9.2): dependencies: - '@inquirer/external-editor': 1.0.2(@types/node@24.10.0) + '@inquirer/external-editor': 1.0.2(@types/node@24.9.2) '@inquirer/figures': 1.0.14 ansi-escapes: 4.3.2 cli-width: 4.1.0 @@ -15634,10 +15923,12 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 24.10.0 + '@types/node': 24.9.2 merge-stream: 2.0.0 supports-color: 8.1.1 + jiti@2.4.2: {} + jquery@3.7.1: {} js-string-escape@1.0.1: {} @@ -15888,9 +16179,9 @@ snapshots: transitivePeerDependencies: - supports-color - lint-to-the-future-eslint@3.2.0(eslint@9.39.1): + lint-to-the-future-eslint@3.2.0(eslint@9.39.1(jiti@2.4.2)): dependencies: - eslint: 9.39.1 + eslint: 9.39.1(jiti@2.4.2) globby: 14.1.0 import-cwd: 3.0.0 @@ -16214,11 +16505,11 @@ snapshots: dependencies: dom-walk: 0.1.2 - mini-css-extract-plugin@2.9.4(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)): + mini-css-extract-plugin@2.9.4(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)): dependencies: schema-utils: 4.3.3 tapable: 2.3.0 - webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) minimatch@10.0.3: dependencies: @@ -18085,11 +18376,11 @@ snapshots: strip-test-selectors@0.1.0: {} - style-loader@2.0.0(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)): + style-loader@2.0.0(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) styled_string@0.0.1: {} @@ -18286,17 +18577,17 @@ snapshots: temporal-spec@0.2.4: {} - terser-webpack-plugin@5.3.14(@swc/core@1.15.0)(esbuild@0.25.12)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)): + terser-webpack-plugin@5.3.14(@swc/core@1.15.0)(esbuild@0.25.11)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.44.1 - webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) optionalDependencies: '@swc/core': 1.15.0 - esbuild: 0.25.12 + esbuild: 0.25.11 terser@5.44.1: dependencies: @@ -18403,14 +18694,14 @@ snapshots: dependencies: tslib: 2.8.1 - thread-loader@3.0.4(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)): + thread-loader@3.0.4(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)): dependencies: json-parse-better-errors: 1.0.2 loader-runner: 4.3.0 loader-utils: 2.0.4 neo-async: 2.6.2 schema-utils: 3.3.0 - webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) through2-filter@3.0.0: dependencies: @@ -18761,23 +19052,24 @@ snapshots: x-is-array: 0.1.0 x-is-string: 0.1.0 - vite@7.2.2(@types/node@24.10.0)(terser@5.44.1): + vite@7.2.2(@types/node@24.9.2)(jiti@2.4.2)(terser@5.44.1): dependencies: - esbuild: 0.25.12 + esbuild: 0.25.11 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 rollup: 4.53.1 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.10.0 + '@types/node': 24.9.2 fsevents: 2.3.3 + jiti: 2.4.2 terser: 5.44.1 - vitest@4.0.8(@types/node@24.10.0)(jsdom@25.0.1)(terser@5.44.1): + vitest@4.0.8(@types/node@24.9.2)(jiti@2.4.2)(jsdom@25.0.1)(terser@5.44.1): dependencies: '@vitest/expect': 4.0.8 - '@vitest/mocker': 4.0.8(vite@7.2.2(@types/node@24.10.0)(terser@5.44.1)) + '@vitest/mocker': 4.0.8(vite@7.2.2(@types/node@24.9.2)(jiti@2.4.2)(terser@5.44.1)) '@vitest/pretty-format': 4.0.8 '@vitest/runner': 4.0.8 '@vitest/snapshot': 4.0.8 @@ -18794,10 +19086,10 @@ snapshots: tinyexec: 0.3.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.2.2(@types/node@24.10.0)(terser@5.44.1) + vite: 7.2.2(@types/node@24.9.2)(jiti@2.4.2)(terser@5.44.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.10.0 + '@types/node': 24.9.2 jsdom: 25.0.1(supports-color@8.1.1) transitivePeerDependencies: - jiti @@ -18815,7 +19107,7 @@ snapshots: volar-service-html@0.0.64(@volar/language-service@2.4.23): dependencies: - vscode-html-languageservice: 5.6.0 + vscode-html-languageservice: 5.5.2 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 optionalDependencies: @@ -18832,7 +19124,7 @@ snapshots: optionalDependencies: '@volar/language-service': 2.4.23 - vscode-html-languageservice@5.6.0: + vscode-html-languageservice@5.5.2: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 @@ -18925,16 +19217,16 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-retry-chunk-load-plugin@3.1.1(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)): + webpack-retry-chunk-load-plugin@3.1.1(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)): dependencies: prettier: 2.8.8 - webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.12) + webpack: 5.99.9(@swc/core@1.15.0)(esbuild@0.25.11) webpack-sources@3.3.3: {} webpack-stats-plugin@1.1.3: {} - webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12): + webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -18957,7 +19249,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0)(esbuild@0.25.12)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.12)) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.0)(esbuild@0.25.11)(webpack@5.99.9(@swc/core@1.15.0)(esbuild@0.25.11)) watchpack: 2.4.4 webpack-sources: 3.3.3 transitivePeerDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 03aa441bbc9..a9a1e85f6af 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -9,3 +9,46 @@ packages: - "frontend/ember-cli-progress-ci" - "frontend/pretty-text" - "frontend/asset-processor" +- "frontend/discourse-types" +- "plugins/automation" +- "plugins/chat" +- "plugins/checklist" +- "plugins/discourse-adplugin" +- "plugins/discourse-affiliate" +- "plugins/discourse-ai" +- "plugins/discourse-apple-auth" +- "plugins/discourse-assign" +- "plugins/discourse-cakeday" +- "plugins/discourse-calendar" +- "plugins/discourse-chat-integration" +- "plugins/discourse-data-explorer" +- "plugins/discourse-details" +- "plugins/discourse-gamification" +- "plugins/discourse-github" +- "plugins/discourse-graphviz" +- "plugins/discourse-hcaptcha" +- "plugins/discourse-lazy-videos" +- "plugins/discourse-local-dates" +- "plugins/discourse-login-with-amazon" +- "plugins/discourse-lti" +- "plugins/discourse-math" +- "plugins/discourse-microsoft-auth" +- "plugins/discourse-narrative-bot" +- "plugins/discourse-oauth2-basic" +- "plugins/discourse-openid-connect" +- "plugins/discourse-patreon" +- "plugins/discourse-policy" +- "plugins/discourse-post-voting" +- "plugins/discourse-presence" +- "plugins/discourse-reactions" +- "plugins/discourse-rss-polling" +- "plugins/discourse-solved" +- "plugins/discourse-subscriptions" +- "plugins/discourse-templates" +- "plugins/discourse-topic-voting" +- "plugins/discourse-user-notes" +- "plugins/discourse-zendesk-plugin" +- "plugins/footnote" +- "plugins/poll" +- "plugins/spoiler-alert" +- "plugins/styleguide" diff --git a/script/build_jsconfig.rb b/script/build_jsconfig.rb deleted file mode 100755 index e14baa16e5a..00000000000 --- a/script/build_jsconfig.rb +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -require "pathname" -require "json" - -Dir.chdir("#{__dir__}/..") # rubocop:disable Discourse/NoChdir because this is not part of the app - -CORE_NAMESPACES = { - "discourse/admin/*" => ["frontend/discourse/admin"], - "discourse/*" => ["frontend/discourse/app"], - "discourse/tests/*" => ["frontend/discourse/tests"], - "admin/*" => ["frontend/discourse/admin"], # TODO: remove once all core code is migrated to new import path - "pretty-text/*" => ["frontend/pretty-text/addon"], - "select-kit/*" => ["frontend/discourse/select-kit"], - "float-kit/*" => ["frontend/discourse/float-kit"], - "truth-helpers/*" => ["frontend/discourse/truth-helpers"], - "dialog-holder/*" => ["frontend/discourse/dialog-holder"], -} - -def relative(from, to) - relative_path = Pathname.new(to).relative_path_from(from).to_s - relative_path = "./#{relative_path}" if !relative_path.start_with?(".") - relative_path -end - -def write_config(package_dir, extras: {}) - package_dir = Pathname.new(package_dir) - namespaces = { **CORE_NAMESPACES, **extras } - config = { - "compilerOptions" => { - "target" => "es2021", - "module" => "esnext", - "moduleResolution" => "bundler", - "experimentalDecorators" => true, - "allowJs" => true, - "paths" => { - **namespaces - .map { |ns, paths| [ns, paths.map { |p| "#{relative(package_dir, p)}/*" }] } - .to_h, - }, - }, - "include" => namespaces.flat_map { |ns, paths| paths.map { |p| relative(package_dir, p) } }, - "exclude" => [ - "frontend/discourse/tests/unit/utils/decorators-test.js", # Native class decorators - unsupported by ts/glint - ], - } - - output = <<~JSON - // This file was generated by script/build_jsconfig.rb - #{JSON.pretty_generate(config)} - JSON - - File.write("#{package_dir}/jsconfig.json", output) -end - -plugin_configs = - `git ls-files plugins/*/plugin.rb`.lines - .map { File.dirname(_1) } - .map do |path| - ["discourse/#{path}/*", ["#{path}/assets/javascripts", "#{path}/test/javascripts"]] - end - .to_h - -theme_configs = - `git ls-files themes/*/about.json`.lines - .map { File.dirname(_1) } - .map { |path| ["discourse/#{path}/*", ["#{path}/javascripts", "#{path}/test"]] } - .to_h - -write_config ".", extras: plugin_configs.merge(theme_configs) diff --git a/tsconfig-base.json b/tsconfig-base.json new file mode 100644 index 00000000000..e590cc7ef49 --- /dev/null +++ b/tsconfig-base.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "plugins": [{ + "name": "@glint/tsserver-plugin" + }], + "target": "es2021", + "module": "es2022", + "moduleResolution": "bundler", + "experimentalDecorators": true, + "allowJs": true, + "skipLibCheck": true, + "noEmit": false, + "noEmitOnError": false, + "declaration": true, + "emitDeclarationOnly": true, + "declarationMap": true + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000000..1dc1363da1f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,48 @@ +{ + "references": [ + { "path": "frontend/discourse" }, + { "path": "plugins/automation" }, + { "path": "plugins/chat" }, + { "path": "plugins/checklist" }, + { "path": "plugins/discourse-adplugin" }, + { "path": "plugins/discourse-affiliate" }, + { "path": "plugins/discourse-ai" }, + { "path": "plugins/discourse-apple-auth" }, + { "path": "plugins/discourse-assign" }, + { "path": "plugins/discourse-cakeday" }, + { "path": "plugins/discourse-calendar" }, + { "path": "plugins/discourse-chat-integration" }, + { "path": "plugins/discourse-data-explorer" }, + { "path": "plugins/discourse-details" }, + { "path": "plugins/discourse-gamification" }, + { "path": "plugins/discourse-github" }, + { "path": "plugins/discourse-graphviz" }, + { "path": "plugins/discourse-hcaptcha" }, + { "path": "plugins/discourse-lazy-videos" }, + { "path": "plugins/discourse-local-dates" }, + { "path": "plugins/discourse-login-with-amazon" }, + { "path": "plugins/discourse-lti" }, + { "path": "plugins/discourse-math" }, + { "path": "plugins/discourse-microsoft-auth" }, + { "path": "plugins/discourse-narrative-bot" }, + { "path": "plugins/discourse-oauth2-basic" }, + { "path": "plugins/discourse-openid-connect" }, + { "path": "plugins/discourse-patreon" }, + { "path": "plugins/discourse-policy" }, + { "path": "plugins/discourse-post-voting" }, + { "path": "plugins/discourse-presence" }, + { "path": "plugins/discourse-reactions" }, + { "path": "plugins/discourse-rss-polling" }, + { "path": "plugins/discourse-solved" }, + { "path": "plugins/discourse-subscriptions" }, + { "path": "plugins/discourse-templates" }, + { "path": "plugins/discourse-topic-voting" }, + { "path": "plugins/discourse-user-notes" }, + { "path": "plugins/discourse-zendesk-plugin" }, + { "path": "plugins/footnote" }, + { "path": "plugins/poll" }, + { "path": "plugins/spoiler-alert" }, + { "path": "plugins/styleguide" }, + ], + "include": [], +}