diff --git a/.eslintrc.json b/.eslintrc.json index cd2a594..aeddb24 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,96 +1,181 @@ { - "root": true, - "plugins": ["es5", "compat"], - "parser": "@babel/eslint-parser", - "parserOptions": { - "requireConfigFile": false, - "babelOptions": { - "configFile": false, - "presets": ["@babel/preset-env", "@babel/preset-react"] - } - }, - "extends": [ - "eslint:recommended", - "plugin:es5/no-es2015", - "plugin:compat/recommended", - "wikimedia/client-es5", - "wikimedia/jquery", - "wikimedia/mediawiki" - ], - "env": { - "browser": true, - "jquery": true - }, - "ignorePatterns": [], - "rules": { - "no-console": "error", - "no-extra-parens": ["error", "all", { "nestedBinaryExpressions": false }], - "no-unreachable-loop": "error", - "block-scoped-var": "error", - "curly": "error", - "default-case": "error", - "dot-notation": "error", - "eqeqeq": "error", - "guard-for-in": "error", - "no-caller": "error", - "no-else-return": "error", - "no-implicit-coercion": ["error", { "boolean": false }], - "no-lone-blocks": "error", - "no-multi-spaces": ["error", { "ignoreEOLComments": true }], - "no-useless-return": "error", - "yoda": "error", - "block-spacing": "error", - "brace-style": ["error", "1tbs"], - "comma-dangle": "error", - "comma-spacing": ["error", { "before": false, "after": true }], - "computed-property-spacing": ["error", "never"], - "func-call-spacing": ["error", "never"], - "indent": ["error", "tab", { "outerIIFEBody": 0, "SwitchCase": 1 }], - "key-spacing": [ - "error", - { "singleLine": { "beforeColon": false, "afterColon": true } } - ], - "keyword-spacing": ["error", { "after": true, "before": true }], - "linebreak-style": ["error", "unix"], - "no-array-constructor": "error", - "no-bitwise": "error", - "no-mixed-operators": "error", - "no-new-object": "error", - "no-tabs": ["error", { "allowIndentationTabs": true }], - "no-trailing-spaces": "error", - "no-unneeded-ternary": "error", - "no-whitespace-before-property": "error", - "quote-props": ["error", "consistent-as-needed"], - "quotes": ["error", "single", { "avoidEscape": true }], - "semi": ["error", "always"], - "space-before-blocks": "error", - "space-in-parens": ["error", "never"], - "space-infix-ops": "error", - "space-unary-ops": "error", - "spaced-comment": [ - "error", - "always", - { "line": { "exceptions": ["-"] }, "block": { "balanced": true } } - ], - "switch-colon-spacing": "error", - "mediawiki/class-doc": "off", - "no-jquery/no-global-selector": "off", - "no-jquery/no-fade": "off", - "no-jquery/no-slide": "off", - "no-jquery/variable-pattern": "off", - "jsdoc/check-tag-names": 0, - "jsdoc/require-param": 0, - "jsdoc/require-param-type": 0, - "jsdoc/require-returns": 0, - "max-len": "off" - }, - "globals": { - "$": "readonly", - "jQuery": "readonly", - "mw": "readonly", - "mediaWiki": "readonly", - "OO": "readonly", - "wgULS": "readonly", - "wgUVS": "readonly" - } -} + "root": true, + "plugins": [ + "es5", + "compat" + ], + "parser": "@babel/eslint-parser", + "parserOptions": { + "requireConfigFile": false, + "babelOptions": { + "configFile": false, + "presets": [ + "@babel/preset-env", + "@babel/preset-react" + ] + } + }, + "extends": [ + "eslint:recommended", + "plugin:es5/no-es2015", + "plugin:compat/recommended", + "wikimedia/client-es5", + "wikimedia/jquery", + "wikimedia/mediawiki" + ], + "env": { + "browser": true, + "jquery": true + }, + "ignorePatterns": [], + "rules": { + "no-console": "error", + "no-extra-parens": [ + "error", + "all", + { + "nestedBinaryExpressions": false + } + ], + "no-unreachable-loop": "error", + "block-scoped-var": "error", + "curly": "error", + "default-case": "error", + "dot-notation": "error", + "eqeqeq": "error", + "guard-for-in": "error", + "no-caller": "error", + "no-else-return": "error", + "no-implicit-coercion": [ + "error", + { + "boolean": false + } + ], + "no-lone-blocks": "error", + "no-multi-spaces": [ + "error", + { + "ignoreEOLComments": true + } + ], + "no-useless-return": "error", + "yoda": "error", + "block-spacing": "error", + "brace-style": [ + "error", + "1tbs" + ], + "comma-dangle": "error", + "comma-spacing": [ + "error", + { + "before": false, + "after": true + } + ], + "computed-property-spacing": [ + "error", + "never" + ], + "func-call-spacing": [ + "error", + "never" + ], + "indent": [ + "error", + "tab", + { + "outerIIFEBody": 0, + "SwitchCase": 1 + } + ], + "key-spacing": [ + "error", + { + "singleLine": { + "beforeColon": false, + "afterColon": true + } + } + ], + "keyword-spacing": [ + "error", + { + "after": true, + "before": true + } + ], + "linebreak-style": [ + "error", + "unix" + ], + "no-array-constructor": "error", + "no-bitwise": "error", + "no-mixed-operators": "error", + "no-new-object": "error", + "no-tabs": [ + "error", + { + "allowIndentationTabs": true + } + ], + "no-trailing-spaces": "error", + "no-unneeded-ternary": "error", + "no-whitespace-before-property": "error", + "quote-props": [ + "error", + "consistent-as-needed" + ], + "quotes": [ + "error", + "single", + { + "avoidEscape": true + } + ], + "semi": [ + "error", + "always" + ], + "space-before-blocks": "error", + "space-in-parens": [ + "error", + "never" + ], + "space-infix-ops": "error", + "space-unary-ops": "error", + "spaced-comment": [ + "error", + "always", + { + "line": { + "exceptions": [ + "-" + ] + }, + "block": { + "balanced": true + } + } + ], + "switch-colon-spacing": "error", + "mediawiki/class-doc": "off", + "no-jquery/no-global-selector": "off", + "no-jquery/no-fade": "off", + "no-jquery/no-slide": "off", + "no-jquery/variable-pattern": "off", + "jsdoc/check-tag-names": 0, + "jsdoc/require-param": 0, + "jsdoc/require-param-type": 0, + "jsdoc/require-returns": 0, + "max-len": "off" + }, + "globals": { + "$": "readonly", + "jQuery": "readonly", + "mw": "readonly", + "mediaWiki": "readonly", + "OO": "readonly" + } +} \ No newline at end of file diff --git a/composer.json b/composer.json index 7cef2d1..5d6058d 100644 --- a/composer.json +++ b/composer.json @@ -1,24 +1,24 @@ { - "require-dev": { - "mediawiki/mediawiki-codesniffer": "39.0.0", - "mediawiki/mediawiki-phan-config": "0.11.1", - "mediawiki/minus-x": "1.1.1", - "php-parallel-lint/php-console-highlighter": "1.0.0", - "php-parallel-lint/php-parallel-lint": "1.3.2" - }, - "scripts": { - "test": [ - "parallel-lint . --exclude vendor --exclude node_modules", - "minus-x check .", - "@phpcs" - ], - "fix": [ - "minus-x fix .", - "phpcbf" - ], - "phan": "phan -d . --long-progress-bar", - "seccheck": "seccheck-mwext", - "seccheck-fast": "seccheck-fast-mwext", - "phpcs": "phpcs -sp --cache" - } -} + "require-dev": { + "mediawiki/mediawiki-codesniffer": "39.0.0", + "mediawiki/mediawiki-phan-config": "0.11.1", + "mediawiki/minus-x": "1.1.1", + "php-parallel-lint/php-console-highlighter": "1.0.0", + "php-parallel-lint/php-parallel-lint": "1.3.2" + }, + "scripts": { + "test": [ + "parallel-lint . --exclude vendor --exclude node_modules", + "minus-x check .", + "@phpcs" + ], + "fix": [ + "minus-x fix .", + "phpcbf" + ], + "phan": "phan -d . --long-progress-bar", + "seccheck": "seccheck-mwext", + "seccheck-fast": "seccheck-fast-mwext", + "phpcs": "phpcs -sp --cache" + } +} \ No newline at end of file diff --git a/extension.json b/extension.json index e7e9771..3d54bb2 100644 --- a/extension.json +++ b/extension.json @@ -1,69 +1,78 @@ { - "name": "New Signup Page", - "version": "1.4.0", - "author": ["Jack Phoenix", "Qiuwen Baike Contributors"], - "license-name": "GPL-2.0-or-later", - "url": "https://git.qiuwen.wiki/qiuwen/NewSignupPage", - "descriptionmsg": "newsignuppage-desc", - "type": "other", - "requires": { - "MediaWiki": ">= 1.34.0" - }, - "config": { - "RegisterTrack": { - "value": false, - "path": false, - "description": "Should we track information about referred users into the user_register_track DB table?", - "public": false - }, - "AutoAddFriendOnInvite": { - "value": false, - "path": false, - "description": "When a user signs up via a referral link, add the referring user automatically as the new user's friend (and vice-versa)?", - "public": false - }, - "NewSignupPageToSURL": { - "value": "", - "path": false, - "description": "Canonical URL to the site's terms of use page", - "public": false - }, - "NewSignupPagePPURL": { - "value": "", - "path": false, - "description": "Canonical URL to the site's privacy policy page", - "public": false - } - }, - "MessagesDirs": { - "NewSignupPage": ["i18n"] - }, - "AutoloadClasses": { - "NewSignupPage": "includes/NewSignupPage.class.php", - "NewSignupPageAuthenticationRequest": "includes/auth/NewSignupPageAuthenticationRequest.php", - "NewSignupPageSecondaryAuthenticationProvider": "includes/auth/NewSignupPageSecondaryAuthenticationProvider.php" - }, - "AuthManagerAutoConfig": { - "secondaryauth": { - "NewSignupPageSecondaryAuthenticationProvider": { - "class": "NewSignupPageSecondaryAuthenticationProvider" - } - } - }, - "Hooks": { - "BeforePageDisplay": "NewSignupPage::onBeforePageDisplay", - "LoadExtensionSchemaUpdates": "NewSignupPage::onLoadExtensionSchemaUpdates" - }, - "ResourceFileModulePaths": { - "localBasePath": "", - "remoteExtPath": "NewSignupPage" - }, - "ResourceModules": { - "ext.newsignuppage": { - "scripts": "resources/js/NewSignupPage.js", - "messages": ["badretype"] - } - }, - "AvailableRights": ["bypasstoscheck"], - "manifest_version": 2 -} + "name": "New Signup Page", + "version": "1.4.0", + "author": [ + "Jack Phoenix", + "Qiuwen Baike Contributors" + ], + "license-name": "GPL-2.0-or-later", + "url": "https://git.qiuwen.wiki/qiuwen/NewSignupPage", + "descriptionmsg": "newsignuppage-desc", + "type": "other", + "requires": { + "MediaWiki": ">= 1.34.0" + }, + "config": { + "RegisterTrack": { + "value": false, + "path": false, + "description": "Should we track information about referred users into the user_register_track DB table?", + "public": false + }, + "AutoAddFriendOnInvite": { + "value": false, + "path": false, + "description": "When a user signs up via a referral link, add the referring user automatically as the new user's friend (and vice-versa)?", + "public": false + }, + "NewSignupPageToSURL": { + "value": "", + "path": false, + "description": "Canonical URL to the site's terms of use page", + "public": false + }, + "NewSignupPagePPURL": { + "value": "", + "path": false, + "description": "Canonical URL to the site's privacy policy page", + "public": false + } + }, + "MessagesDirs": { + "NewSignupPage": [ + "i18n" + ] + }, + "AutoloadClasses": { + "NewSignupPage": "includes/NewSignupPage.class.php", + "NewSignupPageAuthenticationRequest": "includes/auth/NewSignupPageAuthenticationRequest.php", + "NewSignupPageSecondaryAuthenticationProvider": "includes/auth/NewSignupPageSecondaryAuthenticationProvider.php" + }, + "AuthManagerAutoConfig": { + "secondaryauth": { + "NewSignupPageSecondaryAuthenticationProvider": { + "class": "NewSignupPageSecondaryAuthenticationProvider" + } + } + }, + "Hooks": { + "BeforePageDisplay": "NewSignupPage::onBeforePageDisplay", + "LoadExtensionSchemaUpdates": "NewSignupPage::onLoadExtensionSchemaUpdates" + }, + "ResourceFileModulePaths": { + "localBasePath": "", + "remoteExtPath": "NewSignupPage" + }, + "ResourceModules": { + "ext.newsignuppage": { + "scripts": "resources/js/NewSignupPage.js", + "messages": [ + "badretype" + ] + } + }, + "AvailableRights": [ + "bypasstoscheck" + ], + "manifest_version": 2 +} \ No newline at end of file