diff --git a/package-lock.json b/package-lock.json index debd961c..193821dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,14 +7,14 @@ "name": "UniversalLanguageSelector", "devDependencies": { "@wikimedia/codex-design-tokens": "1.7.0", - "eslint-config-wikimedia": "0.28.0", + "eslint-config-wikimedia": "0.28.2", "grunt": "1.6.1", "grunt-banana-checker": "0.13.0", "grunt-eslint": "24.3.0", - "grunt-stylelint": "0.20.0", + "grunt-stylelint": "0.20.1", "postcss-less": "6.0.0", "sfnt2woff": "^1.0.1", - "stylelint-config-wikimedia": "0.17.1", + "stylelint-config-wikimedia": "0.17.2", "svgo": "3.2.0" } }, @@ -1540,9 +1540,9 @@ } }, "node_modules/eslint-config-wikimedia": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.28.0.tgz", - "integrity": "sha512-qDkELhXoDvQP+kYYo5MilhvqJ4Agk78Pzu95K1l1h68xPEWagD4k/dvrgmVyKjcp5KyAnZr++7qChLiFhDdBDA==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.28.2.tgz", + "integrity": "sha512-5+rdnT7wH1gpKAO6tHYThg78eMhZMruJzvqku3Y5iaEY/A7kSKLFpA/vOj/snys9fKjDHC9BXmArQh+agkOoJQ==", "dev": true, "dependencies": { "browserslist-config-wikimedia": "^0.7.0", @@ -1555,7 +1555,7 @@ "eslint-plugin-mediawiki": "^0.7.0", "eslint-plugin-mocha": "^10.4.3", "eslint-plugin-n": "^17.7.0", - "eslint-plugin-no-jquery": "^2.7.0", + "eslint-plugin-no-jquery": "^3.0.1", "eslint-plugin-qunit": "^8.1.1", "eslint-plugin-security": "^1.7.1", "eslint-plugin-unicorn": "^53.0.0", @@ -1759,12 +1759,12 @@ } }, "node_modules/eslint-plugin-no-jquery": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.7.0.tgz", - "integrity": "sha512-Aeg7dA6GTH1AcWLlBtWNzOU9efK5KpNi7b0EhBO0o0M+awyzguUUo8gF6hXGjQ9n5h8/uRtYv9zOqQkeC5CG0w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.0.2.tgz", + "integrity": "sha512-n/+6p6PFhWDNPVLJj1463hw4OTIRBbROGcbhmtOHTgw7yihSKzkwZiQ00EJTneyeR3jRiw5lpWSMCCBhtb8t2g==", "dev": true, "peerDependencies": { - "eslint": ">=2.3.0" + "eslint": ">=8.0.0" } }, "node_modules/eslint-plugin-qunit": { @@ -2660,9 +2660,9 @@ } }, "node_modules/grunt-stylelint": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.20.0.tgz", - "integrity": "sha512-TG17gIrP2//lNq5G0YOXFC55WjXOI5Ybib3XVlatEuZcATlo/FO7cfVMgAAxbO2k6f45LP/naS/3iJTod0dVjg==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.20.1.tgz", + "integrity": "sha512-tDep9ceEerB+fK6CkzPBXu5qPM7RuwCRgfrtwugEyYYnxINreMZktqQU5eoTW+MhhFj81uWQQnxf+c4geyAmQg==", "dev": true, "dependencies": { "chalk": "^4.1.2" @@ -4516,9 +4516,9 @@ } }, "node_modules/stylelint-config-wikimedia": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.17.1.tgz", - "integrity": "sha512-wLgadkHgAkz9jLLOVjBETSU+P3fzHB+rbx4ajct6+w/sqtKd2N9DM77ufJXZXA+Ai0HHanU9ltAy9XzFEFkT2Q==", + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.17.2.tgz", + "integrity": "sha512-cc3PYhe1O/GTgsMOp+Ri3ru579YBbZ3Me0oU7xNb06n4iwyXYPz8qO5G4iQ13UH19UW2NIS8Tk0goPRrJ1RAfw==", "dev": true, "dependencies": { "@stylistic/stylelint-config": "1.0.1", @@ -6356,9 +6356,9 @@ } }, "eslint-config-wikimedia": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.28.0.tgz", - "integrity": "sha512-qDkELhXoDvQP+kYYo5MilhvqJ4Agk78Pzu95K1l1h68xPEWagD4k/dvrgmVyKjcp5KyAnZr++7qChLiFhDdBDA==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.28.2.tgz", + "integrity": "sha512-5+rdnT7wH1gpKAO6tHYThg78eMhZMruJzvqku3Y5iaEY/A7kSKLFpA/vOj/snys9fKjDHC9BXmArQh+agkOoJQ==", "dev": true, "requires": { "browserslist-config-wikimedia": "^0.7.0", @@ -6371,7 +6371,7 @@ "eslint-plugin-mediawiki": "^0.7.0", "eslint-plugin-mocha": "^10.4.3", "eslint-plugin-n": "^17.7.0", - "eslint-plugin-no-jquery": "^2.7.0", + "eslint-plugin-no-jquery": "^3.0.1", "eslint-plugin-qunit": "^8.1.1", "eslint-plugin-security": "^1.7.1", "eslint-plugin-unicorn": "^53.0.0", @@ -6506,9 +6506,9 @@ } }, "eslint-plugin-no-jquery": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.7.0.tgz", - "integrity": "sha512-Aeg7dA6GTH1AcWLlBtWNzOU9efK5KpNi7b0EhBO0o0M+awyzguUUo8gF6hXGjQ9n5h8/uRtYv9zOqQkeC5CG0w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-3.0.2.tgz", + "integrity": "sha512-n/+6p6PFhWDNPVLJj1463hw4OTIRBbROGcbhmtOHTgw7yihSKzkwZiQ00EJTneyeR3jRiw5lpWSMCCBhtb8t2g==", "dev": true, "requires": {} }, @@ -7147,9 +7147,9 @@ } }, "grunt-stylelint": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.20.0.tgz", - "integrity": "sha512-TG17gIrP2//lNq5G0YOXFC55WjXOI5Ybib3XVlatEuZcATlo/FO7cfVMgAAxbO2k6f45LP/naS/3iJTod0dVjg==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.20.1.tgz", + "integrity": "sha512-tDep9ceEerB+fK6CkzPBXu5qPM7RuwCRgfrtwugEyYYnxINreMZktqQU5eoTW+MhhFj81uWQQnxf+c4geyAmQg==", "dev": true, "requires": { "chalk": "^4.1.2" @@ -8558,9 +8558,9 @@ "requires": {} }, "stylelint-config-wikimedia": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.17.1.tgz", - "integrity": "sha512-wLgadkHgAkz9jLLOVjBETSU+P3fzHB+rbx4ajct6+w/sqtKd2N9DM77ufJXZXA+Ai0HHanU9ltAy9XzFEFkT2Q==", + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.17.2.tgz", + "integrity": "sha512-cc3PYhe1O/GTgsMOp+Ri3ru579YBbZ3Me0oU7xNb06n4iwyXYPz8qO5G4iQ13UH19UW2NIS8Tk0goPRrJ1RAfw==", "dev": true, "requires": { "@stylistic/stylelint-config": "1.0.1", diff --git a/package.json b/package.json index df9dc18d..34ebdfe1 100644 --- a/package.json +++ b/package.json @@ -8,14 +8,14 @@ }, "devDependencies": { "@wikimedia/codex-design-tokens": "1.7.0", - "eslint-config-wikimedia": "0.28.0", + "eslint-config-wikimedia": "0.28.2", "grunt": "1.6.1", "grunt-banana-checker": "0.13.0", "grunt-eslint": "24.3.0", - "grunt-stylelint": "0.20.0", + "grunt-stylelint": "0.20.1", "postcss-less": "6.0.0", "sfnt2woff": "^1.0.1", - "stylelint-config-wikimedia": "0.17.1", + "stylelint-config-wikimedia": "0.17.2", "svgo": "3.2.0" }, "eslintIgnore": [ diff --git a/resources/js/.eslintrc.json b/resources/js/.eslintrc.json index c4ceb723..ead395a9 100644 --- a/resources/js/.eslintrc.json +++ b/resources/js/.eslintrc.json @@ -7,6 +7,7 @@ ], "rules": { "no-jquery/no-global-selector": "off", - "no-jquery/no-extend": "warn" + "no-jquery/no-extend": "warn", + "es-x/no-object-assign": "warn" } } diff --git a/resources/js/ext.uls.displaysettings.js b/resources/js/ext.uls.displaysettings.js index 9132f388..bfdd8e16 100644 --- a/resources/js/ext.uls.displaysettings.js +++ b/resources/js/ext.uls.displaysettings.js @@ -724,7 +724,7 @@ }; // Register this module to language settings modules - $.fn.languagesettings.modules = $.extend( $.fn.languagesettings.modules, { + $.fn.languagesettings.modules = Object.assign( $.fn.languagesettings.modules, { display: DisplaySettings } ); }() ); diff --git a/resources/js/ext.uls.ime.js b/resources/js/ext.uls.ime.js index 80187139..3a5424ff 100644 --- a/resources/js/ext.uls.ime.js +++ b/resources/js/ext.uls.ime.js @@ -215,9 +215,9 @@ return; } // Extend the ime preference system - $.extend( $.ime.preferences, ulsIMEPreferences ); + Object.assign( $.ime.preferences, ulsIMEPreferences ); // MediaWiki specific overrides for jquery.ime - $.extend( $.ime.defaults, { + Object.assign( $.ime.defaults, { imePath: mwImeRulesPath } ); diff --git a/resources/js/ext.uls.inputsettings.js b/resources/js/ext.uls.inputsettings.js index 285661bf..32c2478f 100644 --- a/resources/js/ext.uls.inputsettings.js +++ b/resources/js/ext.uls.inputsettings.js @@ -590,7 +590,7 @@ }; // Register this module to language settings modules - $.fn.languagesettings.modules = $.extend( $.fn.languagesettings.modules, { + $.fn.languagesettings.modules = Object.assign( $.fn.languagesettings.modules, { input: InputSettings } ); diff --git a/resources/js/ext.uls.languagesettings.js b/resources/js/ext.uls.languagesettings.js index b780f38f..887c55d9 100644 --- a/resources/js/ext.uls.languagesettings.js +++ b/resources/js/ext.uls.languagesettings.js @@ -52,7 +52,7 @@ function LanguageSettings( element, options ) { this.$element = $( element ); - this.options = $.extend( {}, $.fn.languagesettings.defaults, options ); + this.options = Object.assign( {}, $.fn.languagesettings.defaults, options ); this.$window = $( this.options.template ); this.shown = false; this.initialized = false; diff --git a/resources/js/ext.uls.mediawiki.js b/resources/js/ext.uls.mediawiki.js index baae3e5a..cea5d3f3 100644 --- a/resources/js/ext.uls.mediawiki.js +++ b/resources/js/ext.uls.mediawiki.js @@ -21,7 +21,7 @@ 'use strict'; // MediaWiki overrides for ULS defaults - $.fn.uls.defaults = $.extend( $.fn.uls.defaults, { + $.fn.uls.defaults = Object.assign( $.fn.uls.defaults, { languages: mw.config.get( 'wgULSLanguages' ) || {}, searchAPI: mw.util.wikiScript( 'api' ) + '?action=languagesearch&format=json&formatversion=2' } ); diff --git a/resources/js/ext.uls.webfonts.js b/resources/js/ext.uls.webfonts.js index e2d61624..6e3e283b 100644 --- a/resources/js/ext.uls.webfonts.js +++ b/resources/js/ext.uls.webfonts.js @@ -58,7 +58,7 @@ }, load: function () { - mw.webfonts.preferences.registry = $.extend( this.registry, + mw.webfonts.preferences.registry = Object.assign( this.registry, ulsPreferences.get( 'webfonts' ) ); } }; @@ -70,7 +70,7 @@ mediawikiFontRepository.base = mw.config.get( 'wgULSFontRepositoryBasePath' ); // MediaWiki specific overrides for jquery.webfonts - $.extend( $.fn.webfonts.defaults, { + Object.assign( $.fn.webfonts.defaults, { repository: mediawikiFontRepository, fontStack: $( document.body ).css( 'font-family' ).split( /, /g ), /**