mirror of
https://github.com/discourse/discourse.git
synced 2026-07-31 08:38:27 -05:00
DEV: Overhaul typechecking configuration (#35794)
- Switches to typescript 'composite project' mode for improved
organization & performance
- Generates declarations from core modules, and outputs to a new
`@discourse/types` package
- Introduces tsconfigs for core plugins, which leans on that new
`@discourse/types` package
- In future, we plan to publish this discourse-types package for other
themes/plugins to use
The motivation at this stage is primarily to improve editor
autocompletion. We provide absolutely no guarantees about the accuracy
or stability of the generated types.
For now, some issues have been resolved by adding manual `@type`
declarations.
In particular, extensionless imports of `.gjs` files are broken when
running in composite-project mode, so in those cases we have to add
manual `@type {import("./the-file.gjs").default}` declarations.
Unfortunately this failure does not show up in IDEs. We hope to get this
resolved soon.
---------
Co-authored-by: David Taylor <david@taylorhq.com>
Co-authored-by: Chris Manson <chris@manson.ie>
This commit is contained in:
co-authored by
David Taylor
Chris Manson
parent
eb6df9785b
commit
d10c1e57e8
@@ -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
|
||||
|
||||
+1
-1
@@ -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(
|
||||
|
||||
+21
-1
@@ -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
|
||||
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
/// <reference path="./node_modules/ember-source/types/stable/index.d.ts" />
|
||||
|
||||
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";
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"],
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
@@ -13,6 +13,7 @@ export default class AdminConfigAreasUserFieldsList extends Component {
|
||||
@service toasts;
|
||||
@service adminUserFields;
|
||||
|
||||
/** @type {any} */
|
||||
fieldTypes = UserField.fieldTypes();
|
||||
|
||||
get fields() {
|
||||
|
||||
@@ -25,6 +25,7 @@ export default class AdminUserFieldsForm extends Component {
|
||||
originalRequirement = this.args.userField.requirement;
|
||||
userField;
|
||||
|
||||
/** @returns {any} */
|
||||
get fieldTypes() {
|
||||
return UserField.fieldTypes();
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ export default class EditCategoryPanel extends Component {
|
||||
</template>
|
||||
}
|
||||
|
||||
/** @returns { any } */
|
||||
export function buildCategoryPanel(tab) {
|
||||
@classNameBindings(
|
||||
":edit-category-tab",
|
||||
|
||||
@@ -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" });
|
||||
|
||||
@@ -11,6 +11,7 @@ export default class AdminWatchedWordsRoute extends DiscourseRoute {
|
||||
return i18n("admin.config.watched_words.title");
|
||||
}
|
||||
|
||||
/** @returns {any} */
|
||||
model() {
|
||||
return WatchedWord.findAll();
|
||||
}
|
||||
|
||||
@@ -300,7 +300,3 @@ function printDebugInfo() {
|
||||
}
|
||||
|
||||
export default Discourse;
|
||||
|
||||
/**
|
||||
* @typedef {import('ember-source/types')} EmberTypes
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -39,6 +39,7 @@ export default class SignupPageController extends Controller {
|
||||
accountChallenge = 0;
|
||||
accountHoneypot = 0;
|
||||
formSubmitted = false;
|
||||
/** @type Array */
|
||||
rejectedEmails = A();
|
||||
prefilledUsername = null;
|
||||
maskPassword = true;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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() {}
|
||||
);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<import("diff")>}
|
||||
*/
|
||||
export default async function loadJSDiff() {
|
||||
return await import("diff");
|
||||
}
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -97,6 +97,7 @@ class RouteNode {
|
||||
}
|
||||
}
|
||||
|
||||
/** @returns {any} */
|
||||
export function mapRoutes() {
|
||||
const tree = new RouteNode("root");
|
||||
const extras = [];
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -314,6 +314,7 @@ export default class User extends RestModel.extend(Evented) {
|
||||
return {
|
||||
type: "user",
|
||||
id: username,
|
||||
/** @type User */
|
||||
user: this,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -148,6 +148,7 @@ class AbstractTopicRoute extends DiscourseRoute {
|
||||
}
|
||||
}
|
||||
|
||||
/** @returns {any} */
|
||||
export default function buildTopicRoute(filter) {
|
||||
return class extends AbstractTopicRoute {
|
||||
routeConfig = { filter };
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -215,6 +215,7 @@ export default class TagShowRoute extends DiscourseRoute {
|
||||
}
|
||||
}
|
||||
|
||||
/** @returns {any} */
|
||||
export function buildTagRoute(routeConfig = {}) {
|
||||
return class extends TagShowRoute {
|
||||
routeConfig = routeConfig;
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -303,6 +303,7 @@ export default class PresenceService extends Service {
|
||||
getChannel(channelName) {
|
||||
return PresenceChannel.create({
|
||||
name: channelName,
|
||||
/** @type PresenceService */
|
||||
presenceService: this,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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/*"],
|
||||
}
|
||||
}
|
||||
}
|
||||
-317
@@ -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"
|
||||
]
|
||||
}
|
||||
+2
-2
@@ -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",
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/automation/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/chat/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/checklist/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-adplugin/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./package.json",
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-affiliate/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-ai/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./package.json",
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-apple-auth/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-assign/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
import DiscourseRoute from "discourse/routes/discourse";
|
||||
|
||||
/** @returns {any} */
|
||||
export default (storeName, filter) => {
|
||||
return class BuildCakedayRoute extends DiscourseRoute {
|
||||
model(params) {
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-cakeday/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-calendar/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-chat-integration/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-data-explorer/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-details/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-gamification/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./package.json",
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-github/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-graphviz/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-hcaptcha/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-lazy-videos/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-local-dates/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -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/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-lti/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-math/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./package.json",
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-microsoft-auth/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./package.json",
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-narrative-bot/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./package.json",
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-oauth2-basic/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./package.json",
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-openid-connect/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-patreon/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-policy/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-post-voting/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-presence/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"discourse": "workspace:@discourse/types@0.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "discourse/tsconfig-plugin",
|
||||
"include": [
|
||||
"./assets/javascripts/**/*",
|
||||
"./test/javascripts/**/*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"discourse/plugins/discourse-reactions/*": ["./assets/javascripts/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user