performance/WikimediaDebug (main)

sourcepatches
From 81439a9b5f530230d16acb825337308a35803a6a Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Fri, 19 Apr 2024 15:29:46 +0000
Subject: [PATCH] build: Updating eslint-config-wikimedia to 0.27.0

Change-Id: I33c8529228d8480f89c260fb56c822ac10dc6134
---
 package-lock.json | 490 ++++++++++++++++++++++------------------------
 package.json      |   2 +-
 2 files changed, 232 insertions(+), 260 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 277d4f5..b5340d4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,7 +5,7 @@
     "packages": {
         "": {
             "devDependencies": {
-                "eslint-config-wikimedia": "0.26.0"
+                "eslint-config-wikimedia": "0.27.0"
             }
         },
         "node_modules/@aashutoshrathi/word-wrap": {
@@ -18,12 +18,12 @@
             }
         },
         "node_modules/@babel/code-frame": {
-            "version": "7.24.1",
-            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.1.tgz",
-            "integrity": "sha512-bC49z4spJQR3j8vFtJBLqzyzFV0ciuL5HYX7qfSl3KEqeMVV+eTquRvmXxpvB0AMubRrvv7y5DILiLLPi57Ewg==",
+            "version": "7.24.2",
+            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+            "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
             "dev": true,
             "dependencies": {
-                "@babel/highlight": "^7.24.1",
+                "@babel/highlight": "^7.24.2",
                 "picocolors": "^1.0.0"
             },
             "engines": {
@@ -40,9 +40,9 @@
             }
         },
         "node_modules/@babel/highlight": {
-            "version": "7.24.1",
-            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.1.tgz",
-            "integrity": "sha512-EPmDPxidWe/Ex+HTFINpvXdPHRmgSF3T8hGvzondYjmgzTQ/0EbLpSxyt+w3zzlYSk9cNBQNF9k0dT5Z2NiBjw==",
+            "version": "7.24.2",
+            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
+            "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
             "dev": true,
             "dependencies": {
                 "@babel/helper-validator-identifier": "^7.22.20",
@@ -126,17 +126,17 @@
             }
         },
         "node_modules/@es-joy/jsdoccomment": {
-            "version": "0.37.1",
-            "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.1.tgz",
-            "integrity": "sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==",
+            "version": "0.42.0",
+            "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz",
+            "integrity": "sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==",
             "dev": true,
             "dependencies": {
-                "comment-parser": "1.3.1",
+                "comment-parser": "1.4.1",
                 "esquery": "^1.5.0",
                 "jsdoc-type-pratt-parser": "~4.0.0"
             },
             "engines": {
-                "node": "^14 || ^16 || ^17 || ^18 || ^19 || ^20"
+                "node": ">=16"
             }
         },
         "node_modules/@eslint-community/eslint-utils": {
@@ -576,9 +576,9 @@
             }
         },
         "node_modules/browserslist-config-wikimedia": {
-            "version": "0.5.1",
-            "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.5.1.tgz",
-            "integrity": "sha512-jf532fUf/gaxiKdHgGCQUT552P5up3RpG+CzLixOQBJ5FwDmYQSRLYHCFUA9s3KMOHh4P3xVp+NUaGNxvtoT9g==",
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.6.1.tgz",
+            "integrity": "sha512-F3O+12ud7ZwBaiB/RZIMGDgz3nEuXz8RhtdPB4Lkd/WVP5Vy77EqBWRMz4vJ64x8LTTH3BOaHCD2ZuUcgShqyQ==",
             "dev": true
         },
         "node_modules/builtin-modules": {
@@ -648,9 +648,9 @@
             }
         },
         "node_modules/ci-info": {
-            "version": "3.9.0",
-            "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
-            "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
+            "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
             "dev": true,
             "funding": [
                 {
@@ -702,9 +702,9 @@
             "dev": true
         },
         "node_modules/comment-parser": {
-            "version": "1.3.1",
-            "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz",
-            "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==",
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
+            "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
             "dev": true,
             "engines": {
                 "node": ">= 12.0.0"
@@ -716,6 +716,19 @@
             "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
             "dev": true
         },
+        "node_modules/core-js-compat": {
+            "version": "3.37.0",
+            "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz",
+            "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==",
+            "dev": true,
+            "dependencies": {
+                "browserslist": "^4.23.0"
+            },
+            "funding": {
+                "type": "opencollective",
+                "url": "https://opencollective.com/core-js"
+            }
+        },
         "node_modules/cross-spawn": {
             "version": "7.0.3",
             "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -881,10 +894,13 @@
             }
         },
         "node_modules/eslint-compat-utils": {
-            "version": "0.1.2",
-            "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz",
-            "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==",
+            "version": "0.5.0",
+            "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
+            "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
             "dev": true,
+            "dependencies": {
+                "semver": "^7.5.4"
+            },
             "engines": {
                 "node": ">=12"
             },
@@ -893,28 +909,28 @@
             }
         },
         "node_modules/eslint-config-wikimedia": {
-            "version": "0.26.0",
-            "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.26.0.tgz",
-            "integrity": "sha512-TAXTySls9k3oWs754rIjlcd9PBLvYeMvjqjiuU8u4gweu0UDgBJGslf+zcvVNXEooAtyLZdENjrzDDjG8ssS7Q==",
+            "version": "0.27.0",
+            "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.27.0.tgz",
+            "integrity": "sha512-KkZ54+MUnggz17C/RCEMXQSpiiqZRF7p9fjrz4phaaeKlTrjg0B+QbM5zcDWcjGiAWaJUptHaH17+RZldadkUw==",
             "dev": true,
             "dependencies": {
-                "browserslist-config-wikimedia": "^0.5.1",
-                "eslint": "^8.53.0",
+                "browserslist-config-wikimedia": "^0.6.1",
+                "eslint": "^8.57.0",
                 "eslint-plugin-compat": "^4.2.0",
-                "eslint-plugin-es-x": "^7.3.0",
-                "eslint-plugin-jest": "^27.6.0",
-                "eslint-plugin-jsdoc": "^42.0.0",
+                "eslint-plugin-es-x": "^7.6.0",
+                "eslint-plugin-jest": "^27.9.0",
+                "eslint-plugin-jsdoc": "48.2.1",
                 "eslint-plugin-json-es": "^1.5.7",
-                "eslint-plugin-mediawiki": "^0.5.0",
-                "eslint-plugin-mocha": "^10.2.0",
-                "eslint-plugin-n": "^16.0.1",
+                "eslint-plugin-mediawiki": "^0.6.0",
+                "eslint-plugin-mocha": "^10.4.1",
+                "eslint-plugin-n": "^16.6.2",
                 "eslint-plugin-no-jquery": "^2.7.0",
-                "eslint-plugin-qunit": "^7.3.4",
+                "eslint-plugin-qunit": "^8.1.1",
                 "eslint-plugin-security": "^1.7.1",
-                "eslint-plugin-unicorn": "^47.0.0",
-                "eslint-plugin-vue": "^9.18.1",
-                "eslint-plugin-wdio": "^7.19.4",
-                "eslint-plugin-yml": "^1.10.0"
+                "eslint-plugin-unicorn": "^51.0.1",
+                "eslint-plugin-vue": "^9.23.0",
+                "eslint-plugin-wdio": "^8.24.12",
+                "eslint-plugin-yml": "^1.13.2"
             }
         },
         "node_modules/eslint-plugin-compat": {
@@ -939,14 +955,14 @@
             }
         },
         "node_modules/eslint-plugin-es-x": {
-            "version": "7.5.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz",
-            "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==",
+            "version": "7.6.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz",
+            "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==",
             "dev": true,
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.1.2",
                 "@eslint-community/regexpp": "^4.6.0",
-                "eslint-compat-utils": "^0.1.2"
+                "eslint-compat-utils": "^0.5.0"
             },
             "engines": {
                 "node": "^14.18.0 || >=16.0.0"
@@ -984,25 +1000,26 @@
             }
         },
         "node_modules/eslint-plugin-jsdoc": {
-            "version": "42.0.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-42.0.0.tgz",
-            "integrity": "sha512-qXYr45G8atPKowZbIOdmABukMzu9IMjAlj6j5Fe0iuUItznWSXUDiBj57ejXcbt8bkPrg83333nuz+cqGKFgcQ==",
+            "version": "48.2.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.1.tgz",
+            "integrity": "sha512-iUvbcyDZSO/9xSuRv2HQBw++8VkV/pt3UWtX9cpPH0l7GKPq78QC/6+PmyQHHvNZaTjAce6QVciEbnc6J/zH5g==",
             "dev": true,
             "dependencies": {
-                "@es-joy/jsdoccomment": "~0.37.0",
+                "@es-joy/jsdoccomment": "~0.42.0",
                 "are-docs-informative": "^0.0.2",
-                "comment-parser": "1.3.1",
+                "comment-parser": "1.4.1",
                 "debug": "^4.3.4",
                 "escape-string-regexp": "^4.0.0",
                 "esquery": "^1.5.0",
-                "semver": "^7.3.8",
-                "spdx-expression-parse": "^3.0.1"
+                "is-builtin-module": "^3.2.1",
+                "semver": "^7.6.0",
+                "spdx-expression-parse": "^4.0.0"
             },
             "engines": {
-                "node": "^14 || ^16 || ^17 || ^18 || ^19"
+                "node": ">=18"
             },
             "peerDependencies": {
-                "eslint": "^7.0.0 || ^8.0.0"
+                "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
             }
         },
         "node_modules/eslint-plugin-json-es": {
@@ -1019,62 +1036,18 @@
             }
         },
         "node_modules/eslint-plugin-mediawiki": {
-            "version": "0.5.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.5.0.tgz",
-            "integrity": "sha512-rjkHFyv3VDan/dmu7YpD1Rl9h64NOlz4mqqesRN316R+571+ymmb6lXVOdNMbT8H1iPhmtHc+nijVLVkn7pYDw==",
+            "version": "0.6.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.6.0.tgz",
+            "integrity": "sha512-a2Zm18N5nPyflBajM2ZWATxucIpYPEmOSjFzUR1OBH3hAL0GY9fx1mpezEwzqAQ862d+kPkolgQOzktnZe8nKA==",
             "dev": true,
             "dependencies": {
-                "eslint-plugin-vue": "^8.7.1",
+                "eslint-plugin-vue": "^9.23.0",
                 "upath": "^2.0.1"
             },
             "peerDependencies": {
                 "eslint": ">=5.0.0"
             }
         },
-        "node_modules/eslint-plugin-mediawiki/node_modules/eslint-plugin-vue": {
-            "version": "8.7.1",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz",
-            "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==",
-            "dev": true,
-            "dependencies": {
-                "eslint-utils": "^3.0.0",
-                "natural-compare": "^1.4.0",
-                "nth-check": "^2.0.1",
-                "postcss-selector-parser": "^6.0.9",
-                "semver": "^7.3.5",
-                "vue-eslint-parser": "^8.0.1"
-            },
-            "engines": {
-                "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-            },
-            "peerDependencies": {
-                "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
-            }
-        },
-        "node_modules/eslint-plugin-mediawiki/node_modules/vue-eslint-parser": {
-            "version": "8.3.0",
-            "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
-            "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
-            "dev": true,
-            "dependencies": {
-                "debug": "^4.3.2",
-                "eslint-scope": "^7.0.0",
-                "eslint-visitor-keys": "^3.1.0",
-                "espree": "^9.0.0",
-                "esquery": "^1.4.0",
-                "lodash": "^4.17.21",
-                "semver": "^7.3.5"
-            },
-            "engines": {
-                "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-            },
-            "funding": {
-                "url": "https://github.com/sponsors/mysticatea"
-            },
-            "peerDependencies": {
-                "eslint": ">=6.0.0"
-            }
-        },
         "node_modules/eslint-plugin-mocha": {
             "version": "10.4.1",
             "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.1.tgz",
@@ -1130,16 +1103,16 @@
             }
         },
         "node_modules/eslint-plugin-qunit": {
-            "version": "7.3.4",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.3.4.tgz",
-            "integrity": "sha512-EbDM0zJerH9zVdUswMJpcFF7wrrpvsGuYfNexUpa5hZkkdFhaFcX+yD+RSK4Nrauw4psMGlcqeWUMhaVo+Manw==",
+            "version": "8.1.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.1.1.tgz",
+            "integrity": "sha512-j3xhiAf2Wvr8Dfwl5T6tlJ+F55vqYE9ZdAHUOTzq1lGerYrXzOS46RvK4SSWug2D8sl3ZYr2lA4/hgVXgLloxw==",
             "dev": true,
             "dependencies": {
                 "eslint-utils": "^3.0.0",
                 "requireindex": "^1.2.0"
             },
             "engines": {
-                "node": "12.x || 14.x || >=16.0.0"
+                "node": "^16.0.0 || ^18.0.0 || >=20.0.0"
             }
         },
         "node_modules/eslint-plugin-security": {
@@ -1152,26 +1125,26 @@
             }
         },
         "node_modules/eslint-plugin-unicorn": {
-            "version": "47.0.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-47.0.0.tgz",
-            "integrity": "sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==",
+            "version": "51.0.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-51.0.1.tgz",
+            "integrity": "sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==",
             "dev": true,
             "dependencies": {
-                "@babel/helper-validator-identifier": "^7.19.1",
+                "@babel/helper-validator-identifier": "^7.22.20",
                 "@eslint-community/eslint-utils": "^4.4.0",
-                "ci-info": "^3.8.0",
+                "@eslint/eslintrc": "^2.1.4",
+                "ci-info": "^4.0.0",
                 "clean-regexp": "^1.0.0",
+                "core-js-compat": "^3.34.0",
                 "esquery": "^1.5.0",
                 "indent-string": "^4.0.0",
                 "is-builtin-module": "^3.2.1",
                 "jsesc": "^3.0.2",
-                "lodash": "^4.17.21",
                 "pluralize": "^8.0.0",
                 "read-pkg-up": "^7.0.1",
-                "regexp-tree": "^0.1.24",
+                "regexp-tree": "^0.1.27",
                 "regjsparser": "^0.10.0",
-                "safe-regex": "^2.1.1",
-                "semver": "^7.3.8",
+                "semver": "^7.5.4",
                 "strip-indent": "^3.0.0"
             },
             "engines": {
@@ -1181,7 +1154,7 @@
                 "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
             },
             "peerDependencies": {
-                "eslint": ">=8.38.0"
+                "eslint": ">=8.56.0"
             }
         },
         "node_modules/eslint-plugin-vue": {
@@ -1206,18 +1179,18 @@
             }
         },
         "node_modules/eslint-plugin-wdio": {
-            "version": "7.25.3",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-7.25.3.tgz",
-            "integrity": "sha512-2zbYwV14Md9FNlyhaIILVGPB6w4bu2eJdOTywDUs2Qy4ebcQNwrxB0qCaf7Rm4O+T0Ir+tdYHYBBfbDocSLKng==",
+            "version": "8.24.12",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-8.24.12.tgz",
+            "integrity": "sha512-OmzGteXFOQnJDdkTNnTfksaVa18WlFCyeLjZXHvDpkbomLWAg9wc296Pr0wnTCagqNj8qfEHpy+N2XVew5VCMA==",
             "dev": true,
             "engines": {
-                "node": ">=12.0.0"
+                "node": "^16.13 || >=18"
             }
         },
         "node_modules/eslint-plugin-yml": {
-            "version": "1.13.1",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.13.1.tgz",
-            "integrity": "sha512-J1gNca5cWUIlo6ilQJBlPwap2ggVuc7gaOxiCdYjmncyWN8aNHErEhk2ICFj6shr8Jz27c3AU1Ie7i6HqVa4Hw==",
+            "version": "1.14.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.14.0.tgz",
+            "integrity": "sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==",
             "dev": true,
             "dependencies": {
                 "debug": "^4.3.2",
@@ -1236,21 +1209,6 @@
                 "eslint": ">=6.0.0"
             }
         },
-        "node_modules/eslint-plugin-yml/node_modules/eslint-compat-utils": {
-            "version": "0.5.0",
-            "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
-            "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
-            "dev": true,
-            "dependencies": {
-                "semver": "^7.5.4"
-            },
-            "engines": {
-                "node": ">=12"
-            },
-            "peerDependencies": {
-                "eslint": ">=6.0.0"
-            }
-        },
         "node_modules/eslint-scope": {
             "version": "7.2.2",
             "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
@@ -2467,6 +2425,16 @@
                 "spdx-license-ids": "^3.0.0"
             }
         },
+        "node_modules/spdx-correct/node_modules/spdx-expression-parse": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+            "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+            "dev": true,
+            "dependencies": {
+                "spdx-exceptions": "^2.1.0",
+                "spdx-license-ids": "^3.0.0"
+            }
+        },
         "node_modules/spdx-exceptions": {
             "version": "2.5.0",
             "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
@@ -2474,9 +2442,9 @@
             "dev": true
         },
         "node_modules/spdx-expression-parse": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
-            "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
+            "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
             "dev": true,
             "dependencies": {
                 "spdx-exceptions": "^2.1.0",
@@ -2691,6 +2659,16 @@
                 "spdx-expression-parse": "^3.0.0"
             }
         },
+        "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+            "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+            "dev": true,
+            "dependencies": {
+                "spdx-exceptions": "^2.1.0",
+                "spdx-license-ids": "^3.0.0"
+            }
+        },
         "node_modules/vue-eslint-parser": {
             "version": "9.4.2",
             "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz",
@@ -2801,12 +2779,12 @@
             "dev": true
         },
         "@babel/code-frame": {
-            "version": "7.24.1",
-            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.1.tgz",
-            "integrity": "sha512-bC49z4spJQR3j8vFtJBLqzyzFV0ciuL5HYX7qfSl3KEqeMVV+eTquRvmXxpvB0AMubRrvv7y5DILiLLPi57Ewg==",
+            "version": "7.24.2",
+            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+            "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
             "dev": true,
             "requires": {
-                "@babel/highlight": "^7.24.1",
+                "@babel/highlight": "^7.24.2",
                 "picocolors": "^1.0.0"
             }
         },
@@ -2817,9 +2795,9 @@
             "dev": true
         },
         "@babel/highlight": {
-            "version": "7.24.1",
-            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.1.tgz",
-            "integrity": "sha512-EPmDPxidWe/Ex+HTFINpvXdPHRmgSF3T8hGvzondYjmgzTQ/0EbLpSxyt+w3zzlYSk9cNBQNF9k0dT5Z2NiBjw==",
+            "version": "7.24.2",
+            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
+            "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
             "dev": true,
             "requires": {
                 "@babel/helper-validator-identifier": "^7.22.20",
@@ -2887,12 +2865,12 @@
             }
         },
         "@es-joy/jsdoccomment": {
-            "version": "0.37.1",
-            "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.1.tgz",
-            "integrity": "sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==",
+            "version": "0.42.0",
+            "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz",
+            "integrity": "sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==",
             "dev": true,
             "requires": {
-                "comment-parser": "1.3.1",
+                "comment-parser": "1.4.1",
                 "esquery": "^1.5.0",
                 "jsdoc-type-pratt-parser": "~4.0.0"
             }
@@ -3200,9 +3178,9 @@
             }
         },
         "browserslist-config-wikimedia": {
-            "version": "0.5.1",
-            "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.5.1.tgz",
-            "integrity": "sha512-jf532fUf/gaxiKdHgGCQUT552P5up3RpG+CzLixOQBJ5FwDmYQSRLYHCFUA9s3KMOHh4P3xVp+NUaGNxvtoT9g==",
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.6.1.tgz",
+            "integrity": "sha512-F3O+12ud7ZwBaiB/RZIMGDgz3nEuXz8RhtdPB4Lkd/WVP5Vy77EqBWRMz4vJ64x8LTTH3BOaHCD2ZuUcgShqyQ==",
             "dev": true
         },
         "builtin-modules": {
@@ -3243,9 +3221,9 @@
             }
         },
         "ci-info": {
-            "version": "3.9.0",
-            "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
-            "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
+            "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
             "dev": true
         },
         "clean-regexp": {
@@ -3281,9 +3259,9 @@
             "dev": true
         },
         "comment-parser": {
-            "version": "1.3.1",
-            "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz",
-            "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==",
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
+            "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
             "dev": true
         },
         "concat-map": {
@@ -3292,6 +3270,15 @@
             "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
             "dev": true
         },
+        "core-js-compat": {
+            "version": "3.37.0",
+            "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz",
+            "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==",
+            "dev": true,
+            "requires": {
+                "browserslist": "^4.23.0"
+            }
+        },
         "cross-spawn": {
             "version": "7.0.3",
             "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -3416,35 +3403,37 @@
             }
         },
         "eslint-compat-utils": {
-            "version": "0.1.2",
-            "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz",
-            "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==",
+            "version": "0.5.0",
+            "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
+            "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
             "dev": true,
-            "requires": {}
+            "requires": {
+                "semver": "^7.5.4"
+            }
         },
         "eslint-config-wikimedia": {
-            "version": "0.26.0",
-            "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.26.0.tgz",
-            "integrity": "sha512-TAXTySls9k3oWs754rIjlcd9PBLvYeMvjqjiuU8u4gweu0UDgBJGslf+zcvVNXEooAtyLZdENjrzDDjG8ssS7Q==",
+            "version": "0.27.0",
+            "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.27.0.tgz",
+            "integrity": "sha512-KkZ54+MUnggz17C/RCEMXQSpiiqZRF7p9fjrz4phaaeKlTrjg0B+QbM5zcDWcjGiAWaJUptHaH17+RZldadkUw==",
             "dev": true,
             "requires": {
-                "browserslist-config-wikimedia": "^0.5.1",
-                "eslint": "^8.53.0",
+                "browserslist-config-wikimedia": "^0.6.1",
+                "eslint": "^8.57.0",
                 "eslint-plugin-compat": "^4.2.0",
-                "eslint-plugin-es-x": "^7.3.0",
-                "eslint-plugin-jest": "^27.6.0",
-                "eslint-plugin-jsdoc": "^42.0.0",
+                "eslint-plugin-es-x": "^7.6.0",
+                "eslint-plugin-jest": "^27.9.0",
+                "eslint-plugin-jsdoc": "48.2.1",
                 "eslint-plugin-json-es": "^1.5.7",
-                "eslint-plugin-mediawiki": "^0.5.0",
-                "eslint-plugin-mocha": "^10.2.0",
-                "eslint-plugin-n": "^16.0.1",
+                "eslint-plugin-mediawiki": "^0.6.0",
+                "eslint-plugin-mocha": "^10.4.1",
+                "eslint-plugin-n": "^16.6.2",
                 "eslint-plugin-no-jquery": "^2.7.0",
-                "eslint-plugin-qunit": "^7.3.4",
+                "eslint-plugin-qunit": "^8.1.1",
                 "eslint-plugin-security": "^1.7.1",
-                "eslint-plugin-unicorn": "^47.0.0",
-                "eslint-plugin-vue": "^9.18.1",
-                "eslint-plugin-wdio": "^7.19.4",
-                "eslint-plugin-yml": "^1.10.0"
+                "eslint-plugin-unicorn": "^51.0.1",
+                "eslint-plugin-vue": "^9.23.0",
+                "eslint-plugin-wdio": "^8.24.12",
+                "eslint-plugin-yml": "^1.13.2"
             }
         },
         "eslint-plugin-compat": {
@@ -3463,14 +3452,14 @@
             }
         },
         "eslint-plugin-es-x": {
-            "version": "7.5.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz",
-            "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==",
+            "version": "7.6.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz",
+            "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==",
             "dev": true,
             "requires": {
                 "@eslint-community/eslint-utils": "^4.1.2",
                 "@eslint-community/regexpp": "^4.6.0",
-                "eslint-compat-utils": "^0.1.2"
+                "eslint-compat-utils": "^0.5.0"
             }
         },
         "eslint-plugin-jest": {
@@ -3483,19 +3472,20 @@
             }
         },
         "eslint-plugin-jsdoc": {
-            "version": "42.0.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-42.0.0.tgz",
-            "integrity": "sha512-qXYr45G8atPKowZbIOdmABukMzu9IMjAlj6j5Fe0iuUItznWSXUDiBj57ejXcbt8bkPrg83333nuz+cqGKFgcQ==",
+            "version": "48.2.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.1.tgz",
+            "integrity": "sha512-iUvbcyDZSO/9xSuRv2HQBw++8VkV/pt3UWtX9cpPH0l7GKPq78QC/6+PmyQHHvNZaTjAce6QVciEbnc6J/zH5g==",
             "dev": true,
             "requires": {
-                "@es-joy/jsdoccomment": "~0.37.0",
+                "@es-joy/jsdoccomment": "~0.42.0",
                 "are-docs-informative": "^0.0.2",
-                "comment-parser": "1.3.1",
+                "comment-parser": "1.4.1",
                 "debug": "^4.3.4",
                 "escape-string-regexp": "^4.0.0",
                 "esquery": "^1.5.0",
-                "semver": "^7.3.8",
-                "spdx-expression-parse": "^3.0.1"
+                "is-builtin-module": "^3.2.1",
+                "semver": "^7.6.0",
+                "spdx-expression-parse": "^4.0.0"
             }
         },
         "eslint-plugin-json-es": {
@@ -3509,44 +3499,13 @@
             }
         },
         "eslint-plugin-mediawiki": {
-            "version": "0.5.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.5.0.tgz",
-            "integrity": "sha512-rjkHFyv3VDan/dmu7YpD1Rl9h64NOlz4mqqesRN316R+571+ymmb6lXVOdNMbT8H1iPhmtHc+nijVLVkn7pYDw==",
+            "version": "0.6.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.6.0.tgz",
+            "integrity": "sha512-a2Zm18N5nPyflBajM2ZWATxucIpYPEmOSjFzUR1OBH3hAL0GY9fx1mpezEwzqAQ862d+kPkolgQOzktnZe8nKA==",
             "dev": true,
             "requires": {
-                "eslint-plugin-vue": "^8.7.1",
+                "eslint-plugin-vue": "^9.23.0",
                 "upath": "^2.0.1"
-            },
-            "dependencies": {
-                "eslint-plugin-vue": {
-                    "version": "8.7.1",
-                    "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz",
-                    "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==",
-                    "dev": true,
-                    "requires": {
-                        "eslint-utils": "^3.0.0",
-                        "natural-compare": "^1.4.0",
-                        "nth-check": "^2.0.1",
-                        "postcss-selector-parser": "^6.0.9",
-                        "semver": "^7.3.5",
-                        "vue-eslint-parser": "^8.0.1"
-                    }
-                },
-                "vue-eslint-parser": {
-                    "version": "8.3.0",
-                    "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
-                    "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
-                    "dev": true,
-                    "requires": {
-                        "debug": "^4.3.2",
-                        "eslint-scope": "^7.0.0",
-                        "eslint-visitor-keys": "^3.1.0",
-                        "espree": "^9.0.0",
-                        "esquery": "^1.4.0",
-                        "lodash": "^4.17.21",
-                        "semver": "^7.3.5"
-                    }
-                }
             }
         },
         "eslint-plugin-mocha": {
@@ -3587,9 +3546,9 @@
             "requires": {}
         },
         "eslint-plugin-qunit": {
-            "version": "7.3.4",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.3.4.tgz",
-            "integrity": "sha512-EbDM0zJerH9zVdUswMJpcFF7wrrpvsGuYfNexUpa5hZkkdFhaFcX+yD+RSK4Nrauw4psMGlcqeWUMhaVo+Manw==",
+            "version": "8.1.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.1.1.tgz",
+            "integrity": "sha512-j3xhiAf2Wvr8Dfwl5T6tlJ+F55vqYE9ZdAHUOTzq1lGerYrXzOS46RvK4SSWug2D8sl3ZYr2lA4/hgVXgLloxw==",
             "dev": true,
             "requires": {
                 "eslint-utils": "^3.0.0",
@@ -3606,26 +3565,26 @@
             }
         },
         "eslint-plugin-unicorn": {
-            "version": "47.0.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-47.0.0.tgz",
-            "integrity": "sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==",
+            "version": "51.0.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-51.0.1.tgz",
+            "integrity": "sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==",
             "dev": true,
             "requires": {
-                "@babel/helper-validator-identifier": "^7.19.1",
+                "@babel/helper-validator-identifier": "^7.22.20",
                 "@eslint-community/eslint-utils": "^4.4.0",
-                "ci-info": "^3.8.0",
+                "@eslint/eslintrc": "^2.1.4",
+                "ci-info": "^4.0.0",
                 "clean-regexp": "^1.0.0",
+                "core-js-compat": "^3.34.0",
                 "esquery": "^1.5.0",
                 "indent-string": "^4.0.0",
                 "is-builtin-module": "^3.2.1",
                 "jsesc": "^3.0.2",
-                "lodash": "^4.17.21",
                 "pluralize": "^8.0.0",
                 "read-pkg-up": "^7.0.1",
-                "regexp-tree": "^0.1.24",
+                "regexp-tree": "^0.1.27",
                 "regjsparser": "^0.10.0",
-                "safe-regex": "^2.1.1",
-                "semver": "^7.3.8",
+                "semver": "^7.5.4",
                 "strip-indent": "^3.0.0"
             }
         },
@@ -3645,15 +3604,15 @@
             }
         },
         "eslint-plugin-wdio": {
-            "version": "7.25.3",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-7.25.3.tgz",
-            "integrity": "sha512-2zbYwV14Md9FNlyhaIILVGPB6w4bu2eJdOTywDUs2Qy4ebcQNwrxB0qCaf7Rm4O+T0Ir+tdYHYBBfbDocSLKng==",
+            "version": "8.24.12",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-8.24.12.tgz",
+            "integrity": "sha512-OmzGteXFOQnJDdkTNnTfksaVa18WlFCyeLjZXHvDpkbomLWAg9wc296Pr0wnTCagqNj8qfEHpy+N2XVew5VCMA==",
             "dev": true
         },
         "eslint-plugin-yml": {
-            "version": "1.13.1",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.13.1.tgz",
-            "integrity": "sha512-J1gNca5cWUIlo6ilQJBlPwap2ggVuc7gaOxiCdYjmncyWN8aNHErEhk2ICFj6shr8Jz27c3AU1Ie7i6HqVa4Hw==",
+            "version": "1.14.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.14.0.tgz",
+            "integrity": "sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==",
             "dev": true,
             "requires": {
                 "debug": "^4.3.2",
@@ -3661,17 +3620,6 @@
                 "lodash": "^4.17.21",
                 "natural-compare": "^1.4.0",
                 "yaml-eslint-parser": "^1.2.1"
-            },
-            "dependencies": {
-                "eslint-compat-utils": {
-                    "version": "0.5.0",
-                    "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
-                    "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
-                    "dev": true,
-                    "requires": {
-                        "semver": "^7.5.4"
-                    }
-                }
             }
         },
         "eslint-scope": {
@@ -4562,6 +4510,18 @@
             "requires": {
                 "spdx-expression-parse": "^3.0.0",
                 "spdx-license-ids": "^3.0.0"
+            },
+            "dependencies": {
+                "spdx-expression-parse": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+                    "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+                    "dev": true,
+                    "requires": {
+                        "spdx-exceptions": "^2.1.0",
+                        "spdx-license-ids": "^3.0.0"
+                    }
+                }
             }
         },
         "spdx-exceptions": {
@@ -4571,9 +4531,9 @@
             "dev": true
         },
         "spdx-expression-parse": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
-            "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
+            "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
             "dev": true,
             "requires": {
                 "spdx-exceptions": "^2.1.0",
@@ -4716,6 +4676,18 @@
             "requires": {
                 "spdx-correct": "^3.0.0",
                 "spdx-expression-parse": "^3.0.0"
+            },
+            "dependencies": {
+                "spdx-expression-parse": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+                    "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+                    "dev": true,
+                    "requires": {
+                        "spdx-exceptions": "^2.1.0",
+                        "spdx-license-ids": "^3.0.0"
+                    }
+                }
             }
         },
         "vue-eslint-parser": {
diff --git a/package.json b/package.json
index 7cc2dab..20671f2 100644
--- a/package.json
+++ b/package.json
@@ -6,6 +6,6 @@
         "changelog": "git log --format='* %s (%aN)' --no-merges --reverse $(git describe --tags --abbrev=0 HEAD)...HEAD | sort | grep -vE '^\\* (build|docs?|tests?):'"
     },
     "devDependencies": {
-        "eslint-config-wikimedia": "0.26.0"
+        "eslint-config-wikimedia": "0.27.0"
     }
 }
-- 
2.39.2

$ date
--- stdout ---
Fri Apr 19 15:29:27 UTC 2024

--- end ---
$ git clone file:///srv/git/performance-WikimediaDebug.git repo --depth=1 -b master
--- stderr ---
Cloning into 'repo'...
--- stdout ---

--- end ---
$ git config user.name libraryupgrader
--- stdout ---

--- end ---
$ git config user.email tools.libraryupgrader@tools.wmflabs.org
--- stdout ---

--- end ---
$ git submodule update --init
--- stdout ---

--- end ---
$ grr init
--- stdout ---
Installed commit-msg hook.

--- end ---
$ git show-ref refs/heads/master
--- stdout ---
b0ff82c9a47b470a9cc52d968ec6e1ec499872a9 refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {},
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 0,
      "high": 0,
      "critical": 0,
      "total": 0
    },
    "dependencies": {
      "prod": 1,
      "dev": 233,
      "optional": 0,
      "peer": 1,
      "peerOptional": 0,
      "total": 233
    }
  }
}

--- end ---
Upgrading n:eslint-config-wikimedia from 0.26.0 -> 0.27.0
$ /usr/bin/npm install
--- stdout ---

added 233 packages, and audited 234 packages in 5s

54 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

--- end ---
$ ./node_modules/.bin/eslint . --fix
--- stdout ---

--- end ---
$ ./node_modules/.bin/eslint . -f json
--- stdout ---
[{"filePath":"/src/repo/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/background.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/manifest.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/package-lock.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/package.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/popup.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]}]

--- end ---
$ /usr/bin/npm ci
--- stdout ---

added 233 packages, and audited 234 packages in 3s

54 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

--- end ---
$ /usr/bin/npm test
--- stdout ---

> test
> eslint .


--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {},
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 0,
      "high": 0,
      "critical": 0,
      "total": 0
    },
    "dependencies": {
      "prod": 1,
      "dev": 233,
      "optional": 0,
      "peer": 1,
      "peerOptional": 0,
      "total": 233
    }
  }
}

--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

--- end ---
build: Updating eslint-config-wikimedia to 0.27.0

$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmpjrosp_nx
--- stdout ---
[master 81439a9] build: Updating eslint-config-wikimedia to 0.27.0
 2 files changed, 232 insertions(+), 260 deletions(-)

--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From 81439a9b5f530230d16acb825337308a35803a6a Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Fri, 19 Apr 2024 15:29:46 +0000
Subject: [PATCH] build: Updating eslint-config-wikimedia to 0.27.0

Change-Id: I33c8529228d8480f89c260fb56c822ac10dc6134
---
 package-lock.json | 490 ++++++++++++++++++++++------------------------
 package.json      |   2 +-
 2 files changed, 232 insertions(+), 260 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 277d4f5..b5340d4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,7 +5,7 @@
     "packages": {
         "": {
             "devDependencies": {
-                "eslint-config-wikimedia": "0.26.0"
+                "eslint-config-wikimedia": "0.27.0"
             }
         },
         "node_modules/@aashutoshrathi/word-wrap": {
@@ -18,12 +18,12 @@
             }
         },
         "node_modules/@babel/code-frame": {
-            "version": "7.24.1",
-            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.1.tgz",
-            "integrity": "sha512-bC49z4spJQR3j8vFtJBLqzyzFV0ciuL5HYX7qfSl3KEqeMVV+eTquRvmXxpvB0AMubRrvv7y5DILiLLPi57Ewg==",
+            "version": "7.24.2",
+            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+            "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
             "dev": true,
             "dependencies": {
-                "@babel/highlight": "^7.24.1",
+                "@babel/highlight": "^7.24.2",
                 "picocolors": "^1.0.0"
             },
             "engines": {
@@ -40,9 +40,9 @@
             }
         },
         "node_modules/@babel/highlight": {
-            "version": "7.24.1",
-            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.1.tgz",
-            "integrity": "sha512-EPmDPxidWe/Ex+HTFINpvXdPHRmgSF3T8hGvzondYjmgzTQ/0EbLpSxyt+w3zzlYSk9cNBQNF9k0dT5Z2NiBjw==",
+            "version": "7.24.2",
+            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
+            "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
             "dev": true,
             "dependencies": {
                 "@babel/helper-validator-identifier": "^7.22.20",
@@ -126,17 +126,17 @@
             }
         },
         "node_modules/@es-joy/jsdoccomment": {
-            "version": "0.37.1",
-            "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.1.tgz",
-            "integrity": "sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==",
+            "version": "0.42.0",
+            "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz",
+            "integrity": "sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==",
             "dev": true,
             "dependencies": {
-                "comment-parser": "1.3.1",
+                "comment-parser": "1.4.1",
                 "esquery": "^1.5.0",
                 "jsdoc-type-pratt-parser": "~4.0.0"
             },
             "engines": {
-                "node": "^14 || ^16 || ^17 || ^18 || ^19 || ^20"
+                "node": ">=16"
             }
         },
         "node_modules/@eslint-community/eslint-utils": {
@@ -576,9 +576,9 @@
             }
         },
         "node_modules/browserslist-config-wikimedia": {
-            "version": "0.5.1",
-            "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.5.1.tgz",
-            "integrity": "sha512-jf532fUf/gaxiKdHgGCQUT552P5up3RpG+CzLixOQBJ5FwDmYQSRLYHCFUA9s3KMOHh4P3xVp+NUaGNxvtoT9g==",
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.6.1.tgz",
+            "integrity": "sha512-F3O+12ud7ZwBaiB/RZIMGDgz3nEuXz8RhtdPB4Lkd/WVP5Vy77EqBWRMz4vJ64x8LTTH3BOaHCD2ZuUcgShqyQ==",
             "dev": true
         },
         "node_modules/builtin-modules": {
@@ -648,9 +648,9 @@
             }
         },
         "node_modules/ci-info": {
-            "version": "3.9.0",
-            "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
-            "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
+            "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
             "dev": true,
             "funding": [
                 {
@@ -702,9 +702,9 @@
             "dev": true
         },
         "node_modules/comment-parser": {
-            "version": "1.3.1",
-            "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz",
-            "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==",
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
+            "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
             "dev": true,
             "engines": {
                 "node": ">= 12.0.0"
@@ -716,6 +716,19 @@
             "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
             "dev": true
         },
+        "node_modules/core-js-compat": {
+            "version": "3.37.0",
+            "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz",
+            "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==",
+            "dev": true,
+            "dependencies": {
+                "browserslist": "^4.23.0"
+            },
+            "funding": {
+                "type": "opencollective",
+                "url": "https://opencollective.com/core-js"
+            }
+        },
         "node_modules/cross-spawn": {
             "version": "7.0.3",
             "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -881,10 +894,13 @@
             }
         },
         "node_modules/eslint-compat-utils": {
-            "version": "0.1.2",
-            "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz",
-            "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==",
+            "version": "0.5.0",
+            "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
+            "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
             "dev": true,
+            "dependencies": {
+                "semver": "^7.5.4"
+            },
             "engines": {
                 "node": ">=12"
             },
@@ -893,28 +909,28 @@
             }
         },
         "node_modules/eslint-config-wikimedia": {
-            "version": "0.26.0",
-            "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.26.0.tgz",
-            "integrity": "sha512-TAXTySls9k3oWs754rIjlcd9PBLvYeMvjqjiuU8u4gweu0UDgBJGslf+zcvVNXEooAtyLZdENjrzDDjG8ssS7Q==",
+            "version": "0.27.0",
+            "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.27.0.tgz",
+            "integrity": "sha512-KkZ54+MUnggz17C/RCEMXQSpiiqZRF7p9fjrz4phaaeKlTrjg0B+QbM5zcDWcjGiAWaJUptHaH17+RZldadkUw==",
             "dev": true,
             "dependencies": {
-                "browserslist-config-wikimedia": "^0.5.1",
-                "eslint": "^8.53.0",
+                "browserslist-config-wikimedia": "^0.6.1",
+                "eslint": "^8.57.0",
                 "eslint-plugin-compat": "^4.2.0",
-                "eslint-plugin-es-x": "^7.3.0",
-                "eslint-plugin-jest": "^27.6.0",
-                "eslint-plugin-jsdoc": "^42.0.0",
+                "eslint-plugin-es-x": "^7.6.0",
+                "eslint-plugin-jest": "^27.9.0",
+                "eslint-plugin-jsdoc": "48.2.1",
                 "eslint-plugin-json-es": "^1.5.7",
-                "eslint-plugin-mediawiki": "^0.5.0",
-                "eslint-plugin-mocha": "^10.2.0",
-                "eslint-plugin-n": "^16.0.1",
+                "eslint-plugin-mediawiki": "^0.6.0",
+                "eslint-plugin-mocha": "^10.4.1",
+                "eslint-plugin-n": "^16.6.2",
                 "eslint-plugin-no-jquery": "^2.7.0",
-                "eslint-plugin-qunit": "^7.3.4",
+                "eslint-plugin-qunit": "^8.1.1",
                 "eslint-plugin-security": "^1.7.1",
-                "eslint-plugin-unicorn": "^47.0.0",
-                "eslint-plugin-vue": "^9.18.1",
-                "eslint-plugin-wdio": "^7.19.4",
-                "eslint-plugin-yml": "^1.10.0"
+                "eslint-plugin-unicorn": "^51.0.1",
+                "eslint-plugin-vue": "^9.23.0",
+                "eslint-plugin-wdio": "^8.24.12",
+                "eslint-plugin-yml": "^1.13.2"
             }
         },
         "node_modules/eslint-plugin-compat": {
@@ -939,14 +955,14 @@
             }
         },
         "node_modules/eslint-plugin-es-x": {
-            "version": "7.5.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz",
-            "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==",
+            "version": "7.6.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz",
+            "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==",
             "dev": true,
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.1.2",
                 "@eslint-community/regexpp": "^4.6.0",
-                "eslint-compat-utils": "^0.1.2"
+                "eslint-compat-utils": "^0.5.0"
             },
             "engines": {
                 "node": "^14.18.0 || >=16.0.0"
@@ -984,25 +1000,26 @@
             }
         },
         "node_modules/eslint-plugin-jsdoc": {
-            "version": "42.0.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-42.0.0.tgz",
-            "integrity": "sha512-qXYr45G8atPKowZbIOdmABukMzu9IMjAlj6j5Fe0iuUItznWSXUDiBj57ejXcbt8bkPrg83333nuz+cqGKFgcQ==",
+            "version": "48.2.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.1.tgz",
+            "integrity": "sha512-iUvbcyDZSO/9xSuRv2HQBw++8VkV/pt3UWtX9cpPH0l7GKPq78QC/6+PmyQHHvNZaTjAce6QVciEbnc6J/zH5g==",
             "dev": true,
             "dependencies": {
-                "@es-joy/jsdoccomment": "~0.37.0",
+                "@es-joy/jsdoccomment": "~0.42.0",
                 "are-docs-informative": "^0.0.2",
-                "comment-parser": "1.3.1",
+                "comment-parser": "1.4.1",
                 "debug": "^4.3.4",
                 "escape-string-regexp": "^4.0.0",
                 "esquery": "^1.5.0",
-                "semver": "^7.3.8",
-                "spdx-expression-parse": "^3.0.1"
+                "is-builtin-module": "^3.2.1",
+                "semver": "^7.6.0",
+                "spdx-expression-parse": "^4.0.0"
             },
             "engines": {
-                "node": "^14 || ^16 || ^17 || ^18 || ^19"
+                "node": ">=18"
             },
             "peerDependencies": {
-                "eslint": "^7.0.0 || ^8.0.0"
+                "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
             }
         },
         "node_modules/eslint-plugin-json-es": {
@@ -1019,62 +1036,18 @@
             }
         },
         "node_modules/eslint-plugin-mediawiki": {
-            "version": "0.5.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.5.0.tgz",
-            "integrity": "sha512-rjkHFyv3VDan/dmu7YpD1Rl9h64NOlz4mqqesRN316R+571+ymmb6lXVOdNMbT8H1iPhmtHc+nijVLVkn7pYDw==",
+            "version": "0.6.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.6.0.tgz",
+            "integrity": "sha512-a2Zm18N5nPyflBajM2ZWATxucIpYPEmOSjFzUR1OBH3hAL0GY9fx1mpezEwzqAQ862d+kPkolgQOzktnZe8nKA==",
             "dev": true,
             "dependencies": {
-                "eslint-plugin-vue": "^8.7.1",
+                "eslint-plugin-vue": "^9.23.0",
                 "upath": "^2.0.1"
             },
             "peerDependencies": {
                 "eslint": ">=5.0.0"
             }
         },
-        "node_modules/eslint-plugin-mediawiki/node_modules/eslint-plugin-vue": {
-            "version": "8.7.1",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz",
-            "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==",
-            "dev": true,
-            "dependencies": {
-                "eslint-utils": "^3.0.0",
-                "natural-compare": "^1.4.0",
-                "nth-check": "^2.0.1",
-                "postcss-selector-parser": "^6.0.9",
-                "semver": "^7.3.5",
-                "vue-eslint-parser": "^8.0.1"
-            },
-            "engines": {
-                "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-            },
-            "peerDependencies": {
-                "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
-            }
-        },
-        "node_modules/eslint-plugin-mediawiki/node_modules/vue-eslint-parser": {
-            "version": "8.3.0",
-            "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
-            "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
-            "dev": true,
-            "dependencies": {
-                "debug": "^4.3.2",
-                "eslint-scope": "^7.0.0",
-                "eslint-visitor-keys": "^3.1.0",
-                "espree": "^9.0.0",
-                "esquery": "^1.4.0",
-                "lodash": "^4.17.21",
-                "semver": "^7.3.5"
-            },
-            "engines": {
-                "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-            },
-            "funding": {
-                "url": "https://github.com/sponsors/mysticatea"
-            },
-            "peerDependencies": {
-                "eslint": ">=6.0.0"
-            }
-        },
         "node_modules/eslint-plugin-mocha": {
             "version": "10.4.1",
             "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.1.tgz",
@@ -1130,16 +1103,16 @@
             }
         },
         "node_modules/eslint-plugin-qunit": {
-            "version": "7.3.4",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.3.4.tgz",
-            "integrity": "sha512-EbDM0zJerH9zVdUswMJpcFF7wrrpvsGuYfNexUpa5hZkkdFhaFcX+yD+RSK4Nrauw4psMGlcqeWUMhaVo+Manw==",
+            "version": "8.1.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.1.1.tgz",
+            "integrity": "sha512-j3xhiAf2Wvr8Dfwl5T6tlJ+F55vqYE9ZdAHUOTzq1lGerYrXzOS46RvK4SSWug2D8sl3ZYr2lA4/hgVXgLloxw==",
             "dev": true,
             "dependencies": {
                 "eslint-utils": "^3.0.0",
                 "requireindex": "^1.2.0"
             },
             "engines": {
-                "node": "12.x || 14.x || >=16.0.0"
+                "node": "^16.0.0 || ^18.0.0 || >=20.0.0"
             }
         },
         "node_modules/eslint-plugin-security": {
@@ -1152,26 +1125,26 @@
             }
         },
         "node_modules/eslint-plugin-unicorn": {
-            "version": "47.0.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-47.0.0.tgz",
-            "integrity": "sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==",
+            "version": "51.0.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-51.0.1.tgz",
+            "integrity": "sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==",
             "dev": true,
             "dependencies": {
-                "@babel/helper-validator-identifier": "^7.19.1",
+                "@babel/helper-validator-identifier": "^7.22.20",
                 "@eslint-community/eslint-utils": "^4.4.0",
-                "ci-info": "^3.8.0",
+                "@eslint/eslintrc": "^2.1.4",
+                "ci-info": "^4.0.0",
                 "clean-regexp": "^1.0.0",
+                "core-js-compat": "^3.34.0",
                 "esquery": "^1.5.0",
                 "indent-string": "^4.0.0",
                 "is-builtin-module": "^3.2.1",
                 "jsesc": "^3.0.2",
-                "lodash": "^4.17.21",
                 "pluralize": "^8.0.0",
                 "read-pkg-up": "^7.0.1",
-                "regexp-tree": "^0.1.24",
+                "regexp-tree": "^0.1.27",
                 "regjsparser": "^0.10.0",
-                "safe-regex": "^2.1.1",
-                "semver": "^7.3.8",
+                "semver": "^7.5.4",
                 "strip-indent": "^3.0.0"
             },
             "engines": {
@@ -1181,7 +1154,7 @@
                 "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
             },
             "peerDependencies": {
-                "eslint": ">=8.38.0"
+                "eslint": ">=8.56.0"
             }
         },
         "node_modules/eslint-plugin-vue": {
@@ -1206,18 +1179,18 @@
             }
         },
         "node_modules/eslint-plugin-wdio": {
-            "version": "7.25.3",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-7.25.3.tgz",
-            "integrity": "sha512-2zbYwV14Md9FNlyhaIILVGPB6w4bu2eJdOTywDUs2Qy4ebcQNwrxB0qCaf7Rm4O+T0Ir+tdYHYBBfbDocSLKng==",
+            "version": "8.24.12",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-8.24.12.tgz",
+            "integrity": "sha512-OmzGteXFOQnJDdkTNnTfksaVa18WlFCyeLjZXHvDpkbomLWAg9wc296Pr0wnTCagqNj8qfEHpy+N2XVew5VCMA==",
             "dev": true,
             "engines": {
-                "node": ">=12.0.0"
+                "node": "^16.13 || >=18"
             }
         },
         "node_modules/eslint-plugin-yml": {
-            "version": "1.13.1",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.13.1.tgz",
-            "integrity": "sha512-J1gNca5cWUIlo6ilQJBlPwap2ggVuc7gaOxiCdYjmncyWN8aNHErEhk2ICFj6shr8Jz27c3AU1Ie7i6HqVa4Hw==",
+            "version": "1.14.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.14.0.tgz",
+            "integrity": "sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==",
             "dev": true,
             "dependencies": {
                 "debug": "^4.3.2",
@@ -1236,21 +1209,6 @@
                 "eslint": ">=6.0.0"
             }
         },
-        "node_modules/eslint-plugin-yml/node_modules/eslint-compat-utils": {
-            "version": "0.5.0",
-            "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
-            "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
-            "dev": true,
-            "dependencies": {
-                "semver": "^7.5.4"
-            },
-            "engines": {
-                "node": ">=12"
-            },
-            "peerDependencies": {
-                "eslint": ">=6.0.0"
-            }
-        },
         "node_modules/eslint-scope": {
             "version": "7.2.2",
             "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
@@ -2467,6 +2425,16 @@
                 "spdx-license-ids": "^3.0.0"
             }
         },
+        "node_modules/spdx-correct/node_modules/spdx-expression-parse": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+            "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+            "dev": true,
+            "dependencies": {
+                "spdx-exceptions": "^2.1.0",
+                "spdx-license-ids": "^3.0.0"
+            }
+        },
         "node_modules/spdx-exceptions": {
             "version": "2.5.0",
             "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
@@ -2474,9 +2442,9 @@
             "dev": true
         },
         "node_modules/spdx-expression-parse": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
-            "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
+            "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
             "dev": true,
             "dependencies": {
                 "spdx-exceptions": "^2.1.0",
@@ -2691,6 +2659,16 @@
                 "spdx-expression-parse": "^3.0.0"
             }
         },
+        "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+            "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+            "dev": true,
+            "dependencies": {
+                "spdx-exceptions": "^2.1.0",
+                "spdx-license-ids": "^3.0.0"
+            }
+        },
         "node_modules/vue-eslint-parser": {
             "version": "9.4.2",
             "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz",
@@ -2801,12 +2779,12 @@
             "dev": true
         },
         "@babel/code-frame": {
-            "version": "7.24.1",
-            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.1.tgz",
-            "integrity": "sha512-bC49z4spJQR3j8vFtJBLqzyzFV0ciuL5HYX7qfSl3KEqeMVV+eTquRvmXxpvB0AMubRrvv7y5DILiLLPi57Ewg==",
+            "version": "7.24.2",
+            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+            "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
             "dev": true,
             "requires": {
-                "@babel/highlight": "^7.24.1",
+                "@babel/highlight": "^7.24.2",
                 "picocolors": "^1.0.0"
             }
         },
@@ -2817,9 +2795,9 @@
             "dev": true
         },
         "@babel/highlight": {
-            "version": "7.24.1",
-            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.1.tgz",
-            "integrity": "sha512-EPmDPxidWe/Ex+HTFINpvXdPHRmgSF3T8hGvzondYjmgzTQ/0EbLpSxyt+w3zzlYSk9cNBQNF9k0dT5Z2NiBjw==",
+            "version": "7.24.2",
+            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
+            "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
             "dev": true,
             "requires": {
                 "@babel/helper-validator-identifier": "^7.22.20",
@@ -2887,12 +2865,12 @@
             }
         },
         "@es-joy/jsdoccomment": {
-            "version": "0.37.1",
-            "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.1.tgz",
-            "integrity": "sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==",
+            "version": "0.42.0",
+            "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz",
+            "integrity": "sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==",
             "dev": true,
             "requires": {
-                "comment-parser": "1.3.1",
+                "comment-parser": "1.4.1",
                 "esquery": "^1.5.0",
                 "jsdoc-type-pratt-parser": "~4.0.0"
             }
@@ -3200,9 +3178,9 @@
             }
         },
         "browserslist-config-wikimedia": {
-            "version": "0.5.1",
-            "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.5.1.tgz",
-            "integrity": "sha512-jf532fUf/gaxiKdHgGCQUT552P5up3RpG+CzLixOQBJ5FwDmYQSRLYHCFUA9s3KMOHh4P3xVp+NUaGNxvtoT9g==",
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.6.1.tgz",
+            "integrity": "sha512-F3O+12ud7ZwBaiB/RZIMGDgz3nEuXz8RhtdPB4Lkd/WVP5Vy77EqBWRMz4vJ64x8LTTH3BOaHCD2ZuUcgShqyQ==",
             "dev": true
         },
         "builtin-modules": {
@@ -3243,9 +3221,9 @@
             }
         },
         "ci-info": {
-            "version": "3.9.0",
-            "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
-            "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
+            "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
             "dev": true
         },
         "clean-regexp": {
@@ -3281,9 +3259,9 @@
             "dev": true
         },
         "comment-parser": {
-            "version": "1.3.1",
-            "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz",
-            "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==",
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
+            "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
             "dev": true
         },
         "concat-map": {
@@ -3292,6 +3270,15 @@
             "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
             "dev": true
         },
+        "core-js-compat": {
+            "version": "3.37.0",
+            "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz",
+            "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==",
+            "dev": true,
+            "requires": {
+                "browserslist": "^4.23.0"
+            }
+        },
         "cross-spawn": {
             "version": "7.0.3",
             "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -3416,35 +3403,37 @@
             }
         },
         "eslint-compat-utils": {
-            "version": "0.1.2",
-            "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz",
-            "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==",
+            "version": "0.5.0",
+            "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
+            "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
             "dev": true,
-            "requires": {}
+            "requires": {
+                "semver": "^7.5.4"
+            }
         },
         "eslint-config-wikimedia": {
-            "version": "0.26.0",
-            "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.26.0.tgz",
-            "integrity": "sha512-TAXTySls9k3oWs754rIjlcd9PBLvYeMvjqjiuU8u4gweu0UDgBJGslf+zcvVNXEooAtyLZdENjrzDDjG8ssS7Q==",
+            "version": "0.27.0",
+            "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.27.0.tgz",
+            "integrity": "sha512-KkZ54+MUnggz17C/RCEMXQSpiiqZRF7p9fjrz4phaaeKlTrjg0B+QbM5zcDWcjGiAWaJUptHaH17+RZldadkUw==",
             "dev": true,
             "requires": {
-                "browserslist-config-wikimedia": "^0.5.1",
-                "eslint": "^8.53.0",
+                "browserslist-config-wikimedia": "^0.6.1",
+                "eslint": "^8.57.0",
                 "eslint-plugin-compat": "^4.2.0",
-                "eslint-plugin-es-x": "^7.3.0",
-                "eslint-plugin-jest": "^27.6.0",
-                "eslint-plugin-jsdoc": "^42.0.0",
+                "eslint-plugin-es-x": "^7.6.0",
+                "eslint-plugin-jest": "^27.9.0",
+                "eslint-plugin-jsdoc": "48.2.1",
                 "eslint-plugin-json-es": "^1.5.7",
-                "eslint-plugin-mediawiki": "^0.5.0",
-                "eslint-plugin-mocha": "^10.2.0",
-                "eslint-plugin-n": "^16.0.1",
+                "eslint-plugin-mediawiki": "^0.6.0",
+                "eslint-plugin-mocha": "^10.4.1",
+                "eslint-plugin-n": "^16.6.2",
                 "eslint-plugin-no-jquery": "^2.7.0",
-                "eslint-plugin-qunit": "^7.3.4",
+                "eslint-plugin-qunit": "^8.1.1",
                 "eslint-plugin-security": "^1.7.1",
-                "eslint-plugin-unicorn": "^47.0.0",
-                "eslint-plugin-vue": "^9.18.1",
-                "eslint-plugin-wdio": "^7.19.4",
-                "eslint-plugin-yml": "^1.10.0"
+                "eslint-plugin-unicorn": "^51.0.1",
+                "eslint-plugin-vue": "^9.23.0",
+                "eslint-plugin-wdio": "^8.24.12",
+                "eslint-plugin-yml": "^1.13.2"
             }
         },
         "eslint-plugin-compat": {
@@ -3463,14 +3452,14 @@
             }
         },
         "eslint-plugin-es-x": {
-            "version": "7.5.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz",
-            "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==",
+            "version": "7.6.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz",
+            "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==",
             "dev": true,
             "requires": {
                 "@eslint-community/eslint-utils": "^4.1.2",
                 "@eslint-community/regexpp": "^4.6.0",
-                "eslint-compat-utils": "^0.1.2"
+                "eslint-compat-utils": "^0.5.0"
             }
         },
         "eslint-plugin-jest": {
@@ -3483,19 +3472,20 @@
             }
         },
         "eslint-plugin-jsdoc": {
-            "version": "42.0.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-42.0.0.tgz",
-            "integrity": "sha512-qXYr45G8atPKowZbIOdmABukMzu9IMjAlj6j5Fe0iuUItznWSXUDiBj57ejXcbt8bkPrg83333nuz+cqGKFgcQ==",
+            "version": "48.2.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.1.tgz",
+            "integrity": "sha512-iUvbcyDZSO/9xSuRv2HQBw++8VkV/pt3UWtX9cpPH0l7GKPq78QC/6+PmyQHHvNZaTjAce6QVciEbnc6J/zH5g==",
             "dev": true,
             "requires": {
-                "@es-joy/jsdoccomment": "~0.37.0",
+                "@es-joy/jsdoccomment": "~0.42.0",
                 "are-docs-informative": "^0.0.2",
-                "comment-parser": "1.3.1",
+                "comment-parser": "1.4.1",
                 "debug": "^4.3.4",
                 "escape-string-regexp": "^4.0.0",
                 "esquery": "^1.5.0",
-                "semver": "^7.3.8",
-                "spdx-expression-parse": "^3.0.1"
+                "is-builtin-module": "^3.2.1",
+                "semver": "^7.6.0",
+                "spdx-expression-parse": "^4.0.0"
             }
         },
         "eslint-plugin-json-es": {
@@ -3509,44 +3499,13 @@
             }
         },
         "eslint-plugin-mediawiki": {
-            "version": "0.5.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.5.0.tgz",
-            "integrity": "sha512-rjkHFyv3VDan/dmu7YpD1Rl9h64NOlz4mqqesRN316R+571+ymmb6lXVOdNMbT8H1iPhmtHc+nijVLVkn7pYDw==",
+            "version": "0.6.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.6.0.tgz",
+            "integrity": "sha512-a2Zm18N5nPyflBajM2ZWATxucIpYPEmOSjFzUR1OBH3hAL0GY9fx1mpezEwzqAQ862d+kPkolgQOzktnZe8nKA==",
             "dev": true,
             "requires": {
-                "eslint-plugin-vue": "^8.7.1",
+                "eslint-plugin-vue": "^9.23.0",
                 "upath": "^2.0.1"
-            },
-            "dependencies": {
-                "eslint-plugin-vue": {
-                    "version": "8.7.1",
-                    "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz",
-                    "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==",
-                    "dev": true,
-                    "requires": {
-                        "eslint-utils": "^3.0.0",
-                        "natural-compare": "^1.4.0",
-                        "nth-check": "^2.0.1",
-                        "postcss-selector-parser": "^6.0.9",
-                        "semver": "^7.3.5",
-                        "vue-eslint-parser": "^8.0.1"
-                    }
-                },
-                "vue-eslint-parser": {
-                    "version": "8.3.0",
-                    "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
-                    "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
-                    "dev": true,
-                    "requires": {
-                        "debug": "^4.3.2",
-                        "eslint-scope": "^7.0.0",
-                        "eslint-visitor-keys": "^3.1.0",
-                        "espree": "^9.0.0",
-                        "esquery": "^1.4.0",
-                        "lodash": "^4.17.21",
-                        "semver": "^7.3.5"
-                    }
-                }
             }
         },
         "eslint-plugin-mocha": {
@@ -3587,9 +3546,9 @@
             "requires": {}
         },
         "eslint-plugin-qunit": {
-            "version": "7.3.4",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.3.4.tgz",
-            "integrity": "sha512-EbDM0zJerH9zVdUswMJpcFF7wrrpvsGuYfNexUpa5hZkkdFhaFcX+yD+RSK4Nrauw4psMGlcqeWUMhaVo+Manw==",
+            "version": "8.1.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.1.1.tgz",
+            "integrity": "sha512-j3xhiAf2Wvr8Dfwl5T6tlJ+F55vqYE9ZdAHUOTzq1lGerYrXzOS46RvK4SSWug2D8sl3ZYr2lA4/hgVXgLloxw==",
             "dev": true,
             "requires": {
                 "eslint-utils": "^3.0.0",
@@ -3606,26 +3565,26 @@
             }
         },
         "eslint-plugin-unicorn": {
-            "version": "47.0.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-47.0.0.tgz",
-            "integrity": "sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==",
+            "version": "51.0.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-51.0.1.tgz",
+            "integrity": "sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==",
             "dev": true,
             "requires": {
-                "@babel/helper-validator-identifier": "^7.19.1",
+                "@babel/helper-validator-identifier": "^7.22.20",
                 "@eslint-community/eslint-utils": "^4.4.0",
-                "ci-info": "^3.8.0",
+                "@eslint/eslintrc": "^2.1.4",
+                "ci-info": "^4.0.0",
                 "clean-regexp": "^1.0.0",
+                "core-js-compat": "^3.34.0",
                 "esquery": "^1.5.0",
                 "indent-string": "^4.0.0",
                 "is-builtin-module": "^3.2.1",
                 "jsesc": "^3.0.2",
-                "lodash": "^4.17.21",
                 "pluralize": "^8.0.0",
                 "read-pkg-up": "^7.0.1",
-                "regexp-tree": "^0.1.24",
+                "regexp-tree": "^0.1.27",
                 "regjsparser": "^0.10.0",
-                "safe-regex": "^2.1.1",
-                "semver": "^7.3.8",
+                "semver": "^7.5.4",
                 "strip-indent": "^3.0.0"
             }
         },
@@ -3645,15 +3604,15 @@
             }
         },
         "eslint-plugin-wdio": {
-            "version": "7.25.3",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-7.25.3.tgz",
-            "integrity": "sha512-2zbYwV14Md9FNlyhaIILVGPB6w4bu2eJdOTywDUs2Qy4ebcQNwrxB0qCaf7Rm4O+T0Ir+tdYHYBBfbDocSLKng==",
+            "version": "8.24.12",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-8.24.12.tgz",
+            "integrity": "sha512-OmzGteXFOQnJDdkTNnTfksaVa18WlFCyeLjZXHvDpkbomLWAg9wc296Pr0wnTCagqNj8qfEHpy+N2XVew5VCMA==",
             "dev": true
         },
         "eslint-plugin-yml": {
-            "version": "1.13.1",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.13.1.tgz",
-            "integrity": "sha512-J1gNca5cWUIlo6ilQJBlPwap2ggVuc7gaOxiCdYjmncyWN8aNHErEhk2ICFj6shr8Jz27c3AU1Ie7i6HqVa4Hw==",
+            "version": "1.14.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.14.0.tgz",
+            "integrity": "sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==",
             "dev": true,
             "requires": {
                 "debug": "^4.3.2",
@@ -3661,17 +3620,6 @@
                 "lodash": "^4.17.21",
                 "natural-compare": "^1.4.0",
                 "yaml-eslint-parser": "^1.2.1"
-            },
-            "dependencies": {
-                "eslint-compat-utils": {
-                    "version": "0.5.0",
-                    "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
-                    "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
-                    "dev": true,
-                    "requires": {
-                        "semver": "^7.5.4"
-                    }
-                }
             }
         },
         "eslint-scope": {
@@ -4562,6 +4510,18 @@
             "requires": {
                 "spdx-expression-parse": "^3.0.0",
                 "spdx-license-ids": "^3.0.0"
+            },
+            "dependencies": {
+                "spdx-expression-parse": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+                    "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+                    "dev": true,
+                    "requires": {
+                        "spdx-exceptions": "^2.1.0",
+                        "spdx-license-ids": "^3.0.0"
+                    }
+                }
             }
         },
         "spdx-exceptions": {
@@ -4571,9 +4531,9 @@
             "dev": true
         },
         "spdx-expression-parse": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
-            "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
+            "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
             "dev": true,
             "requires": {
                 "spdx-exceptions": "^2.1.0",
@@ -4716,6 +4676,18 @@
             "requires": {
                 "spdx-correct": "^3.0.0",
                 "spdx-expression-parse": "^3.0.0"
+            },
+            "dependencies": {
+                "spdx-expression-parse": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+                    "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+                    "dev": true,
+                    "requires": {
+                        "spdx-exceptions": "^2.1.0",
+                        "spdx-license-ids": "^3.0.0"
+                    }
+                }
             }
         },
         "vue-eslint-parser": {
diff --git a/package.json b/package.json
index 7cc2dab..20671f2 100644
--- a/package.json
+++ b/package.json
@@ -6,6 +6,6 @@
         "changelog": "git log --format='* %s (%aN)' --no-merges --reverse $(git describe --tags --abbrev=0 HEAD)...HEAD | sort | grep -vE '^\\* (build|docs?|tests?):'"
     },
     "devDependencies": {
-        "eslint-config-wikimedia": "0.26.0"
+        "eslint-config-wikimedia": "0.27.0"
     }
 }
-- 
2.39.2


--- end ---

npm dependencies

Development dependencies

Logs

Source code is licensed under the AGPL.