diff --git a/extensions/flags/js/package-lock.json b/extensions/flags/js/package-lock.json
index 6e5db3916..84f96c4b0 100644
--- a/extensions/flags/js/package-lock.json
+++ b/extensions/flags/js/package-lock.json
@@ -6,9 +6,14 @@
"": {
"name": "@flarum/flags",
"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.11",
+ "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.11.tgz",
+ "integrity": "sha512-lYZGdfOtUa0XFjIATQgiogqeTY5PNNMOmp3Jq48ghmJALL8t/IqABRqlEwdHfuUdA8iIE1uGD1HoI4a7Tiy6OA==",
+ "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.11",
+ "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.11.tgz",
+ "integrity": "sha512-lYZGdfOtUa0XFjIATQgiogqeTY5PNNMOmp3Jq48ghmJALL8t/IqABRqlEwdHfuUdA8iIE1uGD1HoI4a7Tiy6OA==",
+ "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/flags/js/package.json b/extensions/flags/js/package.json
index 931e47e19..f6f992656 100644
--- a/extensions/flags/js/package.json
+++ b/extensions/flags/js/package.json
@@ -1,13 +1,21 @@
{
"private": true,
"name": "@flarum/flags",
+ "prettier": "@flarum/prettier-config",
"dependencies": {
+ "@flarum/prettier-config": "^1.0.0",
"flarum-webpack-config": "^1.0.0",
+ "flarum-tsconfig": "^1.0.2",
"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/flags/js/src/admin/index.js b/extensions/flags/js/src/admin/index.js
index cc481813e..7159f6d71 100644
--- a/extensions/flags/js/src/admin/index.js
+++ b/extensions/flags/js/src/admin/index.js
@@ -1,26 +1,38 @@
import app from 'flarum/app';
app.initializers.add('flarum-flags', () => {
- app.extensionData.for('flarum-flags')
- .registerSetting({
- setting: 'flarum-flags.guidelines_url',
- type: 'text',
- label: app.translator.trans('flarum-flags.admin.settings.guidelines_url_label')
- }, 15)
+ app.extensionData
+ .for('flarum-flags')
+ .registerSetting(
+ {
+ setting: 'flarum-flags.guidelines_url',
+ type: 'text',
+ label: app.translator.trans('flarum-flags.admin.settings.guidelines_url_label'),
+ },
+ 15
+ )
.registerSetting({
setting: 'flarum-flags.can_flag_own',
type: 'boolean',
- label: app.translator.trans('flarum-flags.admin.settings.flag_own_posts_label')
+ label: app.translator.trans('flarum-flags.admin.settings.flag_own_posts_label'),
})
- .registerPermission({
+ .registerPermission(
+ {
icon: 'fas fa-flag',
label: app.translator.trans('flarum-flags.admin.permissions.view_flags_label'),
- permission: 'discussion.viewFlags'
- }, 'moderate', 65)
+ permission: 'discussion.viewFlags',
+ },
+ 'moderate',
+ 65
+ )
- .registerPermission({
+ .registerPermission(
+ {
icon: 'fas fa-flag',
label: app.translator.trans('flarum-flags.admin.permissions.flag_posts_label'),
- permission: 'discussion.flagPosts'
- }, 'reply', 65);
+ permission: 'discussion.flagPosts',
+ },
+ 'reply',
+ 65
+ );
});
diff --git a/extensions/flags/js/src/forum/addFlagControl.js b/extensions/flags/js/src/forum/addFlagControl.js
index c908ec294..88faefe2a 100644
--- a/extensions/flags/js/src/forum/addFlagControl.js
+++ b/extensions/flags/js/src/forum/addFlagControl.js
@@ -5,12 +5,15 @@ import Button from 'flarum/components/Button';
import FlagPostModal from './components/FlagPostModal';
-export default function() {
- extend(PostControls, 'userControls', function(items, post) {
+export default function () {
+ extend(PostControls, 'userControls', function (items, post) {
if (post.isHidden() || post.contentType() !== 'comment' || !post.canFlag()) return;
- items.add('flag',
-
+ items.add(
+ 'flag',
+
);
});
}
diff --git a/extensions/flags/js/src/forum/addFlagsDropdown.js b/extensions/flags/js/src/forum/addFlagsDropdown.js
index 0975046bf..07e929e90 100644
--- a/extensions/flags/js/src/forum/addFlagsDropdown.js
+++ b/extensions/flags/js/src/forum/addFlagsDropdown.js
@@ -3,8 +3,8 @@ import app from 'flarum/app';
import HeaderSecondary from 'flarum/components/HeaderSecondary';
import FlagsDropdown from './components/FlagsDropdown';
-export default function() {
- extend(HeaderSecondary.prototype, 'items', function(items) {
+export default function () {
+ extend(HeaderSecondary.prototype, 'items', function (items) {
if (app.forum.attribute('canViewFlags')) {
items.add('flags',