From 200d48820996207938b3732cd87336d1b8648c2d Mon Sep 17 00:00:00 2001 From: Ian Morland <16573496+imorland@users.noreply.github.com> Date: Tue, 11 Jan 2022 10:43:15 +0000 Subject: [PATCH] chore: repo maintenance (#28) * Bump deps * Update imports * format --- extensions/approval/js/package-lock.json | 137 +++++++++++++++++++--- extensions/approval/js/package.json | 12 +- extensions/approval/js/src/admin/index.js | 46 +++++--- extensions/approval/js/src/forum/index.js | 122 ++++++++++--------- extensions/approval/js/tsconfig.json | 16 +++ 5 files changed, 238 insertions(+), 95 deletions(-) create mode 100644 extensions/approval/js/tsconfig.json diff --git a/extensions/approval/js/package-lock.json b/extensions/approval/js/package-lock.json index a30c4b316..02c193096 100644 --- a/extensions/approval/js/package-lock.json +++ b/extensions/approval/js/package-lock.json @@ -6,9 +6,14 @@ "": { "name": "@flarum/approval", "dependencies": { + "@flarum/prettier-config": "^1.0.0", + "flarum-tsconfig": "^1.0.2", "flarum-webpack-config": "^1.0.0", "webpack": "^4.46.0", - "webpack-cli": "^4.9.0" + "webpack-cli": "^4.9.1" + }, + "devDependencies": { + "prettier": "^2.5.1" } }, "node_modules/@babel/code-frame": { @@ -1617,16 +1622,44 @@ "node": ">=10.0.0" } }, + "node_modules/@flarum/prettier-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@flarum/prettier-config/-/prettier-config-1.0.0.tgz", + "integrity": "sha512-3/AcliIi5jPt4i7COb5hsLv6hm4EeXT9yI9I2EuEvhPi2QR+O9Y/8wrqRuO5mDkRzCIhUY+mjIL/f9770Zwfqg==" + }, "node_modules/@polka/url": { "version": "1.0.0-next.21", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" }, + "node_modules/@types/jquery": { + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.12.tgz", + "integrity": "sha512-AlX/K29WByFhZ3UbVVn8eywPFwhDZGc/qhDWgy5mu4VVr9b+OQZKBegtS6Tqi9pk8A1aXVrYXuLhnjFJX8Wc/w==", + "dependencies": { + "@types/sizzle": "*" + } + }, "node_modules/@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" }, + "node_modules/@types/mithril": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/mithril/-/mithril-2.0.8.tgz", + "integrity": "sha512-QzVV70DqUhWfLFpMFDBI9rRxtzeUUpbhiFDpUJYSV92AePgl+Qfficgv2MOb1Ceb+lBOQU8+L+Hjf2UielQjEw==" + }, + "node_modules/@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" + }, + "node_modules/@types/throttle-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz", + "integrity": "sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==" + }, "node_modules/@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", @@ -2821,6 +2854,11 @@ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" }, + "node_modules/dayjs": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" + }, "node_modules/debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -3378,6 +3416,17 @@ "node": ">=8" } }, + "node_modules/flarum-tsconfig": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flarum-tsconfig/-/flarum-tsconfig-1.0.2.tgz", + "integrity": "sha512-RUaN7D6noLK9vY1F86NIc+IlIP1YAA3bJ4jGR5pIm8UxvLBLW8qrAHzIosuQJgvnge7VgTA5c2LoNefUK/9EiQ==", + "dependencies": { + "@types/jquery": "^3.5.5", + "@types/mithril": "^2.0.7", + "@types/throttle-debounce": "^2.1.0", + "dayjs": "^1.10.4" + } + }, "node_modules/flarum-webpack-config": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/flarum-webpack-config/-/flarum-webpack-config-1.0.0.tgz", @@ -4699,6 +4748,18 @@ "node": ">=0.10.0" } }, + "node_modules/prettier": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -6046,11 +6107,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" - }, "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -6352,9 +6408,9 @@ } }, "node_modules/webpack-cli": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.0.tgz", - "integrity": "sha512-n/jZZBMzVEl4PYIBs+auy2WI0WTQ74EnJDiyD98O2JZY6IVIHJNitkYp/uTXOviIOMfgzrNvC9foKv/8o8KSZw==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.1.tgz", + "integrity": "sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ==", "dependencies": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^1.1.0", @@ -6367,7 +6423,6 @@ "import-local": "^3.0.2", "interpret": "^2.2.0", "rechoir": "^0.7.0", - "v8-compile-cache": "^2.2.0", "webpack-merge": "^5.7.3" }, "bin": { @@ -7592,16 +7647,44 @@ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz", "integrity": "sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==" }, + "@flarum/prettier-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@flarum/prettier-config/-/prettier-config-1.0.0.tgz", + "integrity": "sha512-3/AcliIi5jPt4i7COb5hsLv6hm4EeXT9yI9I2EuEvhPi2QR+O9Y/8wrqRuO5mDkRzCIhUY+mjIL/f9770Zwfqg==" + }, "@polka/url": { "version": "1.0.0-next.21", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" }, + "@types/jquery": { + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.12.tgz", + "integrity": "sha512-AlX/K29WByFhZ3UbVVn8eywPFwhDZGc/qhDWgy5mu4VVr9b+OQZKBegtS6Tqi9pk8A1aXVrYXuLhnjFJX8Wc/w==", + "requires": { + "@types/sizzle": "*" + } + }, "@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" }, + "@types/mithril": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/mithril/-/mithril-2.0.8.tgz", + "integrity": "sha512-QzVV70DqUhWfLFpMFDBI9rRxtzeUUpbhiFDpUJYSV92AePgl+Qfficgv2MOb1Ceb+lBOQU8+L+Hjf2UielQjEw==" + }, + "@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" + }, + "@types/throttle-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz", + "integrity": "sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==" + }, "@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", @@ -8601,6 +8684,11 @@ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" }, + "dayjs": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" + }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -9044,6 +9132,17 @@ "path-exists": "^4.0.0" } }, + "flarum-tsconfig": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flarum-tsconfig/-/flarum-tsconfig-1.0.2.tgz", + "integrity": "sha512-RUaN7D6noLK9vY1F86NIc+IlIP1YAA3bJ4jGR5pIm8UxvLBLW8qrAHzIosuQJgvnge7VgTA5c2LoNefUK/9EiQ==", + "requires": { + "@types/jquery": "^3.5.5", + "@types/mithril": "^2.0.7", + "@types/throttle-debounce": "^2.1.0", + "dayjs": "^1.10.4" + } + }, "flarum-webpack-config": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/flarum-webpack-config/-/flarum-webpack-config-1.0.0.tgz", @@ -10049,6 +10148,12 @@ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, + "prettier": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "dev": true + }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -11143,11 +11248,6 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" - }, "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -11387,9 +11487,9 @@ } }, "webpack-cli": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.0.tgz", - "integrity": "sha512-n/jZZBMzVEl4PYIBs+auy2WI0WTQ74EnJDiyD98O2JZY6IVIHJNitkYp/uTXOviIOMfgzrNvC9foKv/8o8KSZw==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.1.tgz", + "integrity": "sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ==", "requires": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^1.1.0", @@ -11402,7 +11502,6 @@ "import-local": "^3.0.2", "interpret": "^2.2.0", "rechoir": "^0.7.0", - "v8-compile-cache": "^2.2.0", "webpack-merge": "^5.7.3" }, "dependencies": { diff --git a/extensions/approval/js/package.json b/extensions/approval/js/package.json index 7acd9c0e3..7200ff68b 100644 --- a/extensions/approval/js/package.json +++ b/extensions/approval/js/package.json @@ -1,13 +1,21 @@ { "private": true, "name": "@flarum/approval", + "prettier": "@flarum/prettier-config", "dependencies": { + "@flarum/prettier-config": "^1.0.0", + "flarum-tsconfig": "^1.0.2", "flarum-webpack-config": "^1.0.0", "webpack": "^4.46.0", - "webpack-cli": "^4.9.0" + "webpack-cli": "^4.9.1" + }, + "devDependencies": { + "prettier": "^2.5.1" }, "scripts": { "dev": "webpack --mode development --watch", - "build": "webpack --mode production" + "build": "webpack --mode production", + "format": "prettier --write src", + "format-check": "prettier --check src" } } diff --git a/extensions/approval/js/src/admin/index.js b/extensions/approval/js/src/admin/index.js index b9b640890..7d9a95a20 100644 --- a/extensions/approval/js/src/admin/index.js +++ b/extensions/approval/js/src/admin/index.js @@ -1,5 +1,5 @@ -import { extend } from 'flarum/extend'; -import app from 'flarum/app'; +import { extend } from 'flarum/common/extend'; +import app from 'flarum/admin/app'; app.initializers.add('flarum-approval', () => { extend(app, 'getRequiredPermissions', function (required, permission) { @@ -13,19 +13,31 @@ app.initializers.add('flarum-approval', () => { app.extensionData .for('flarum-approval') - .registerPermission({ - icon: 'fas fa-check', - label: app.translator.trans('flarum-approval.admin.permissions.start_discussions_without_approval_label'), - permission: 'discussion.startWithoutApproval' - }, 'start', 95) - .registerPermission({ - icon: 'fas fa-check', - label: app.translator.trans('flarum-approval.admin.permissions.reply_without_approval_label'), - permission: 'discussion.replyWithoutApproval' - }, 'reply', 95) - .registerPermission({ - icon: 'fas fa-check', - label: app.translator.trans('flarum-approval.admin.permissions.approve_posts_label'), - permission: 'discussion.approvePosts' - }, 'moderate', 65); + .registerPermission( + { + icon: 'fas fa-check', + label: app.translator.trans('flarum-approval.admin.permissions.start_discussions_without_approval_label'), + permission: 'discussion.startWithoutApproval', + }, + 'start', + 95 + ) + .registerPermission( + { + icon: 'fas fa-check', + label: app.translator.trans('flarum-approval.admin.permissions.reply_without_approval_label'), + permission: 'discussion.replyWithoutApproval', + }, + 'reply', + 95 + ) + .registerPermission( + { + icon: 'fas fa-check', + label: app.translator.trans('flarum-approval.admin.permissions.approve_posts_label'), + permission: 'discussion.approvePosts', + }, + 'moderate', + 65 + ); }); diff --git a/extensions/approval/js/src/forum/index.js b/extensions/approval/js/src/forum/index.js index c398f3aa4..5f76395eb 100644 --- a/extensions/approval/js/src/forum/index.js +++ b/extensions/approval/js/src/forum/index.js @@ -1,68 +1,76 @@ -import { extend, override } from 'flarum/extend'; -import app from 'flarum/app'; -import Discussion from 'flarum/models/Discussion'; -import Post from 'flarum/models/Post'; -import Badge from 'flarum/components/Badge'; -import DiscussionListItem from 'flarum/components/DiscussionListItem'; -import PostComponent from 'flarum/components/Post'; -import CommentPost from 'flarum/components/CommentPost'; -import Button from 'flarum/components/Button'; -import PostControls from 'flarum/utils/PostControls'; +import { extend, override } from 'flarum/common/extend'; +import app from 'flarum/forum/app'; +import Discussion from 'flarum/common/models/Discussion'; +import Post from 'flarum/common/models/Post'; +import Badge from 'flarum/common/components/Badge'; +import DiscussionListItem from 'flarum/forum/components/DiscussionListItem'; +import PostComponent from 'flarum/forum/components/Post'; +import CommentPost from 'flarum/forum/components/CommentPost'; +import Button from 'flarum/common/components/Button'; +import PostControls from 'flarum/forum/utils/PostControls'; -app.initializers.add('flarum-approval', () => { - Discussion.prototype.isApproved = Discussion.attribute('isApproved'); +app.initializers.add( + 'flarum-approval', + () => { + Discussion.prototype.isApproved = Discussion.attribute('isApproved'); - extend(Discussion.prototype, 'badges', function(items) { - if (!this.isApproved() && !items.has('hidden')) { - items.add('awaitingApproval', ); - } - }); + extend(Discussion.prototype, 'badges', function (items) { + if (!this.isApproved() && !items.has('hidden')) { + items.add( + 'awaitingApproval', + + ); + } + }); - Post.prototype.isApproved = Post.attribute('isApproved'); - Post.prototype.canApprove = Post.attribute('canApprove'); + Post.prototype.isApproved = Post.attribute('isApproved'); + Post.prototype.canApprove = Post.attribute('canApprove'); - extend(DiscussionListItem.prototype, 'elementAttrs', function(attrs) { - if (!this.attrs.discussion.isApproved()) { - attrs.className += ' DiscussionListItem--unapproved'; - } - }); + extend(DiscussionListItem.prototype, 'elementAttrs', function (attrs) { + if (!this.attrs.discussion.isApproved()) { + attrs.className += ' DiscussionListItem--unapproved'; + } + }); - extend(PostComponent.prototype, 'elementAttrs', function(attrs) { - if (!this.attrs.post.isApproved()) { - attrs.className += ' Post--unapproved'; - } - }); + extend(PostComponent.prototype, 'elementAttrs', function (attrs) { + if (!this.attrs.post.isApproved()) { + attrs.className += ' Post--unapproved'; + } + }); - extend(CommentPost.prototype, 'headerItems', function(items) { - if (!this.attrs.post.isApproved() && !this.attrs.post.isHidden()) { - items.add('unapproved', app.translator.trans('flarum-approval.forum.post.awaiting_approval_text')); - } - }); + extend(CommentPost.prototype, 'headerItems', function (items) { + if (!this.attrs.post.isApproved() && !this.attrs.post.isHidden()) { + items.add('unapproved', app.translator.trans('flarum-approval.forum.post.awaiting_approval_text')); + } + }); - override(PostComponent.prototype, 'flagReason', function(original, flag) { - if (flag.type() === 'approval') { - return app.translator.trans('flarum-approval.forum.post.awaiting_approval_text'); - } + override(PostComponent.prototype, 'flagReason', function (original, flag) { + if (flag.type() === 'approval') { + return app.translator.trans('flarum-approval.forum.post.awaiting_approval_text'); + } - return original(flag); - }); + return original(flag); + }); - extend(PostControls, 'destructiveControls', function(items, post) { - if (!post.isApproved() && post.canApprove()) { - items.add('approve', - , - 10 - ); - } - }); + extend(PostControls, 'destructiveControls', function (items, post) { + if (!post.isApproved() && post.canApprove()) { + items.add( + 'approve', + , + 10 + ); + } + }); - PostControls.approveAction = function() { - this.save({isApproved: true}); + PostControls.approveAction = function () { + this.save({ isApproved: true }); - if (this.number() === 1) { - this.discussion().pushAttributes({isApproved: true}); - } - }; -}, -10); // set initializer priority to run after reports + if (this.number() === 1) { + this.discussion().pushAttributes({ isApproved: true }); + } + }; + }, + -10 +); // set initializer priority to run after reports diff --git a/extensions/approval/js/tsconfig.json b/extensions/approval/js/tsconfig.json new file mode 100644 index 000000000..207c5b382 --- /dev/null +++ b/extensions/approval/js/tsconfig.json @@ -0,0 +1,16 @@ +{ + // Use Flarum's tsconfig as a starting point + "extends": "flarum-tsconfig", + // This will match all .ts, .tsx, .d.ts, .js, .jsx files in your `src` folder + // and also tells your Typescript server to read core's global typings for + // access to `dayjs` and `$` in the global namespace. + "include": ["src/**/*", "../vendor/flarum/core/js/dist-typings/@types/**/*"], + "compilerOptions": { + // This will output typings to `dist-typings` + "declarationDir": "./dist-typings", + "baseUrl": ".", + "paths": { + "flarum/*": ["../vendor/flarum/core/js/dist-typings/*"] + } + } +}