This run took 111 seconds.
$ date --- stdout --- Wed Jan 15 05:07:36 UTC 2025 --- end --- $ git clone file:///srv/git/mediawiki-skins-Vector.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 --- 368c996ea99adbd70cf3c029ee04ebd665f46e00 refs/heads/master --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "cross-spawn": { "name": "cross-spawn", "severity": "high", "isDirect": false, "via": [ { "source": 1100562, "name": "cross-spawn", "dependency": "cross-spawn", "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn", "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275", "severity": "high", "cwe": [ "CWE-1333" ], "cvss": { "score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, "range": "<6.0.6" }, { "source": 1100563, "name": "cross-spawn", "dependency": "cross-spawn", "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn", "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275", "severity": "high", "cwe": [ "CWE-1333" ], "cvss": { "score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, "range": ">=7.0.0 <7.0.5" } ], "effects": [ "pre-commit" ], "range": "<6.0.6 || >=7.0.0 <7.0.5", "nodes": [ "node_modules/cross-spawn", "node_modules/pre-commit/node_modules/cross-spawn" ], "fixAvailable": { "name": "pre-commit", "version": "1.0.10", "isSemVerMajor": true } }, "nanoid": { "name": "nanoid", "severity": "moderate", "isDirect": false, "via": [ { "source": 1101163, "name": "nanoid", "dependency": "nanoid", "title": "Predictable results in nanoid generation when given non-integer values", "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55", "severity": "moderate", "cwe": [ "CWE-835" ], "cvss": { "score": 4.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N" }, "range": "<3.3.8" } ], "effects": [], "range": "<3.3.8", "nodes": [ "node_modules/nanoid" ], "fixAvailable": true }, "pre-commit": { "name": "pre-commit", "severity": "high", "isDirect": true, "via": [ "cross-spawn" ], "effects": [], "range": ">=1.1.0", "nodes": [ "node_modules/pre-commit" ], "fixAvailable": { "name": "pre-commit", "version": "1.0.10", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 1, "high": 2, "critical": 0, "total": 3 }, "dependencies": { "prod": 1, "dev": 902, "optional": 2, "peer": 0, "peerOptional": 0, "total": 902 } } } --- end --- $ /usr/bin/composer install --- stderr --- No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information. Loading composer repositories with package information Updating dependencies Lock file operations: 39 installs, 0 updates, 0 removals - Locking composer/installers (v2.3.0) - Locking composer/pcre (3.3.2) - Locking composer/semver (3.4.3) - Locking composer/spdx-licenses (1.5.8) - Locking composer/xdebug-handler (3.0.5) - Locking dealerdirect/phpcodesniffer-composer-installer (v1.0.0) - Locking doctrine/deprecations (1.1.4) - Locking felixfbecker/advanced-json-rpc (v3.2.1) - Locking mediawiki/mediawiki-codesniffer (v45.0.0) - Locking mediawiki/mediawiki-phan-config (0.15.0) - Locking mediawiki/minus-x (1.1.3) - Locking mediawiki/phan-taint-check-plugin (6.1.0) - Locking microsoft/tolerant-php-parser (v0.1.2) - Locking netresearch/jsonmapper (v4.5.0) - Locking phan/phan (5.4.5) - Locking php-parallel-lint/php-console-color (v1.0.1) - Locking php-parallel-lint/php-console-highlighter (v1.0.0) - Locking php-parallel-lint/php-parallel-lint (v1.4.0) - Locking phpcsstandards/phpcsextra (1.2.1) - Locking phpcsstandards/phpcsutils (1.0.12) - Locking phpdocumentor/reflection-common (2.2.0) - Locking phpdocumentor/reflection-docblock (5.6.1) - Locking phpdocumentor/type-resolver (1.10.0) - Locking phpstan/phpdoc-parser (2.0.0) - Locking psr/container (2.0.2) - Locking psr/log (3.0.2) - Locking sabre/event (5.1.7) - Locking squizlabs/php_codesniffer (3.10.3) - Locking symfony/console (v7.2.1) - Locking symfony/deprecation-contracts (v3.5.1) - Locking symfony/polyfill-ctype (v1.31.0) - Locking symfony/polyfill-intl-grapheme (v1.31.0) - Locking symfony/polyfill-intl-normalizer (v1.31.0) - Locking symfony/polyfill-mbstring (v1.31.0) - Locking symfony/polyfill-php80 (v1.31.0) - Locking symfony/service-contracts (v3.5.1) - Locking symfony/string (v7.2.0) - Locking tysonandre/var_representation_polyfill (0.1.3) - Locking webmozart/assert (1.11.0) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 39 installs, 0 updates, 0 removals 0 [>---------------------------] 0 [->--------------------------] - Installing composer/installers (v2.3.0): Extracting archive - Installing squizlabs/php_codesniffer (3.10.3): Extracting archive - Installing dealerdirect/phpcodesniffer-composer-installer (v1.0.0): Extracting archive - Installing composer/pcre (3.3.2): Extracting archive - Installing symfony/polyfill-php80 (v1.31.0): Extracting archive - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive - Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive - Installing symfony/polyfill-mbstring (v1.31.0): Extracting archive - Installing composer/spdx-licenses (1.5.8): Extracting archive - Installing composer/semver (3.4.3): Extracting archive - Installing mediawiki/mediawiki-codesniffer (v45.0.0): Extracting archive - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.31.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.31.0): Extracting archive - Installing symfony/polyfill-ctype (v1.31.0): Extracting archive - Installing symfony/string (v7.2.0): Extracting archive - Installing symfony/deprecation-contracts (v3.5.1): Extracting archive - Installing psr/container (2.0.2): Extracting archive - Installing symfony/service-contracts (v3.5.1): Extracting archive - Installing symfony/console (v7.2.1): Extracting archive - Installing sabre/event (5.1.7): Extracting archive - Installing netresearch/jsonmapper (v4.5.0): Extracting archive - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive - Installing webmozart/assert (1.11.0): Extracting archive - Installing phpstan/phpdoc-parser (2.0.0): Extracting archive - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive - Installing doctrine/deprecations (1.1.4): Extracting archive - Installing phpdocumentor/type-resolver (1.10.0): Extracting archive - Installing phpdocumentor/reflection-docblock (5.6.1): Extracting archive - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive - Installing psr/log (3.0.2): Extracting archive - Installing composer/xdebug-handler (3.0.5): Extracting archive - Installing phan/phan (5.4.5): Extracting archive - Installing mediawiki/phan-taint-check-plugin (6.1.0): Extracting archive - Installing mediawiki/mediawiki-phan-config (0.15.0): Extracting archive - Installing mediawiki/minus-x (1.1.3): Extracting archive - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive 0/36 [>---------------------------] 0% 20/36 [===============>------------] 55% 35/36 [===========================>] 97% 36/36 [============================] 100% 1 package suggestions were added by new dependencies, use `composer suggest` to see details. Generating autoload files 17 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils --- end --- Upgrading n:stylelint-config-wikimedia from 0.17.2 -> 0.18.0 Upgrading n:vue from 3.4.27 -> 3.4.28 Upgrading n:@vue/test-utils from 2.4.1 -> 2.4.6 Upgrading n:jest from 27.4.7 -> 29.7.0 Upgrading n:@vue/vue3-jest from 27.0.0 -> 29.2.6 Upgrading n:@wikimedia/codex from 1.16.0 -> 1.19.1 Upgrading n:@wikimedia/codex-icons from 1.16.0 -> 1.19.1 Upgrading n:ts-jest from 27.1.5 -> 29.2.5 $ /usr/bin/npm install --- stderr --- npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: Vector@undefined npm ERR! Found: @wikimedia/codex@1.16.0 npm ERR! node_modules/@wikimedia/codex npm ERR! dev @wikimedia/codex@"1.19.1" from the root project npm ERR! npm ERR! Could not resolve dependency: npm ERR! dev @wikimedia/codex@"1.19.1" from the root project npm ERR! npm ERR! Conflicting peer dependency: vue@3.4.28 npm ERR! node_modules/vue npm ERR! peer vue@"3.4.28" from @wikimedia/codex@1.19.1 npm ERR! node_modules/@wikimedia/codex npm ERR! dev @wikimedia/codex@"1.19.1" from the root project npm ERR! npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution. npm ERR! npm ERR! npm ERR! For a full report see: npm ERR! /cache/_logs/2025-01-15T05_07_42_135Z-eresolve-report.txt npm ERR! A complete log of this run can be found in: npm ERR! /cache/_logs/2025-01-15T05_07_42_135Z-debug-0.log --- stdout --- --- end --- $ rm -rf package-lock.json node_modules --- stdout --- --- end --- $ /usr/bin/npm install --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex@1.19.1', npm WARN EBADENGINE required: { npm: '>=10.8.1', node: '>=20' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex-icons@1.19.1', npm WARN EBADENGINE required: { npm: '>=10.8.1', node: '>=20' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm WARN deprecated glob@7.2.0: Glob versions prior to v9 are no longer supported npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead npm WARN deprecated mkdirp@0.3.0: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) npm WARN deprecated sinon@12.0.1: 16.1.1 npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options. --- stdout --- added 940 packages, and audited 941 packages in 25s 126 packages are looking for funding run `npm fund` for details 2 high severity vulnerabilities To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- $ ./node_modules/.bin/stylelint resources/skins.vector.styles.legacy/mixins.less resources/skins.vector.styles.legacy/components/Footer.less resources/skins.vector.styles/components/Icon.less skinStyles/jquery.ui/jquery.ui.tooltip.css skinStyles/jquery.ui/jquery.ui.resizable.css resources/skins.vector.clientPreferences/clientPreferences.less resources/skins.vector.styles.legacy/components/Menu.less resources/skins.vector.styles/components/Appearance.less resources/skins.vector.styles/typography.less resources/mediawiki.less/vector-2022/mediawiki.skin.variables.less resources/skins.vector.styles/components/LanguageDropdown.less resources/skins.vector.styles/components/UserLinks.less resources/skins.vector.styles/components/Button.less resources/skins.vector.styles/layouts/screen.less skinStyles/vector/ext.echo.styles.badge.less resources/skins.vector.styles.legacy/typography.less skinStyles/jquery.ui/jquery.ui.theme.css skinStyles/ext.uls.compactlinks.less resources/skins.vector.styles/layouts/toc/pinned.less resources/skins.vector.search/App.vue skinStyles/jquery.ui/jquery.ui.selectable.css skinStyles/vector/mediawiki.notification.less resources/skins.vector.styles.legacy/components/SiteNotice.less resources/skins.vector.styles/links.less resources/skins.vector.styles/components/Logo.less skinStyles/ext.echo.styles.alert.less resources/skins.vector.styles.legacy/print.less resources/skins.vector.styles.legacy/components/MenuDropdown.less resources/skins.vector.styles/components/Indicators.less skinStyles/ext.uls.pt.less skinStyles/jquery.ui/jquery.ui.core.css skinStyles/mediawiki.action.edit.less resources/skins.vector.styles/components/TableOfContents.less resources/skins.vector.js/tableOfContents.less skinStyles/ext.visualEditor.less skinStyles/jquery.ui/jquery.ui.dialog.css resources/skins.vector.styles/layouts/toc/unpinned.less resources/skins.vector.styles.legacy/components/SearchBox.less resources/skins.vector.styles.legacy/components/MenuTabs.less resources/skins.vector.styles/components/SearchBox.less resources/skins.vector.styles/CSSCustomProperties.less resources/skins.vector.styles/components/PinnableHeader.less skinStyles/jquery.ui/jquery.ui.tabs.css resources/skins.vector.styles.legacy/components/LegacySidebar.less skinStyles/jquery.ui/jquery.ui.button.css resources/skins.vector.styles.legacy/components/UserLinks.less skinStyles/ooui.less skinStyles/ext.relatedArticles.readMore.less resources/skins.vector.styles/components/PageToolbar.less resources/skins.vector.styles.legacy/normalize.less resources/skins.vector.styles/components/SiteNotice.less resources/skins.vector.styles.legacy/skin-legacy.less skinStyles/jquery.ui/jquery.ui.datepicker.css skinStyles/ext.echo.styles.badge.less resources/skins.vector.styles/components/Watchstar.less skinStyles/mediawiki.special.search.interwikiwidget.less resources/skins.vector.styles.legacy/components/Indicators.less resources/skins.vector.styles/components/MainMenu.less resources/skins.vector.styles/print.less resources/skins.vector.styles.legacy/components/SidebarLogo.less skinStyles/jquery.ui/jquery.ui.progressbar.css resources/skins.vector.styles.legacy/layouts/print.less resources/skins.vector.styles/components/BottomDock.less resources/skins.vector.styles.legacy/components/TabWatchstarLink.less resources/skins.vector.styles.legacy/variables.less resources/mediawiki.less/vector/mediawiki.skin.variables.less resources/skins.vector.styles/components/PageTitlebar.less resources/skins.vector.js/index.less skinStyles/mediawiki.action.view.redirectPage.less skinStyles/ext.uls.interface.less resources/skins.vector.styles/variables.less resources/skins.vector.styles/components/PageTools.less resources/skins.vector.styles/components/Header.less skinStyles/teleportTarget.less skinStyles/jquery.ui/jquery.ui.accordion.css resources/skins.vector.styles/components/MenuTabs.less resources/skins.vector.styles/layouts/grid.less skinStyles/mediawiki.notification.less skinStyles/jquery.ui/jquery.ui.menu.css resources/skins.vector.js/bottomDock.less resources/skins.vector.styles.legacy/layouts/screen.less resources/skins.vector.styles/skin.less resources/skins.vector.js/stickyHeader.less resources/mediawiki.less resources/skins.vector.styles/components/Menu.less resources/skins.vector.styles/components/Footer.less resources/skins.vector.styles/media.less resources/skins.vector.styles/layouts/print.less resources/skins.vector.styles/components/PinnableElement.less resources/skins.vector.styles/components/Dropdown.less resources/skins.vector.js/popupNotification.less skinStyles/jquery.ui/jquery.ui.autocomplete.css skinStyles/jquery.ui/jquery.ui.slider.css resources/skins.vector.styles/mixins.less resources/skins.vector.styles/normalize.less --fix --- stderr --- resources/skins.vector.clientPreferences/clientPreferences.less 25:1 ⚠ Unexpected browser feature "prefers-color-scheme" is not supported by Safari 12,11.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 plugin/no-unsupported-browser-features resources/skins.vector.styles/layouts/screen.less 102:2 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 102:2 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 147:2 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 147:2 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 165:2 ⚠ Unexpected browser feature "css-touch-action" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1,18.2 plugin/no-unsupported-browser-features 165:2 ⚠ Unexpected browser feature "pointer" is not supported by Safari 12,11.1,12.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 plugin/no-unsupported-browser-features resources/skins.vector.styles/components/Indicators.less 1:1 ⚠ Unexpected browser feature "flexbox-gap" is not supported by Safari 12,13,14,11.1,12.1,13.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4 plugin/no-unsupported-browser-features skinStyles/ext.visualEditor.less 16:2 ⚠ Unexpected browser feature "prefers-color-scheme" is not supported by Safari 12,11.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 plugin/no-unsupported-browser-features resources/skins.vector.styles/layouts/toc/unpinned.less 42:4 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 61:5 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features resources/skins.vector.styles/CSSCustomProperties.less 106:1 ⚠ Unexpected browser feature "prefers-color-scheme" is not supported by Safari 12,11.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 plugin/no-unsupported-browser-features resources/skins.vector.styles.legacy/variables.less 63:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 63:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 102:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 161:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 161:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 162:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 163:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 163:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 164:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 164:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 165:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 165:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 176:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features resources/skins.vector.styles/variables.less 45:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 45:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 136:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 136:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 137:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 138:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 138:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 139:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 139:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 140:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 140:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 151:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features resources/skins.vector.styles/layouts/grid.less 23:3 ⚠ Unexpected browser feature "css-overflow-anchor" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1,18.2, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1,18.2 plugin/no-unsupported-browser-features 121:4 ⚠ Unexpected browser feature "css-overflow-anchor" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1,18.2, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1,18.2 plugin/no-unsupported-browser-features resources/skins.vector.js/bottomDock.less 8:2 ⚠ Unexpected browser feature "flexbox-gap" is not supported by Safari 12,13,14,11.1,12.1,13.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4 plugin/no-unsupported-browser-features resources/skins.vector.styles/media.less 29:1 ⚠ Unexpected browser feature "prefers-color-scheme" is not supported by Safari 12,11.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 plugin/no-unsupported-browser-features resources/skins.vector.styles/components/PinnableElement.less 28:2 ⚠ Unexpected browser feature "css-containment" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3 plugin/no-unsupported-browser-features ⚠ 42 problems (0 errors, 42 warnings) --- stdout --- --- end --- $ ./node_modules/.bin/stylelint resources/skins.vector.styles.legacy/mixins.less resources/skins.vector.styles.legacy/components/Footer.less resources/skins.vector.styles/components/Icon.less skinStyles/jquery.ui/jquery.ui.tooltip.css skinStyles/jquery.ui/jquery.ui.resizable.css resources/skins.vector.clientPreferences/clientPreferences.less resources/skins.vector.styles.legacy/components/Menu.less resources/skins.vector.styles/components/Appearance.less resources/skins.vector.styles/typography.less resources/mediawiki.less/vector-2022/mediawiki.skin.variables.less resources/skins.vector.styles/components/LanguageDropdown.less resources/skins.vector.styles/components/UserLinks.less resources/skins.vector.styles/components/Button.less resources/skins.vector.styles/layouts/screen.less skinStyles/vector/ext.echo.styles.badge.less resources/skins.vector.styles.legacy/typography.less skinStyles/jquery.ui/jquery.ui.theme.css skinStyles/ext.uls.compactlinks.less resources/skins.vector.styles/layouts/toc/pinned.less resources/skins.vector.search/App.vue skinStyles/jquery.ui/jquery.ui.selectable.css skinStyles/vector/mediawiki.notification.less resources/skins.vector.styles.legacy/components/SiteNotice.less resources/skins.vector.styles/links.less resources/skins.vector.styles/components/Logo.less skinStyles/ext.echo.styles.alert.less resources/skins.vector.styles.legacy/print.less resources/skins.vector.styles.legacy/components/MenuDropdown.less resources/skins.vector.styles/components/Indicators.less skinStyles/ext.uls.pt.less skinStyles/jquery.ui/jquery.ui.core.css skinStyles/mediawiki.action.edit.less resources/skins.vector.styles/components/TableOfContents.less resources/skins.vector.js/tableOfContents.less skinStyles/ext.visualEditor.less skinStyles/jquery.ui/jquery.ui.dialog.css resources/skins.vector.styles/layouts/toc/unpinned.less resources/skins.vector.styles.legacy/components/SearchBox.less resources/skins.vector.styles.legacy/components/MenuTabs.less resources/skins.vector.styles/components/SearchBox.less resources/skins.vector.styles/CSSCustomProperties.less resources/skins.vector.styles/components/PinnableHeader.less skinStyles/jquery.ui/jquery.ui.tabs.css resources/skins.vector.styles.legacy/components/LegacySidebar.less skinStyles/jquery.ui/jquery.ui.button.css resources/skins.vector.styles.legacy/components/UserLinks.less skinStyles/ooui.less skinStyles/ext.relatedArticles.readMore.less resources/skins.vector.styles/components/PageToolbar.less resources/skins.vector.styles.legacy/normalize.less resources/skins.vector.styles/components/SiteNotice.less resources/skins.vector.styles.legacy/skin-legacy.less skinStyles/jquery.ui/jquery.ui.datepicker.css skinStyles/ext.echo.styles.badge.less resources/skins.vector.styles/components/Watchstar.less skinStyles/mediawiki.special.search.interwikiwidget.less resources/skins.vector.styles.legacy/components/Indicators.less resources/skins.vector.styles/components/MainMenu.less resources/skins.vector.styles/print.less resources/skins.vector.styles.legacy/components/SidebarLogo.less skinStyles/jquery.ui/jquery.ui.progressbar.css resources/skins.vector.styles.legacy/layouts/print.less resources/skins.vector.styles/components/BottomDock.less resources/skins.vector.styles.legacy/components/TabWatchstarLink.less resources/skins.vector.styles.legacy/variables.less resources/mediawiki.less/vector/mediawiki.skin.variables.less resources/skins.vector.styles/components/PageTitlebar.less resources/skins.vector.js/index.less skinStyles/mediawiki.action.view.redirectPage.less skinStyles/ext.uls.interface.less resources/skins.vector.styles/variables.less resources/skins.vector.styles/components/PageTools.less resources/skins.vector.styles/components/Header.less skinStyles/teleportTarget.less skinStyles/jquery.ui/jquery.ui.accordion.css resources/skins.vector.styles/components/MenuTabs.less resources/skins.vector.styles/layouts/grid.less skinStyles/mediawiki.notification.less skinStyles/jquery.ui/jquery.ui.menu.css resources/skins.vector.js/bottomDock.less resources/skins.vector.styles.legacy/layouts/screen.less resources/skins.vector.styles/skin.less resources/skins.vector.js/stickyHeader.less resources/mediawiki.less resources/skins.vector.styles/components/Menu.less resources/skins.vector.styles/components/Footer.less resources/skins.vector.styles/media.less resources/skins.vector.styles/layouts/print.less resources/skins.vector.styles/components/PinnableElement.less resources/skins.vector.styles/components/Dropdown.less resources/skins.vector.js/popupNotification.less skinStyles/jquery.ui/jquery.ui.autocomplete.css skinStyles/jquery.ui/jquery.ui.slider.css resources/skins.vector.styles/mixins.less resources/skins.vector.styles/normalize.less -f json --- stdout --- [{"source":"/src/repo/resources/skins.vector.styles.legacy/mixins.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/components/Footer.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/Icon.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.clientPreferences/clientPreferences.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[{"line":25,"column":1,"endLine":29,"endColumn":2,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"prefers-color-scheme\" is not supported by Safari 12,11.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 (plugin/no-unsupported-browser-features)"}]},{"source":"/src/repo/resources/skins.vector.styles.legacy/components/Menu.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/Appearance.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/typography.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/mediawiki.less/vector-2022/mediawiki.skin.variables.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/LanguageDropdown.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/UserLinks.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/Button.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/layouts/screen.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[{"line":102,"column":2,"endLine":102,"endColumn":41,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":102,"column":2,"endLine":102,"endColumn":41,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":147,"column":2,"endLine":147,"endColumn":41,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":147,"column":2,"endLine":147,"endColumn":41,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":165,"column":2,"endLine":165,"endColumn":30,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-touch-action\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1,18.2 (plugin/no-unsupported-browser-features)"},{"line":165,"column":2,"endLine":165,"endColumn":30,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"pointer\" is not supported by Safari 12,11.1,12.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 (plugin/no-unsupported-browser-features)"}]},{"source":"/src/repo/skinStyles/vector/ext.echo.styles.badge.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/typography.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/skinStyles/ext.uls.compactlinks.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/layouts/toc/pinned.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.search/App.vue","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/skinStyles/vector/mediawiki.notification.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/components/SiteNotice.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/links.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/Logo.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/skinStyles/ext.echo.styles.alert.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/print.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/components/MenuDropdown.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/Indicators.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[{"line":1,"column":1,"endLine":9,"endColumn":2,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"flexbox-gap\" is not supported by Safari 12,13,14,11.1,12.1,13.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4 (plugin/no-unsupported-browser-features)"}]},{"source":"/src/repo/skinStyles/ext.uls.pt.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/skinStyles/mediawiki.action.edit.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/TableOfContents.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.js/tableOfContents.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/skinStyles/ext.visualEditor.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[{"line":16,"column":2,"endLine":23,"endColumn":3,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"prefers-color-scheme\" is not supported by Safari 12,11.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 (plugin/no-unsupported-browser-features)"}]},{"source":"/src/repo/resources/skins.vector.styles/layouts/toc/unpinned.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[{"line":42,"column":4,"endLine":42,"endColumn":34,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":61,"column":5,"endLine":61,"endColumn":35,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"}]},{"source":"/src/repo/resources/skins.vector.styles.legacy/components/SearchBox.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/components/MenuTabs.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/SearchBox.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/CSSCustomProperties.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[{"line":106,"column":1,"endLine":125,"endColumn":2,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"prefers-color-scheme\" is not supported by Safari 12,11.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 (plugin/no-unsupported-browser-features)"}]},{"source":"/src/repo/resources/skins.vector.styles/components/PinnableHeader.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/components/LegacySidebar.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/components/UserLinks.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/skinStyles/ooui.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/skinStyles/ext.relatedArticles.readMore.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/PageToolbar.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/normalize.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/SiteNotice.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/skin-legacy.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/skinStyles/ext.echo.styles.badge.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/Watchstar.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/skinStyles/mediawiki.special.search.interwikiwidget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/components/Indicators.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/MainMenu.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/print.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/components/SidebarLogo.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/layouts/print.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/BottomDock.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/components/TabWatchstarLink.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles.legacy/variables.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[{"line":63,"column":1,"endLine":63,"endColumn":59,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":63,"column":1,"endLine":63,"endColumn":59,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":102,"column":1,"endLine":102,"endColumn":112,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":161,"column":1,"endLine":161,"endColumn":69,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":161,"column":1,"endLine":161,"endColumn":69,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":162,"column":1,"endLine":162,"endColumn":71,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":163,"column":1,"endLine":163,"endColumn":76,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":163,"column":1,"endLine":163,"endColumn":76,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":164,"column":1,"endLine":164,"endColumn":84,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":164,"column":1,"endLine":164,"endColumn":84,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":165,"column":1,"endLine":165,"endColumn":89,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":165,"column":1,"endLine":165,"endColumn":89,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":176,"column":1,"endLine":176,"endColumn":38,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"}]},{"source":"/src/repo/resources/mediawiki.less/vector/mediawiki.skin.variables.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/PageTitlebar.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.js/index.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/skinStyles/mediawiki.action.view.redirectPage.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/skinStyles/ext.uls.interface.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/variables.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[{"line":45,"column":1,"endLine":45,"endColumn":59,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":45,"column":1,"endLine":45,"endColumn":59,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":136,"column":1,"endLine":136,"endColumn":70,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":136,"column":1,"endLine":136,"endColumn":70,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":137,"column":1,"endLine":137,"endColumn":72,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":138,"column":1,"endLine":138,"endColumn":77,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":138,"column":1,"endLine":138,"endColumn":77,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":139,"column":1,"endLine":139,"endColumn":85,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":139,"column":1,"endLine":139,"endColumn":85,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":140,"column":1,"endLine":140,"endColumn":90,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-container-queries\" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 (plugin/no-unsupported-browser-features)"},{"line":140,"column":1,"endLine":140,"endColumn":90,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"},{"line":151,"column":1,"endLine":151,"endColumn":38,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-paged-media\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 (plugin/no-unsupported-browser-features)"}]},{"source":"/src/repo/resources/skins.vector.styles/components/PageTools.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/Header.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/skinStyles/teleportTarget.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/MenuTabs.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/layouts/grid.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[{"line":23,"column":3,"endLine":23,"endColumn":25,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-overflow-anchor\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1,18.2, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1,18.2 (plugin/no-unsupported-browser-features)"},{"line":121,"column":4,"endLine":121,"endColumn":26,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-overflow-anchor\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1,18.2, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1,18.2 (plugin/no-unsupported-browser-features)"}]},{"source":"/src/repo/skinStyles/mediawiki.notification.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.js/bottomDock.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[{"line":8,"column":2,"endLine":15,"endColumn":3,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"flexbox-gap\" is not supported by Safari 12,13,14,11.1,12.1,13.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4 (plugin/no-unsupported-browser-features)"}]},{"source":"/src/repo/resources/skins.vector.styles.legacy/layouts/screen.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/skin.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.js/stickyHeader.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/Menu.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/Footer.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/media.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[{"line":29,"column":1,"endLine":33,"endColumn":2,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"prefers-color-scheme\" is not supported by Safari 12,11.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 (plugin/no-unsupported-browser-features)"}]},{"source":"/src/repo/resources/skins.vector.styles/layouts/print.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/components/PinnableElement.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[{"line":28,"column":2,"endLine":28,"endColumn":17,"rule":"plugin/no-unsupported-browser-features","severity":"warning","text":"Unexpected browser feature \"css-containment\" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3 (plugin/no-unsupported-browser-features)"}]},{"source":"/src/repo/resources/skins.vector.styles/components/Dropdown.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.js/popupNotification.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/mixins.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]},{"source":"/src/repo/resources/skins.vector.styles/normalize.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]}] --- end --- $ /usr/bin/npm install jest-environment-jsdom@29.7.0 --save-dev --save-exact --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex@1.19.1', npm WARN EBADENGINE required: { node: '>=20', npm: '>=10.8.1' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex-icons@1.19.1', npm WARN EBADENGINE required: { node: '>=20', npm: '>=10.8.1' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } --- stdout --- added 14 packages, and audited 955 packages in 2s 126 packages are looking for funding run `npm fund` for details 2 high severity vulnerabilities To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- $ /usr/bin/npm ci --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex@1.19.1', npm WARN EBADENGINE required: { node: '>=20', npm: '>=10.8.1' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex-icons@1.19.1', npm WARN EBADENGINE required: { node: '>=20', npm: '>=10.8.1' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead npm WARN deprecated glob@7.2.0: Glob versions prior to v9 are no longer supported npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead npm WARN deprecated mkdirp@0.3.0: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) npm WARN deprecated sinon@12.0.1: 16.1.1 npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options. --- stdout --- added 954 packages, and audited 955 packages in 12s 126 packages are looking for funding run `npm fund` for details 2 high severity vulnerabilities To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. --- end --- $ /usr/bin/npm test --- stderr --- skinStyles/ext.visualEditor.less 16:2 ⚠ Unexpected browser feature "prefers-color-scheme" is not supported by Safari 12,11.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 plugin/no-unsupported-browser-features resources/skins.vector.clientPreferences/clientPreferences.less 25:1 ⚠ Unexpected browser feature "prefers-color-scheme" is not supported by Safari 12,11.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 plugin/no-unsupported-browser-features resources/skins.vector.js/bottomDock.less 8:2 ⚠ Unexpected browser feature "flexbox-gap" is not supported by Safari 12,13,14,11.1,12.1,13.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4 plugin/no-unsupported-browser-features resources/skins.vector.styles/CSSCustomProperties.less 106:1 ⚠ Unexpected browser feature "prefers-color-scheme" is not supported by Safari 12,11.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 plugin/no-unsupported-browser-features resources/skins.vector.styles/media.less 29:1 ⚠ Unexpected browser feature "prefers-color-scheme" is not supported by Safari 12,11.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 plugin/no-unsupported-browser-features resources/skins.vector.styles/variables.less 45:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 45:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 136:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 136:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 137:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 138:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 138:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 139:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 139:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 140:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 140:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 151:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features resources/skins.vector.styles.legacy/variables.less 63:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 63:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 102:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 161:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 161:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 162:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 163:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 163:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 164:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 164:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 165:1 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 165:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 176:1 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features resources/skins.vector.styles/components/Indicators.less 1:1 ⚠ Unexpected browser feature "flexbox-gap" is not supported by Safari 12,13,14,11.1,12.1,13.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4 plugin/no-unsupported-browser-features resources/skins.vector.styles/components/PinnableElement.less 28:2 ⚠ Unexpected browser feature "css-containment" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3 plugin/no-unsupported-browser-features resources/skins.vector.styles/layouts/grid.less 23:3 ⚠ Unexpected browser feature "css-overflow-anchor" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1,18.2, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1,18.2 plugin/no-unsupported-browser-features 121:4 ⚠ Unexpected browser feature "css-overflow-anchor" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1,18.2, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1,18.2 plugin/no-unsupported-browser-features resources/skins.vector.styles/layouts/screen.less 102:2 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 102:2 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 147:2 ⚠ Unexpected browser feature "css-container-queries" is not supported by Edge 98,99,100,101,102,103,104, Firefox 97,98,99,100,101,102,103,104,105,106,107,108,109, Chrome 98,99,100,101,102,103,104, Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8 plugin/no-unsupported-browser-features 147:2 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 165:2 ⚠ Unexpected browser feature "css-touch-action" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1,18.2 plugin/no-unsupported-browser-features 165:2 ⚠ Unexpected browser feature "pointer" is not supported by Safari 12,11.1,12.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5 plugin/no-unsupported-browser-features resources/skins.vector.styles/layouts/toc/unpinned.less 42:4 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features 61:5 ⚠ Unexpected browser feature "css-paged-media" is not supported by Safari 12,13,14,15,11.1,12.1,13.1,14.1,15.1,15.2-15.3,15.4,15.5,15.6,16.0,16.1,16.2,16.3,16.4,16.5,16.6,17.0,17.1,17.2,17.3,17.4,17.5,17.6,18.0,18.1, Safari on iOS 11.3-11.4,12.0-12.1,12.2-12.5,13.0-13.1,13.2,13.3,13.4-13.7,14.0-14.4,14.5-14.8,15.0-15.1,15.2-15.3,15.4,15.5,15.6-15.8,16.0,16.1,16.2,16.3,16.4,16.5,16.6-16.7,17.0,17.1,17.2,17.3,17.4,17.5,17.6-17.7,18.0,18.1, Android Browser 131 plugin/no-unsupported-browser-features ⚠ 42 problems (0 errors, 42 warnings) The "se" translation has 2 translations with trailing whitespace: * vector-opt-out * vector-opt-out-tooltip PASS tests/jest/AB.test.js FAIL tests/jest/pinnableElement.test.js ● Pinnable header › renders expect(received).toMatchSnapshot() Snapshot name: `Pinnable header renders 1` - Snapshot - 11 + Received + 11 @@ -1,19 +1,19 @@ - "<div id=\"pinned-container\"> + "<div id="pinned-container"> </div> - <div class=\"vector-dropdown\"> + <div class="vector-dropdown"> - <input type=\"checkbox\" id=\"checkbox\" class=\"vector-menu-checkbox\"> + <input type="checkbox" id="checkbox" class="vector-menu-checkbox"> - <label for=\"checkbox\" class=\"vector-menu-heading \"> + <label for="checkbox" class="vector-menu-heading "> - <span class=\"vector-menu-heading-label\">Dropdown</span> + <span class="vector-menu-heading-label">Dropdown</span> </label> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <div id=\"unpinned-container\"> + <div id="unpinned-container"> - <div id=\"pinnable-element\"><div class=\"vector-pinnable-header pinnable-element-pinnable-header vector-pinnable-header-unpinned\" data-feature-name=\"pinned\" data-pinnable-element-id=\"pinnable-element\"> + <div id="pinnable-element"><div class="vector-pinnable-header pinnable-element-pinnable-header vector-pinnable-header-unpinned" data-feature-name="pinned" data-pinnable-element-id="pinnable-element"> - <div class=\"vector-pinnable-header-label\">simple pinnable element</div> + <div class="vector-pinnable-header-label">simple pinnable element</div> - <button class=\"vector-pinnable-header-toggle-button vector-pinnable-header-pin-button\" data-event-name=\"pinnable-header.pinnable-element.pin\">pin</button> + <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.pinnable-element.pin">pin</button> - <button class=\"vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button\" data-event-name=\"pinnable-header.pinnable-element.unpin\">unpin</button> + <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.pinnable-element.unpin">unpin</button> </div> </div> </div> </div> </div> 71 | test( 'renders', () => { 72 | initializeHTML( simpleData ); > 73 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 74 | } ); 75 | 76 | test( 'updates pinnable header classes when toggle is pressed', () => { at Object.<anonymous> (tests/jest/pinnableElement.test.js:73:37) › 1 snapshot failed. FAIL tests/jest/tableOfContents.test.js ● Test suite failed to run ● Invalid return value: `process()` or/and `processAsync()` method of code transformer found at "/src/repo/node_modules/mustache-jest/index.js" should return an object or a Promise resolving to an object. The object must have `code` property with a string of processed code. This error may be caused by a breaking change in Jest 28: https://jestjs.io/docs/28.x/upgrading-to-jest28#transformer Code Transformation Documentation: https://jestjs.io/docs/code-transformation 4 | * TableOfContents Mustache templates 5 | */ > 6 | const templateTocContents = require( /** @type {string} */ ( './templates/TableOfContents__list.mustache' ) ); | ^ 7 | const templateTocLine = require( /** @type {string} */ ( './templates/TableOfContents__line.mustache' ) ); 8 | /** 9 | * TableOfContents Config object for filling mustache templates at ScriptTransformer._buildTransformResult (node_modules/@jest/transform/build/ScriptTransformer.js:442:15) at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:554:17) at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:674:40) at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:726:19) at Object.require (resources/skins.vector.js/tableOfContents.js:6:29) at Object.<anonymous> (tests/jest/tableOfContents.test.js:9:29) FAIL tests/jest/skins.vector.js/dropdownMenus.test.js ● addPortletLinkHandler › Adds a span with icon class to menus expect(received).toMatchSnapshot() Snapshot name: `addPortletLinkHandler Adds a span with icon class to menus 1` - Snapshot - 3 + Received + 3 @@ -1,9 +1,9 @@ " - <ul class=\"vector-menu\"> + <ul class="vector-menu"> - <li class=\"mw-list-item mw-list-item-js\" id=\"test-id\"> + <li class="mw-list-item mw-list-item-js" id="test-id"> - <a href=\"#test-href\"> + <a href="#test-href"> <span> test link content </span> </a> </li> 53 | const mockPortletItem = document.getElementById( 'test-id' ); 54 | addPortletLinkHandler( mockPortletItem, { id: 'test-id' } ); > 55 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 56 | } ); 57 | 58 | test( 'Does not add an icon when noicon class is present', () => { at Object.<anonymous> (tests/jest/skins.vector.js/dropdownMenus.test.js:55:37) ● addPortletLinkHandler › Does not add an icon when noicon class is present expect(received).toMatchSnapshot() Snapshot name: `addPortletLinkHandler Does not add an icon when noicon class is present 1` - Snapshot - 3 + Received + 3 @@ -1,9 +1,9 @@ " - <ul class=\"vector-menu\"> + <ul class="vector-menu"> - <li class=\"mw-list-item mw-list-item-js\" id=\"test-id\"> + <li class="mw-list-item mw-list-item-js" id="test-id"> - <a href=\"#test-href\"> + <a href="#test-href"> <span> test link content </span> </a> </li> 72 | const mockPortletItem = document.getElementById( 'test-id' ); 73 | addPortletLinkHandler( mockPortletItem, { id: 'test-id' } ); > 74 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 75 | } ); 76 | 77 | test( 'JS portlet should be moved to more menu (#p-cactions) at narrow widths', () => { at Object.<anonymous> (tests/jest/skins.vector.js/dropdownMenus.test.js:74:37) › 2 snapshots failed. FAIL tests/jest/skins.vector.es6/main.test.js ● Test suite failed to run ● Invalid return value: `process()` or/and `processAsync()` method of code transformer found at "/src/repo/node_modules/mustache-jest/index.js" should return an object or a Promise resolving to an object. The object must have `code` property with a string of processed code. This error may be caused by a breaking change in Jest 28: https://jestjs.io/docs/28.x/upgrading-to-jest28#transformer Code Transformation Documentation: https://jestjs.io/docs/code-transformation 4 | * TableOfContents Mustache templates 5 | */ > 6 | const templateTocContents = require( /** @type {string} */ ( './templates/TableOfContents__list.mustache' ) ); | ^ 7 | const templateTocLine = require( /** @type {string} */ ( './templates/TableOfContents__line.mustache' ) ); 8 | /** 9 | * TableOfContents Config object for filling mustache templates at ScriptTransformer._buildTransformResult (node_modules/@jest/transform/build/ScriptTransformer.js:442:15) at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:554:17) at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:674:40) at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:726:19) at Object.require (resources/skins.vector.js/tableOfContents.js:6:29) at Object.require (resources/skins.vector.js/setupIntersectionObservers.js:7:24) at Object.<anonymous> (tests/jest/skins.vector.es6/main.test.js:8:18) FAIL tests/jest/stickyHeader.test.js ● Sticky header renders expect(received).toMatchSnapshot() Snapshot name: `Sticky header renders 1` - Snapshot - 23 + Received + 23 - "<div id=\"vector-sticky-header\" class=\"vector-sticky-header\"> + "<div id="vector-sticky-header" class="vector-sticky-header"> - <div class=\"vector-sticky-header-start\"> + <div class="vector-sticky-header-start"> - <div class=\"vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right\" aria-hidden=\"true\"> + <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> - <button class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle\" data-event-name=\"ui.vector-sticky-search-form.icon\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search\"></span> + <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" data-event-name="ui.vector-sticky-search-form.icon" tabindex="-1"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>search</span> </button> </div> - <div> </div> <div class=\"vector-sticky-header-context-bar\"> + <div> </div> <div class="vector-sticky-header-context-bar"> - <nav aria-label=\"\" class=\"vector-toc-landmark\"> + <nav aria-label="" class="vector-toc-landmark"> - <div id=\"vector-sticky-header-toc\" class=\"vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc\"> + <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc"> - <input type=\"checkbox\" id=\"vector-sticky-header-toc-checkbox\" role=\"button\" aria-haspopup=\"true\" data-event-name=\"ui.dropdown-vector-sticky-header-toc\" class=\"vector-dropdown-checkbox\" aria-label=\"\" tabindex=\"-1\"> + <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox" aria-label="" tabindex="-1"> - <label id=\"vector-sticky-header-toc-label\" for=\"vector-sticky-header-toc-checkbox\" class=\"vector-dropdown-label cdx-button cdx-button--weight-quiet cdx-button--icon-only\" aria-hidden=\"true\" tabindex=\"-1\"><span class=\"vector-dropdown-label-text\"></span> + <label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--weight-quiet cdx-button--icon-only" aria-hidden="true" tabindex="-1"><span class="vector-dropdown-label-text"></span> </label> - <div class=\"vector-dropdown-content\"> + <div class="vector-dropdown-content"> </div> </div> </nav> - <div class=\"vector-sticky-header-context-bar-primary\" aria-hidden=\"true\"></div> + <div class="vector-sticky-header-context-bar-primary" aria-hidden="true"></div> </div> </div> - <div class=\"vector-sticky-header-end\" aria-hidden=\"true\"> + <div class="vector-sticky-header-end" aria-hidden="true"> - <div class=\"vector-sticky-header-icons\"> + <div class="vector-sticky-header-icons"> - <a href=\"#\" class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon\" id=\"ca-talk-sticky-header\" data-event-name=\"talk-sticky-header\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles\"></span> + <a href="#" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon" id="ca-talk-sticky-header" data-event-name="talk-sticky-header" tabindex="-1"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> - <a href=\"#\" class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon\" id=\"ca-history-sticky-header\" data-event-name=\"history-sticky-header\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-history mw-ui-icon-wikimedia-history\"></span> + <a href="#" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon" id="ca-history-sticky-header" data-event-name="history-sticky-header" tabindex="-1"><span class="vector-icon mw-ui-icon-history mw-ui-icon-wikimedia-history"></span> <span></span> </a> - <a href=\"#\" class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon mw-watchlink\" id=\"ca-watchstar-sticky-header\" data-event-name=\"watch-sticky-header\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-star mw-ui-icon-wikimedia-star\"></span> + <a href="#" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon mw-watchlink" id="ca-watchstar-sticky-header" data-event-name="watch-sticky-header" tabindex="-1"><span class="vector-icon mw-ui-icon-star mw-ui-icon-wikimedia-star"></span> <span></span> </a> - <a href=\"#\" class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon\" id=\"ca-ve-edit-sticky-header\" data-event-name=\"ve-edit-sticky-header\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-edit mw-ui-icon-wikimedia-edit\"></span> + <a href="#" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon" id="ca-ve-edit-sticky-header" data-event-name="ve-edit-sticky-header" tabindex="-1"><span class="vector-icon mw-ui-icon-edit mw-ui-icon-wikimedia-edit"></span> <span></span> </a> - <a href=\"#\" class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon\" id=\"ca-edit-sticky-header\" data-event-name=\"wikitext-edit-sticky-header\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-wikiText mw-ui-icon-wikimedia-wikiText\"></span> + <a href="#" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon" id="ca-edit-sticky-header" data-event-name="wikitext-edit-sticky-header" tabindex="-1"><span class="vector-icon mw-ui-icon-wikiText mw-ui-icon-wikimedia-wikiText"></span> <span></span> </a> - <a href=\"#\" class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon\" id=\"ca-viewsource-sticky-header\" data-event-name=\"editLock\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-star mw-ui-icon-wikimedia-star\"></span> + <a href="#" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon" id="ca-viewsource-sticky-header" data-event-name="editLock" tabindex="-1"><span class="vector-icon mw-ui-icon-star mw-ui-icon-wikimedia-star"></span> <span></span> </a> </div> - <div class=\"vector-sticky-header-buttons\"> + <div class="vector-sticky-header-buttons"> - <button class=\"cdx-button cdx-button--weight-quiet mw-interlanguage-selector\" id=\"p-lang-btn-sticky-header\" data-event-name=\"ui.dropdown-p-lang-btn-sticky-header\" tabindex=\"-1\"><span>0 languages</span> + <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" data-event-name="ui.dropdown-p-lang-btn-sticky-header" tabindex="-1"><span>0 languages</span> </button> </div> - <div class=\"vector-sticky-header-icon-end\"> + <div class="vector-sticky-header-icon-end"> - <div class=\"vector-user-links\"> + <div class="vector-user-links"> </div> </div> </div> </div> " 135 | 136 | test( 'Sticky header renders', () => { > 137 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 138 | } ); 139 | 140 | describe( 'sticky header', () => { at Object.<anonymous> (tests/jest/stickyHeader.test.js:137:36) › 1 snapshot failed. PASS tests/jest/skins.vector.js/disableNightModeIfGadget.test.js PASS tests/jest/restSearchClient.test.js PASS tests/jest/skins.vector.legacy.js/portlets.test.js PASS tests/jest/popupNotification.test.js PASS tests/jest/skins.vector.js/portlets.test.js FAIL tests/jest/skins.vector.js/tables.test.js ● tables › wraps table with div expect(received).toMatchSnapshot() Snapshot name: `tables wraps table with div 1` - Snapshot - 2 + Received + 2 " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> - <div class=\"noresize\"><table class=\"wikitable\"> + <div class="noresize"><table class="wikitable"> <tbody><tr><th>table table table</th></tr></tbody> </table></div> </div> " 12 | tables(); 13 | > 14 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 15 | } ); 16 | 17 | test( 'wraps multiple table with div', () => { at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:14:37) ● tables › wraps multiple table with div expect(received).toMatchSnapshot() Snapshot name: `tables wraps multiple table with div 1` - Snapshot - 5 + Received + 5 " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> - <div class=\"noresize\"><table class=\"wikitable\"> + <div class="noresize"><table class="wikitable"> <tbody><tr><th>table table table</th></tr></tbody> </table></div> - <div class=\"noresize\"><table class=\"wikitable\"> + <div class="noresize"><table class="wikitable"> - </table></div><div class=\"noresize\"><table class=\"wikitable\"> + </table></div><div class="noresize"><table class="wikitable"> <tbody><tr><th>table table table</th></tr></tbody> </table></div> - <div class=\"noresize\"><table class=\"wikitable\"> + <div class="noresize"><table class="wikitable"> <tbody><tr><th>table table table</th></tr></tbody> </table></div> </div> " 32 | tables(); 33 | > 34 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 35 | } ); 36 | 37 | test( 'doesnt wrap nested tables', () => { at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:34:37) ● tables › doesnt wrap nested tables expect(received).toMatchSnapshot() Snapshot name: `tables doesnt wrap nested tables 1` - Snapshot - 3 + Received + 3 " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> - <div class=\"noresize\"><table class=\"wikitable\"> + <div class="noresize"><table class="wikitable"> <tbody> <tr><th>table table table</th></tr> - <tr><td><table class=\"wikitable\"><tbody><tr><th>table table table</th></tr></tbody></table></td><td></td></tr> + <tr><td><table class="wikitable"><tbody><tr><th>table table table</th></tr></tbody></table></td><td></td></tr> </tbody> </table></div> </div> " 48 | tables(); 49 | > 50 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 51 | } ); 52 | 53 | test( 'doesnt wrap tables that are not wikitables', () => { at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:50:37) ● tables › doesnt wrap tables that are not wikitables expect(received).toMatchSnapshot() Snapshot name: `tables doesnt wrap tables that are not wikitables 1` - Snapshot - 1 + Received + 1 @@ -1,7 +1,7 @@ " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> <table> <tbody> <tr><th>table table table</th></tr> <tr><td><table><tbody><tr><th>table table table</th></tr></tbody></table></td><td></td></tr> </tbody> 64 | tables(); 65 | > 66 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 67 | } ); 68 | 69 | test( 'doesnt wrap tables that already have noresize', () => { at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:66:37) ● tables › doesnt wrap tables that already have noresize expect(received).toMatchSnapshot() Snapshot name: `tables doesnt wrap tables that already have noresize 1` - Snapshot - 3 + Received + 3 @@ -1,9 +1,9 @@ " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> - <div class=\"noresize\"> + <div class="noresize"> - <table class=\"wikitable\"> + <table class="wikitable"> <tbody> <tr><th>table table table</th></tr> </tbody> </table> </div> 81 | tables(); 82 | > 83 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 84 | } ); 85 | 86 | test( 'doesnt wrap tables that are already wrapped', () => { at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:83:37) ● tables › doesnt wrap tables that are already wrapped expect(received).toMatchSnapshot() Snapshot name: `tables doesnt wrap tables that are already wrapped 1` - Snapshot - 2 + Received + 2 @@ -1,9 +1,9 @@ " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> <div> - <table class=\"wikitable\"> + <table class="wikitable"> <tbody> <tr><th>table table table</th></tr> </tbody> </table> </div> 98 | tables(); 99 | > 100 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 101 | } ); 102 | 103 | test( 'doesnt wrap floated tables', () => { at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:100:37) ● tables › doesnt wrap floated tables expect(received).toMatchSnapshot() Snapshot name: `tables doesnt wrap floated tables 1` - Snapshot - 2 + Received + 2 @@ -1,8 +1,8 @@ " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> - <table class=\"wikitable\" style=\"float:right\"> + <table class="wikitable" style="float:right"> <tbody> <tr><th>table table table</th></tr> </tbody> </table> <div> 113 | tables(); 114 | > 115 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 116 | } ); 117 | } ); 118 | at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:115:37) › 7 snapshots failed. PASS tests/jest/fetch.test.js PASS tests/jest/instrumentation.test.js FAIL tests/jest/skins.vector.clientPreferences.test.js ● clientPreferences › render font size expect(received).toMatchSnapshot() Snapshot name: `clientPreferences render font size 1` - Snapshot - 5 + Received + 5 "<div> - <div class=\"vector-menu-heading\">Width</div> + <div class="vector-menu-heading">Width</div> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"></ul> + <ul class="vector-menu-content-list"></ul> - <span class=\"skin-client-pref-exclusion-notice\">msg:vector-feature-custom-font-size-exclusion-notice</span></div> + <span class="skin-client-pref-exclusion-notice">msg:vector-feature-custom-font-size-exclusion-notice</span></div> - <li><div class=\"\"><form><div class=\"cdx-radio\"><input name=\"skin-client-pref-vector-feature-custom-font-size-group\" id=\"skin-client-pref-vector-feature-custom-font-size-value-0\" type=\"radio\" value=\"0\" data-event-name=\"skin-client-pref-vector-feature-custom-font-size-value-0\" class=\"cdx-radio__input\"><span class=\"cdx-radio__icon\"></span><label for=\"skin-client-pref-vector-feature-custom-font-size-value-0\" class=\"cdx-radio__label\">vector-feature-custom-font-size-0-label</label></div><div class=\"cdx-radio\"><input name=\"skin-client-pref-vector-feature-custom-font-size-group\" id=\"skin-client-pref-vector-feature-custom-font-size-value-1\" type=\"radio\" value=\"1\" data-event-name=\"skin-client-pref-vector-feature-custom-font-size-value-1\" class=\"cdx-radio__input\"><span class=\"cdx-radio__icon\"></span><label for=\"skin-client-pref-vector-feature-custom-font-size-value-1\" class=\"cdx-radio__label\">vector-feature-custom-font-size-1-label</label></div><div class=\"cdx-radio\"><input name=\"skin-client-pref-vector-feature-custom-font-size-group\" id=\"skin-client-pref-vector-feature-custom-font-size-value-2\" type=\"radio\" value=\"2\" data-event-name=\"skin-client-pref-vector-feature-custom-font-size-value-2\" class=\"cdx-radio__input\"><span class=\"cdx-radio__icon\"></span><label for=\"skin-client-pref-vector-feature-custom-font-size-value-2\" class=\"cdx-radio__label\">vector-feature-custom-font-size-2-label</label></div></form></div></li></div>" + <li><div class=""><form><div class="cdx-radio"><input name="skin-client-pref-vector-feature-custom-font-size-group" id="skin-client-pref-vector-feature-custom-font-size-value-0" type="radio" value="0" data-event-name="skin-client-pref-vector-feature-custom-font-size-value-0" class="cdx-radio__input"><span class="cdx-radio__icon"></span><label for="skin-client-pref-vector-feature-custom-font-size-value-0" class="cdx-radio__label">vector-feature-custom-font-size-0-label</label></div><div class="cdx-radio"><input name="skin-client-pref-vector-feature-custom-font-size-group" id="skin-client-pref-vector-feature-custom-font-size-value-1" type="radio" value="1" data-event-name="skin-client-pref-vector-feature-custom-font-size-value-1" class="cdx-radio__input"><span class="cdx-radio__icon"></span><label for="skin-client-pref-vector-feature-custom-font-size-value-1" class="cdx-radio__label">vector-feature-custom-font-size-1-label</label></div><div class="cdx-radio"><input name="skin-client-pref-vector-feature-custom-font-size-group" id="skin-client-pref-vector-feature-custom-font-size-value-2" type="radio" value="2" data-event-name="skin-client-pref-vector-feature-custom-font-size-value-2" class="cdx-radio__input"><span class="cdx-radio__icon"></span><label for="skin-client-pref-vector-feature-custom-font-size-value-2" class="cdx-radio__label">vector-feature-custom-font-size-2-label</label></div></form></div></li></div>" 45 | } 46 | } ).then( () => { > 47 | expect( cp.innerHTML ).toMatchSnapshot(); | ^ 48 | } ); 49 | } ); 50 | at tests/jest/skins.vector.clientPreferences.test.js:47:27 ● clientPreferences › doesnt render exclusion notice if the msg key doesnt exist expect(received).toMatchSnapshot() Snapshot name: `clientPreferences doesnt render exclusion notice if the msg key doesnt exist 1` - Snapshot - 4 + Received + 4 "<div> - <div class=\"vector-menu-heading\">Width</div> + <div class="vector-menu-heading">Width</div> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"></ul> + <ul class="vector-menu-content-list"></ul> </div> - <li><div class=\"\"><form><div class=\"cdx-radio\"><input name=\"skin-client-pref-vector-feature-limited-width-group\" id=\"skin-client-pref-vector-feature-limited-width-value-1\" type=\"radio\" value=\"1\" data-event-name=\"skin-client-pref-vector-feature-limited-width-value-1\" class=\"cdx-radio__input\"><span class=\"cdx-radio__icon\"></span><label for=\"skin-client-pref-vector-feature-limited-width-value-1\" class=\"cdx-radio__label\">vector-feature-limited-width-1-label</label></div><div class=\"cdx-radio\"><input name=\"skin-client-pref-vector-feature-limited-width-group\" id=\"skin-client-pref-vector-feature-limited-width-value-0\" type=\"radio\" value=\"0\" data-event-name=\"skin-client-pref-vector-feature-limited-width-value-0\" class=\"cdx-radio__input\"><span class=\"cdx-radio__icon\"></span><label for=\"skin-client-pref-vector-feature-limited-width-value-0\" class=\"cdx-radio__label\">vector-feature-limited-width-0-label</label></div></form></div></li></div>" + <li><div class=""><form><div class="cdx-radio"><input name="skin-client-pref-vector-feature-limited-width-group" id="skin-client-pref-vector-feature-limited-width-value-1" type="radio" value="1" data-event-name="skin-client-pref-vector-feature-limited-width-value-1" class="cdx-radio__input"><span class="cdx-radio__icon"></span><label for="skin-client-pref-vector-feature-limited-width-value-1" class="cdx-radio__label">vector-feature-limited-width-1-label</label></div><div class="cdx-radio"><input name="skin-client-pref-vector-feature-limited-width-group" id="skin-client-pref-vector-feature-limited-width-value-0" type="radio" value="0" data-event-name="skin-client-pref-vector-feature-limited-width-value-0" class="cdx-radio__input"><span class="cdx-radio__icon"></span><label for="skin-client-pref-vector-feature-limited-width-value-0" class="cdx-radio__label">vector-feature-limited-width-0-label</label></div></form></div></li></div>" 61 | } 62 | } ).then( () => { > 63 | expect( cp.innerHTML ).toMatchSnapshot(); | ^ 64 | } ); 65 | } ); 66 | at tests/jest/skins.vector.clientPreferences.test.js:63:27 ● clientPreferences › render toggle expect(received).toMatchSnapshot() Snapshot name: `clientPreferences render toggle 1` - Snapshot - 5 + Received + 5 "<div> - <div class=\"vector-menu-heading\">Width</div> + <div class="vector-menu-heading">Width</div> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"></ul> + <ul class="vector-menu-content-list"></ul> - <span class=\"skin-client-pref-exclusion-notice\">msg:expandAll-exclusion-notice</span></div> + <span class="skin-client-pref-exclusion-notice">msg:expandAll-exclusion-notice</span></div> - <li><div class=\"\"><form><span class=\"cdx-toggle-switch\"><input name=\"skin-client-pref-expandAll-group\" id=\"skin-client-pref-expandAll-value-1\" type=\"checkbox\" data-event-name=\"skin-client-pref-expandAll-value-1\" class=\"cdx-toggle-switch__input\"><span class=\"cdx-toggle-switch__switch\"><span class=\"cdx-toggle-switch__switch__grip\"></span></span><label class=\"cdx-toggle-switch__label\">msg:expandAll-name</label></span></form></div></li></div>" + <li><div class=""><form><span class="cdx-toggle-switch"><input name="skin-client-pref-expandAll-group" id="skin-client-pref-expandAll-value-1" type="checkbox" data-event-name="skin-client-pref-expandAll-value-1" class="cdx-toggle-switch__input"><span class="cdx-toggle-switch__switch"><span class="cdx-toggle-switch__switch__grip"></span></span><label class="cdx-toggle-switch__label">msg:expandAll-name</label></span></form></div></li></div>" 74 | } 75 | } ).then( () => { > 76 | expect( cp.innerHTML ).toMatchSnapshot(); | ^ 77 | } ); 78 | } ); 79 | } ); at tests/jest/skins.vector.clientPreferences.test.js:76:27 › 3 snapshots failed. FAIL tests/jest/skins.vector.js/menuTabs.test.js ● menuTabs › adds vector-tab-noicon class to li element when part of tabs expect(received).toMatchSnapshot() Snapshot name: `menuTabs adds vector-tab-noicon class to li element when part of tabs 1` - Snapshot - 5 + Received + 5 @@ -1,11 +1,11 @@ " - <div id=\"p-views\" class=\"vector-menu mw-portlet mw-portlet-views vector-menu-tabs\"> + <div id="p-views" class="vector-menu mw-portlet mw-portlet-views vector-menu-tabs"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li class=\"mw-list-item mw-list-item-js vector-tab-noicon\" id=\"test-id\"> + <li class="mw-list-item mw-list-item-js vector-tab-noicon" id="test-id"> - <a href=\"#test-href\"> + <a href="#test-href"> <span> test link content </span> </a> </li> 44 | mw.hook( 'util' ).fire( menuItem, { id: 'test-id' } ); 45 | > 46 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 47 | } ); 48 | 49 | test( 'does not add vector-tab-noicon class to li element when not part of tabs', () => { at Object.<anonymous> (tests/jest/skins.vector.js/menuTabs.test.js:46:37) ● menuTabs › does not add vector-tab-noicon class to li element when not part of tabs expect(received).toMatchSnapshot() Snapshot name: `menuTabs does not add vector-tab-noicon class to li element when not part of tabs 1` - Snapshot - 5 + Received + 5 @@ -1,11 +1,11 @@ " - <div id=\"p-variants\" class=\"vector-menu mw-portlet mw-portlet-variants\"> + <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li class=\"mw-list-item mw-list-item-js\" id=\"test-id\"> + <li class="mw-list-item mw-list-item-js" id="test-id"> - <a href=\"#test-href\"> + <a href="#test-href"> <span> test link content </span> </a> </li> 67 | mw.hook( 'util' ).fire( menuItem, { id: 'test-id' } ); 68 | > 69 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 70 | } ); 71 | } ); 72 | at Object.<anonymous> (tests/jest/skins.vector.js/menuTabs.test.js:69:37) › 2 snapshots failed. PASS tests/jest/urlGenerator.test.js PASS tests/jest/skins.vector.es6/features.test.js PASS tests/jest/deferUntilFrame.test.js FAIL tests/jest/userLinks.test.js ● UserLinks renders expect(received).toMatchSnapshot() Snapshot name: `UserLinks renders 1` - Snapshot - 41 + Received + 41 @@ -1,83 +1,83 @@ - "<nav class=\"vector-user-links\" aria-label=\"\"> + "<nav class="vector-user-links" aria-label=""> - <div class=\"vector-user-links-main\"> + <div class="vector-user-links-main"> - <div id=\"p-personal-preferences\" class=\"vector-menu\"> + <div id="p-personal-preferences" class="vector-menu"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li id=\"ca-uls\" class=\"user-links-collapsible-item mw-list-item active\"><a href=\"#\" class=\"uls-trigger cdx-button cdx-button--weight-quiet\"><span class=\"vector-icon mw-ui-icon-wikimedia-language\"></span> <span>English</span></a></li> + <li id="ca-uls" class="user-links-collapsible-item mw-list-item active"><a href="#" class="uls-trigger cdx-button cdx-button--weight-quiet"><span class="vector-icon mw-ui-icon-wikimedia-language"></span> <span>English</span></a></li> </ul> </div> </div> - <div id=\"p-personal-user-page\" class=\"vector-menu\"> + <div id="p-personal-user-page" class="vector-menu"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li id=\"pt-userpage-2\" class=\"user-links-collapsible-item mw-list-item\"><a href=\"/wiki/User:Admin\" class=\"cdx-button cdx-button--weight-quiet\" title=\"Your user page [⌃⌥.]\" accesskey=\".\"><span>Admin</span></a></li> + <li id="pt-userpage-2" class="user-links-collapsible-item mw-list-item"><a href="/wiki/User:Admin" class="cdx-button cdx-button--weight-quiet" title="Your user page [⌃⌥.]" accesskey="."><span>Admin</span></a></li> </ul> </div> </div> - <nav class=\"vector-appearance-landmark\" aria-label=\"\"> + <nav class="vector-appearance-landmark" aria-label=""> </nav> - <div id=\"p-personal-notifications\" class=\"vector-menu\"> + <div id="p-personal-notifications" class="vector-menu"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li id=\"pt-notifications-alert\" class=\"mw-list-item\"><a href=\"/wiki/Special:Notifications\" class=\"mw-echo-notifications-badge mw-echo-notification-badge-nojs oo-ui-icon-bell mw-echo-notifications-badge-all-read\" data-counter-num=\"0\" data-counter-text=\"0\" title=\"Your alerts\"><span>Alerts (0)</span></a></li> + <li id="pt-notifications-alert" class="mw-list-item"><a href="/wiki/Special:Notifications" class="mw-echo-notifications-badge mw-echo-notification-badge-nojs oo-ui-icon-bell mw-echo-notifications-badge-all-read" data-counter-num="0" data-counter-text="0" title="Your alerts"><span>Alerts (0)</span></a></li> - <li id=\"pt-notifications-notice\" class=\"mw-list-item\"><a href=\"/wiki/Special:Notifications\" class=\"mw-echo-notifications-badge mw-echo-notification-badge-nojs oo-ui-icon-tray mw-echo-notifications-badge-all-read\" data-counter-num=\"0\" data-counter-text=\"0\" title=\"Your notices\"><span>Notices (0)</span></a></li> + <li id="pt-notifications-notice" class="mw-list-item"><a href="/wiki/Special:Notifications" class="mw-echo-notifications-badge mw-echo-notification-badge-nojs oo-ui-icon-tray mw-echo-notifications-badge-all-read" data-counter-num="0" data-counter-text="0" title="Your notices"><span>Notices (0)</span></a></li> </ul> </div> </div> - <div id=\"p-personal-more\" class=\"vector-menu mw-portlet mw-portlet-vector-user-menu-overflow vector-user-menu-overflow\"> + <div id="p-personal-more" class="vector-menu mw-portlet mw-portlet-vector-user-menu-overflow vector-user-menu-overflow"> - <div class=\"vector-menu-heading\"> + <div class="vector-menu-heading"> Toggle sidebar </div> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li id=\"pt-watchlist-2\" class=\"user-links-collapsible-item mw-list-item\"><a href=\"/wiki/Special:Watchlist\" class=\"cdx-button cdx-button--weight-quiet vector-icon cdx-button--icon-only mw-ui-icon-watchlist mw-ui-icon-wikimedia-watchlist\" title=\"A list of pages you are monitoring for changes [⌃⌥l]\" accesskey=\"l\"><span>Watchlist</span></a></li> + <li id="pt-watchlist-2" class="user-links-collapsible-item mw-list-item"><a href="/wiki/Special:Watchlist" class="cdx-button cdx-button--weight-quiet vector-icon cdx-button--icon-only mw-ui-icon-watchlist mw-ui-icon-wikimedia-watchlist" title="A list of pages you are monitoring for changes [⌃⌥l]" accesskey="l"><span>Watchlist</span></a></li> </ul> </div> </div> </div> - <div id=\"vector-user-links-dropdown\" class=\"vector-dropdown vector-user-menu vector-user-menu-logged-in\"> + <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-user-menu-logged-in"> - <input type=\"checkbox\" id=\"vector-user-links-dropdown-checkbox\" role=\"button\" aria-haspopup=\"true\" data-event-name=\"ui.dropdown-vector-user-links-dropdown\" class=\"vector-dropdown-checkbox\" aria-label=\"Personal tools\"> + <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox" aria-label="Personal tools"> - <label id=\"vector-user-links-dropdown-label\" for=\"vector-user-links-dropdown-checkbox\" class=\"vector-dropdown-label\" aria-hidden=\"true\"><span class=\"vector-dropdown-label-text\">Personal tools</span> + <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label" aria-hidden="true"><span class="vector-dropdown-label-text">Personal tools</span> </label> - <div class=\"vector-dropdown-content\"> + <div class="vector-dropdown-content"> - <div id=\"p-personal\" class=\"vector-menu mw-portlet mw-portlet-personal\"> + <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li id=\"pt-userpage\" class=\"user-links-collapsible-item mw-list-item\"><a href=\"/wiki/User:Admin\" title=\"Your user page [.]\" accesskey=\".\"><span class=\"vector-icon mw-ui-icon-userAvatar mw-ui-icon-wikimedia-userAvatar\"></span> <span>Admin</span></a></li> + <li id="pt-userpage" class="user-links-collapsible-item mw-list-item"><a href="/wiki/User:Admin" title="Your user page [.]" accesskey="."><span class="vector-icon mw-ui-icon-userAvatar mw-ui-icon-wikimedia-userAvatar"></span> <span>Admin</span></a></li> - <li id=\"pt-mytalk\" class=\"mw-list-item\"><a href=\"/wiki/User_talk:Admin\" title=\"Your talk page [n]\" accesskey=\"n\"><span class=\"vector-icon mw-ui-icon-userTalk mw-ui-icon-wikimedia-userTalk\"></span> <span>Talk</span></a></li> + <li id="pt-mytalk" class="mw-list-item"><a href="/wiki/User_talk:Admin" title="Your talk page [n]" accesskey="n"><span class="vector-icon mw-ui-icon-userTalk mw-ui-icon-wikimedia-userTalk"></span> <span>Talk</span></a></li> - <li id=\"pt-sandbox\" class=\"new mw-list-item\"><a href=\"/w/index.php?title=User:Admin/sandbox&action=edit&redlink=1\" title=\"Your sandbox (page does not exist)\"><span class=\"vector-icon mw-ui-icon-sandbox mw-ui-icon-wikimedia-sandbox\"></span> <span>Sandbox</span></a></li> + <li id="pt-sandbox" class="new mw-list-item"><a href="/w/index.php?title=User:Admin/sandbox&action=edit&redlink=1" title="Your sandbox (page does not exist)"><span class="vector-icon mw-ui-icon-sandbox mw-ui-icon-wikimedia-sandbox"></span> <span>Sandbox</span></a></li> - <li id=\"pt-preferences\" class=\"mw-list-item\"><a href=\"/wiki/Special:Preferences\" title=\"Your preferences\"><span class=\"vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance\"></span> <span>Preferences</span></a></li> + <li id="pt-preferences" class="mw-list-item"><a href="/wiki/Special:Preferences" title="Your preferences"><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span>Preferences</span></a></li> - <li id=\"pt-betafeatures\" class=\"mw-list-item\"><a href=\"/wiki/Special:Preferences#mw-prefsection-betafeatures\" title=\"Beta features\"><span class=\"vector-icon mw-ui-icon-labFlask mw-ui-icon-wikimedia-labFlask\"></span> <span>Beta</span></a></li> + <li id="pt-betafeatures" class="mw-list-item"><a href="/wiki/Special:Preferences#mw-prefsection-betafeatures" title="Beta features"><span class="vector-icon mw-ui-icon-labFlask mw-ui-icon-wikimedia-labFlask"></span> <span>Beta</span></a></li> - <li id=\"pt-watchlist\" class=\"user-links-collapsible-item mw-list-item\"><a href=\"/wiki/Special:Watchlist\" title=\"A list of pages you are monitoring for changes [l]\" accesskey=\"l\"><span class=\"vector-icon mw-ui-icon-watchlist mw-ui-icon-wikimedia-watchlist\"></span> <span>Watchlist</span></a></li> + <li id="pt-watchlist" class="user-links-collapsible-item mw-list-item"><a href="/wiki/Special:Watchlist" title="A list of pages you are monitoring for changes [l]" accesskey="l"><span class="vector-icon mw-ui-icon-watchlist mw-ui-icon-wikimedia-watchlist"></span> <span>Watchlist</span></a></li> - <li id=\"pt-uploads\" class=\"mw-list-item\"><a href=\"/w/index.php?title=Special:ListFiles/Admin&ilshowall=1\" title=\"List of files you have uploaded\"><span class=\"vector-icon mw-ui-icon-imageGallery mw-ui-icon-wikimedia-imageGallery\"></span> <span>Uploads</span></a></li> + <li id="pt-uploads" class="mw-list-item"><a href="/w/index.php?title=Special:ListFiles/Admin&ilshowall=1" title="List of files you have uploaded"><span class="vector-icon mw-ui-icon-imageGallery mw-ui-icon-wikimedia-imageGallery"></span> <span>Uploads</span></a></li> - <li id=\"pt-mycontris\" class=\"mw-list-item\"><a href=\"/wiki/Special:Contributions/Admin\" title=\"A list of your contributions [y]\" accesskey=\"y\"><span class=\"vector-icon mw-ui-icon-userContributions mw-ui-icon-wikimedia-userContributions\"></span> <span>Contributions</span></a></li> + <li id="pt-mycontris" class="mw-list-item"><a href="/wiki/Special:Contributions/Admin" title="A list of your contributions [y]" accesskey="y"><span class="vector-icon mw-ui-icon-userContributions mw-ui-icon-wikimedia-userContributions"></span> <span>Contributions</span></a></li> - <li id=\"pt-custom\" class=\"mw-list-item mw-list-item-js\">Gadget added item</li> + <li id="pt-custom" class="mw-list-item mw-list-item-js">Gadget added item</li> </ul> </div> </div> - <div id=\"p-user-menu-logout\" class=\"vector-menu mw-portlet mw-portlet-user-menu-logout\"> + <div id="p-user-menu-logout" class="vector-menu mw-portlet mw-portlet-user-menu-logout"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li id=\"ca-logout\" class=\"mw-list-item\"><a data-mw=\"interface\" href=\"/w/index.php?title=Special:UserLogout&returnto=Main+Page\" title=\"Log out\"><span class=\"vector-icon mw-ui-icon-logOut mw-ui-icon-wikimedia-logOut\"></span> <span>Log out</span></a></li> + <li id="ca-logout" class="mw-list-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogout&returnto=Main+Page" title="Log out"><span class="vector-icon mw-ui-icon-logOut mw-ui-icon-wikimedia-logOut"></span> <span>Log out</span></a></li> </ul> </div> </div> 6 | 7 | test( 'UserLinks renders', () => { > 8 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 9 | } ); 10 | at Object.<anonymous> (tests/jest/userLinks.test.js:8:36) › 1 snapshot failed. PASS tests/jest/App.test.js Jest: "global" coverage threshold for statements (48%) not met: 36.35% Jest: "global" coverage threshold for branches (35%) not met: 28.69% Jest: "global" coverage threshold for lines (48%) not met: 36.46% Jest: "global" coverage threshold for functions (45%) not met: 32.49% Summary of all failing tests FAIL tests/jest/pinnableElement.test.js ● Pinnable header › renders expect(received).toMatchSnapshot() Snapshot name: `Pinnable header renders 1` - Snapshot - 11 + Received + 11 @@ -1,19 +1,19 @@ - "<div id=\"pinned-container\"> + "<div id="pinned-container"> </div> - <div class=\"vector-dropdown\"> + <div class="vector-dropdown"> - <input type=\"checkbox\" id=\"checkbox\" class=\"vector-menu-checkbox\"> + <input type="checkbox" id="checkbox" class="vector-menu-checkbox"> - <label for=\"checkbox\" class=\"vector-menu-heading \"> + <label for="checkbox" class="vector-menu-heading "> - <span class=\"vector-menu-heading-label\">Dropdown</span> + <span class="vector-menu-heading-label">Dropdown</span> </label> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <div id=\"unpinned-container\"> + <div id="unpinned-container"> - <div id=\"pinnable-element\"><div class=\"vector-pinnable-header pinnable-element-pinnable-header vector-pinnable-header-unpinned\" data-feature-name=\"pinned\" data-pinnable-element-id=\"pinnable-element\"> + <div id="pinnable-element"><div class="vector-pinnable-header pinnable-element-pinnable-header vector-pinnable-header-unpinned" data-feature-name="pinned" data-pinnable-element-id="pinnable-element"> - <div class=\"vector-pinnable-header-label\">simple pinnable element</div> + <div class="vector-pinnable-header-label">simple pinnable element</div> - <button class=\"vector-pinnable-header-toggle-button vector-pinnable-header-pin-button\" data-event-name=\"pinnable-header.pinnable-element.pin\">pin</button> + <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.pinnable-element.pin">pin</button> - <button class=\"vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button\" data-event-name=\"pinnable-header.pinnable-element.unpin\">unpin</button> + <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.pinnable-element.unpin">unpin</button> </div> </div> </div> </div> </div> 71 | test( 'renders', () => { 72 | initializeHTML( simpleData ); > 73 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 74 | } ); 75 | 76 | test( 'updates pinnable header classes when toggle is pressed', () => { at Object.<anonymous> (tests/jest/pinnableElement.test.js:73:37) FAIL tests/jest/tableOfContents.test.js ● Test suite failed to run ● Invalid return value: `process()` or/and `processAsync()` method of code transformer found at "/src/repo/node_modules/mustache-jest/index.js" should return an object or a Promise resolving to an object. The object must have `code` property with a string of processed code. This error may be caused by a breaking change in Jest 28: https://jestjs.io/docs/28.x/upgrading-to-jest28#transformer Code Transformation Documentation: https://jestjs.io/docs/code-transformation 4 | * TableOfContents Mustache templates 5 | */ > 6 | const templateTocContents = require( /** @type {string} */ ( './templates/TableOfContents__list.mustache' ) ); | ^ 7 | const templateTocLine = require( /** @type {string} */ ( './templates/TableOfContents__line.mustache' ) ); 8 | /** 9 | * TableOfContents Config object for filling mustache templates at ScriptTransformer._buildTransformResult (node_modules/@jest/transform/build/ScriptTransformer.js:442:15) at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:554:17) at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:674:40) at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:726:19) at Object.require (resources/skins.vector.js/tableOfContents.js:6:29) at Object.<anonymous> (tests/jest/tableOfContents.test.js:9:29) FAIL tests/jest/skins.vector.js/dropdownMenus.test.js ● addPortletLinkHandler › Adds a span with icon class to menus expect(received).toMatchSnapshot() Snapshot name: `addPortletLinkHandler Adds a span with icon class to menus 1` - Snapshot - 3 + Received + 3 @@ -1,9 +1,9 @@ " - <ul class=\"vector-menu\"> + <ul class="vector-menu"> - <li class=\"mw-list-item mw-list-item-js\" id=\"test-id\"> + <li class="mw-list-item mw-list-item-js" id="test-id"> - <a href=\"#test-href\"> + <a href="#test-href"> <span> test link content </span> </a> </li> 53 | const mockPortletItem = document.getElementById( 'test-id' ); 54 | addPortletLinkHandler( mockPortletItem, { id: 'test-id' } ); > 55 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 56 | } ); 57 | 58 | test( 'Does not add an icon when noicon class is present', () => { at Object.<anonymous> (tests/jest/skins.vector.js/dropdownMenus.test.js:55:37) ● addPortletLinkHandler › Does not add an icon when noicon class is present expect(received).toMatchSnapshot() Snapshot name: `addPortletLinkHandler Does not add an icon when noicon class is present 1` - Snapshot - 3 + Received + 3 @@ -1,9 +1,9 @@ " - <ul class=\"vector-menu\"> + <ul class="vector-menu"> - <li class=\"mw-list-item mw-list-item-js\" id=\"test-id\"> + <li class="mw-list-item mw-list-item-js" id="test-id"> - <a href=\"#test-href\"> + <a href="#test-href"> <span> test link content </span> </a> </li> 72 | const mockPortletItem = document.getElementById( 'test-id' ); 73 | addPortletLinkHandler( mockPortletItem, { id: 'test-id' } ); > 74 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 75 | } ); 76 | 77 | test( 'JS portlet should be moved to more menu (#p-cactions) at narrow widths', () => { at Object.<anonymous> (tests/jest/skins.vector.js/dropdownMenus.test.js:74:37) FAIL tests/jest/skins.vector.es6/main.test.js ● Test suite failed to run ● Invalid return value: `process()` or/and `processAsync()` method of code transformer found at "/src/repo/node_modules/mustache-jest/index.js" should return an object or a Promise resolving to an object. The object must have `code` property with a string of processed code. This error may be caused by a breaking change in Jest 28: https://jestjs.io/docs/28.x/upgrading-to-jest28#transformer Code Transformation Documentation: https://jestjs.io/docs/code-transformation 4 | * TableOfContents Mustache templates 5 | */ > 6 | const templateTocContents = require( /** @type {string} */ ( './templates/TableOfContents__list.mustache' ) ); | ^ 7 | const templateTocLine = require( /** @type {string} */ ( './templates/TableOfContents__line.mustache' ) ); 8 | /** 9 | * TableOfContents Config object for filling mustache templates at ScriptTransformer._buildTransformResult (node_modules/@jest/transform/build/ScriptTransformer.js:442:15) at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:554:17) at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:674:40) at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:726:19) at Object.require (resources/skins.vector.js/tableOfContents.js:6:29) at Object.require (resources/skins.vector.js/setupIntersectionObservers.js:7:24) at Object.<anonymous> (tests/jest/skins.vector.es6/main.test.js:8:18) FAIL tests/jest/stickyHeader.test.js ● Sticky header renders expect(received).toMatchSnapshot() Snapshot name: `Sticky header renders 1` - Snapshot - 23 + Received + 23 - "<div id=\"vector-sticky-header\" class=\"vector-sticky-header\"> + "<div id="vector-sticky-header" class="vector-sticky-header"> - <div class=\"vector-sticky-header-start\"> + <div class="vector-sticky-header-start"> - <div class=\"vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right\" aria-hidden=\"true\"> + <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> - <button class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle\" data-event-name=\"ui.vector-sticky-search-form.icon\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search\"></span> + <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" data-event-name="ui.vector-sticky-search-form.icon" tabindex="-1"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>search</span> </button> </div> - <div> </div> <div class=\"vector-sticky-header-context-bar\"> + <div> </div> <div class="vector-sticky-header-context-bar"> - <nav aria-label=\"\" class=\"vector-toc-landmark\"> + <nav aria-label="" class="vector-toc-landmark"> - <div id=\"vector-sticky-header-toc\" class=\"vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc\"> + <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc"> - <input type=\"checkbox\" id=\"vector-sticky-header-toc-checkbox\" role=\"button\" aria-haspopup=\"true\" data-event-name=\"ui.dropdown-vector-sticky-header-toc\" class=\"vector-dropdown-checkbox\" aria-label=\"\" tabindex=\"-1\"> + <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox" aria-label="" tabindex="-1"> - <label id=\"vector-sticky-header-toc-label\" for=\"vector-sticky-header-toc-checkbox\" class=\"vector-dropdown-label cdx-button cdx-button--weight-quiet cdx-button--icon-only\" aria-hidden=\"true\" tabindex=\"-1\"><span class=\"vector-dropdown-label-text\"></span> + <label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--weight-quiet cdx-button--icon-only" aria-hidden="true" tabindex="-1"><span class="vector-dropdown-label-text"></span> </label> - <div class=\"vector-dropdown-content\"> + <div class="vector-dropdown-content"> </div> </div> </nav> - <div class=\"vector-sticky-header-context-bar-primary\" aria-hidden=\"true\"></div> + <div class="vector-sticky-header-context-bar-primary" aria-hidden="true"></div> </div> </div> - <div class=\"vector-sticky-header-end\" aria-hidden=\"true\"> + <div class="vector-sticky-header-end" aria-hidden="true"> - <div class=\"vector-sticky-header-icons\"> + <div class="vector-sticky-header-icons"> - <a href=\"#\" class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon\" id=\"ca-talk-sticky-header\" data-event-name=\"talk-sticky-header\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles\"></span> + <a href="#" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon" id="ca-talk-sticky-header" data-event-name="talk-sticky-header" tabindex="-1"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> - <a href=\"#\" class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon\" id=\"ca-history-sticky-header\" data-event-name=\"history-sticky-header\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-history mw-ui-icon-wikimedia-history\"></span> + <a href="#" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon" id="ca-history-sticky-header" data-event-name="history-sticky-header" tabindex="-1"><span class="vector-icon mw-ui-icon-history mw-ui-icon-wikimedia-history"></span> <span></span> </a> - <a href=\"#\" class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon mw-watchlink\" id=\"ca-watchstar-sticky-header\" data-event-name=\"watch-sticky-header\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-star mw-ui-icon-wikimedia-star\"></span> + <a href="#" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon mw-watchlink" id="ca-watchstar-sticky-header" data-event-name="watch-sticky-header" tabindex="-1"><span class="vector-icon mw-ui-icon-star mw-ui-icon-wikimedia-star"></span> <span></span> </a> - <a href=\"#\" class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon\" id=\"ca-ve-edit-sticky-header\" data-event-name=\"ve-edit-sticky-header\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-edit mw-ui-icon-wikimedia-edit\"></span> + <a href="#" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon" id="ca-ve-edit-sticky-header" data-event-name="ve-edit-sticky-header" tabindex="-1"><span class="vector-icon mw-ui-icon-edit mw-ui-icon-wikimedia-edit"></span> <span></span> </a> - <a href=\"#\" class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon\" id=\"ca-edit-sticky-header\" data-event-name=\"wikitext-edit-sticky-header\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-wikiText mw-ui-icon-wikimedia-wikiText\"></span> + <a href="#" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon" id="ca-edit-sticky-header" data-event-name="wikitext-edit-sticky-header" tabindex="-1"><span class="vector-icon mw-ui-icon-wikiText mw-ui-icon-wikimedia-wikiText"></span> <span></span> </a> - <a href=\"#\" class=\"cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon\" id=\"ca-viewsource-sticky-header\" data-event-name=\"editLock\" tabindex=\"-1\"><span class=\"vector-icon mw-ui-icon-star mw-ui-icon-wikimedia-star\"></span> + <a href="#" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only sticky-header-icon" id="ca-viewsource-sticky-header" data-event-name="editLock" tabindex="-1"><span class="vector-icon mw-ui-icon-star mw-ui-icon-wikimedia-star"></span> <span></span> </a> </div> - <div class=\"vector-sticky-header-buttons\"> + <div class="vector-sticky-header-buttons"> - <button class=\"cdx-button cdx-button--weight-quiet mw-interlanguage-selector\" id=\"p-lang-btn-sticky-header\" data-event-name=\"ui.dropdown-p-lang-btn-sticky-header\" tabindex=\"-1\"><span>0 languages</span> + <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" data-event-name="ui.dropdown-p-lang-btn-sticky-header" tabindex="-1"><span>0 languages</span> </button> </div> - <div class=\"vector-sticky-header-icon-end\"> + <div class="vector-sticky-header-icon-end"> - <div class=\"vector-user-links\"> + <div class="vector-user-links"> </div> </div> </div> </div> " 135 | 136 | test( 'Sticky header renders', () => { > 137 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 138 | } ); 139 | 140 | describe( 'sticky header', () => { at Object.<anonymous> (tests/jest/stickyHeader.test.js:137:36) FAIL tests/jest/skins.vector.js/tables.test.js ● tables › wraps table with div expect(received).toMatchSnapshot() Snapshot name: `tables wraps table with div 1` - Snapshot - 2 + Received + 2 " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> - <div class=\"noresize\"><table class=\"wikitable\"> + <div class="noresize"><table class="wikitable"> <tbody><tr><th>table table table</th></tr></tbody> </table></div> </div> " 12 | tables(); 13 | > 14 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 15 | } ); 16 | 17 | test( 'wraps multiple table with div', () => { at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:14:37) ● tables › wraps multiple table with div expect(received).toMatchSnapshot() Snapshot name: `tables wraps multiple table with div 1` - Snapshot - 5 + Received + 5 " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> - <div class=\"noresize\"><table class=\"wikitable\"> + <div class="noresize"><table class="wikitable"> <tbody><tr><th>table table table</th></tr></tbody> </table></div> - <div class=\"noresize\"><table class=\"wikitable\"> + <div class="noresize"><table class="wikitable"> - </table></div><div class=\"noresize\"><table class=\"wikitable\"> + </table></div><div class="noresize"><table class="wikitable"> <tbody><tr><th>table table table</th></tr></tbody> </table></div> - <div class=\"noresize\"><table class=\"wikitable\"> + <div class="noresize"><table class="wikitable"> <tbody><tr><th>table table table</th></tr></tbody> </table></div> </div> " 32 | tables(); 33 | > 34 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 35 | } ); 36 | 37 | test( 'doesnt wrap nested tables', () => { at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:34:37) ● tables › doesnt wrap nested tables expect(received).toMatchSnapshot() Snapshot name: `tables doesnt wrap nested tables 1` - Snapshot - 3 + Received + 3 " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> - <div class=\"noresize\"><table class=\"wikitable\"> + <div class="noresize"><table class="wikitable"> <tbody> <tr><th>table table table</th></tr> - <tr><td><table class=\"wikitable\"><tbody><tr><th>table table table</th></tr></tbody></table></td><td></td></tr> + <tr><td><table class="wikitable"><tbody><tr><th>table table table</th></tr></tbody></table></td><td></td></tr> </tbody> </table></div> </div> " 48 | tables(); 49 | > 50 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 51 | } ); 52 | 53 | test( 'doesnt wrap tables that are not wikitables', () => { at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:50:37) ● tables › doesnt wrap tables that are not wikitables expect(received).toMatchSnapshot() Snapshot name: `tables doesnt wrap tables that are not wikitables 1` - Snapshot - 1 + Received + 1 @@ -1,7 +1,7 @@ " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> <table> <tbody> <tr><th>table table table</th></tr> <tr><td><table><tbody><tr><th>table table table</th></tr></tbody></table></td><td></td></tr> </tbody> 64 | tables(); 65 | > 66 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 67 | } ); 68 | 69 | test( 'doesnt wrap tables that already have noresize', () => { at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:66:37) ● tables › doesnt wrap tables that already have noresize expect(received).toMatchSnapshot() Snapshot name: `tables doesnt wrap tables that already have noresize 1` - Snapshot - 3 + Received + 3 @@ -1,9 +1,9 @@ " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> - <div class=\"noresize\"> + <div class="noresize"> - <table class=\"wikitable\"> + <table class="wikitable"> <tbody> <tr><th>table table table</th></tr> </tbody> </table> </div> 81 | tables(); 82 | > 83 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 84 | } ); 85 | 86 | test( 'doesnt wrap tables that are already wrapped', () => { at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:83:37) ● tables › doesnt wrap tables that are already wrapped expect(received).toMatchSnapshot() Snapshot name: `tables doesnt wrap tables that are already wrapped 1` - Snapshot - 2 + Received + 2 @@ -1,9 +1,9 @@ " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> <div> - <table class=\"wikitable\"> + <table class="wikitable"> <tbody> <tr><th>table table table</th></tr> </tbody> </table> </div> 98 | tables(); 99 | > 100 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 101 | } ); 102 | 103 | test( 'doesnt wrap floated tables', () => { at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:100:37) ● tables › doesnt wrap floated tables expect(received).toMatchSnapshot() Snapshot name: `tables doesnt wrap floated tables 1` - Snapshot - 2 + Received + 2 @@ -1,8 +1,8 @@ " - <div class=\"mw-parser-output\"> + <div class="mw-parser-output"> - <table class=\"wikitable\" style=\"float:right\"> + <table class="wikitable" style="float:right"> <tbody> <tr><th>table table table</th></tr> </tbody> </table> <div> 113 | tables(); 114 | > 115 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 116 | } ); 117 | } ); 118 | at Object.<anonymous> (tests/jest/skins.vector.js/tables.test.js:115:37) FAIL tests/jest/skins.vector.clientPreferences.test.js ● clientPreferences › render font size expect(received).toMatchSnapshot() Snapshot name: `clientPreferences render font size 1` - Snapshot - 5 + Received + 5 "<div> - <div class=\"vector-menu-heading\">Width</div> + <div class="vector-menu-heading">Width</div> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"></ul> + <ul class="vector-menu-content-list"></ul> - <span class=\"skin-client-pref-exclusion-notice\">msg:vector-feature-custom-font-size-exclusion-notice</span></div> + <span class="skin-client-pref-exclusion-notice">msg:vector-feature-custom-font-size-exclusion-notice</span></div> - <li><div class=\"\"><form><div class=\"cdx-radio\"><input name=\"skin-client-pref-vector-feature-custom-font-size-group\" id=\"skin-client-pref-vector-feature-custom-font-size-value-0\" type=\"radio\" value=\"0\" data-event-name=\"skin-client-pref-vector-feature-custom-font-size-value-0\" class=\"cdx-radio__input\"><span class=\"cdx-radio__icon\"></span><label for=\"skin-client-pref-vector-feature-custom-font-size-value-0\" class=\"cdx-radio__label\">vector-feature-custom-font-size-0-label</label></div><div class=\"cdx-radio\"><input name=\"skin-client-pref-vector-feature-custom-font-size-group\" id=\"skin-client-pref-vector-feature-custom-font-size-value-1\" type=\"radio\" value=\"1\" data-event-name=\"skin-client-pref-vector-feature-custom-font-size-value-1\" class=\"cdx-radio__input\"><span class=\"cdx-radio__icon\"></span><label for=\"skin-client-pref-vector-feature-custom-font-size-value-1\" class=\"cdx-radio__label\">vector-feature-custom-font-size-1-label</label></div><div class=\"cdx-radio\"><input name=\"skin-client-pref-vector-feature-custom-font-size-group\" id=\"skin-client-pref-vector-feature-custom-font-size-value-2\" type=\"radio\" value=\"2\" data-event-name=\"skin-client-pref-vector-feature-custom-font-size-value-2\" class=\"cdx-radio__input\"><span class=\"cdx-radio__icon\"></span><label for=\"skin-client-pref-vector-feature-custom-font-size-value-2\" class=\"cdx-radio__label\">vector-feature-custom-font-size-2-label</label></div></form></div></li></div>" + <li><div class=""><form><div class="cdx-radio"><input name="skin-client-pref-vector-feature-custom-font-size-group" id="skin-client-pref-vector-feature-custom-font-size-value-0" type="radio" value="0" data-event-name="skin-client-pref-vector-feature-custom-font-size-value-0" class="cdx-radio__input"><span class="cdx-radio__icon"></span><label for="skin-client-pref-vector-feature-custom-font-size-value-0" class="cdx-radio__label">vector-feature-custom-font-size-0-label</label></div><div class="cdx-radio"><input name="skin-client-pref-vector-feature-custom-font-size-group" id="skin-client-pref-vector-feature-custom-font-size-value-1" type="radio" value="1" data-event-name="skin-client-pref-vector-feature-custom-font-size-value-1" class="cdx-radio__input"><span class="cdx-radio__icon"></span><label for="skin-client-pref-vector-feature-custom-font-size-value-1" class="cdx-radio__label">vector-feature-custom-font-size-1-label</label></div><div class="cdx-radio"><input name="skin-client-pref-vector-feature-custom-font-size-group" id="skin-client-pref-vector-feature-custom-font-size-value-2" type="radio" value="2" data-event-name="skin-client-pref-vector-feature-custom-font-size-value-2" class="cdx-radio__input"><span class="cdx-radio__icon"></span><label for="skin-client-pref-vector-feature-custom-font-size-value-2" class="cdx-radio__label">vector-feature-custom-font-size-2-label</label></div></form></div></li></div>" 45 | } 46 | } ).then( () => { > 47 | expect( cp.innerHTML ).toMatchSnapshot(); | ^ 48 | } ); 49 | } ); 50 | at tests/jest/skins.vector.clientPreferences.test.js:47:27 ● clientPreferences › doesnt render exclusion notice if the msg key doesnt exist expect(received).toMatchSnapshot() Snapshot name: `clientPreferences doesnt render exclusion notice if the msg key doesnt exist 1` - Snapshot - 4 + Received + 4 "<div> - <div class=\"vector-menu-heading\">Width</div> + <div class="vector-menu-heading">Width</div> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"></ul> + <ul class="vector-menu-content-list"></ul> </div> - <li><div class=\"\"><form><div class=\"cdx-radio\"><input name=\"skin-client-pref-vector-feature-limited-width-group\" id=\"skin-client-pref-vector-feature-limited-width-value-1\" type=\"radio\" value=\"1\" data-event-name=\"skin-client-pref-vector-feature-limited-width-value-1\" class=\"cdx-radio__input\"><span class=\"cdx-radio__icon\"></span><label for=\"skin-client-pref-vector-feature-limited-width-value-1\" class=\"cdx-radio__label\">vector-feature-limited-width-1-label</label></div><div class=\"cdx-radio\"><input name=\"skin-client-pref-vector-feature-limited-width-group\" id=\"skin-client-pref-vector-feature-limited-width-value-0\" type=\"radio\" value=\"0\" data-event-name=\"skin-client-pref-vector-feature-limited-width-value-0\" class=\"cdx-radio__input\"><span class=\"cdx-radio__icon\"></span><label for=\"skin-client-pref-vector-feature-limited-width-value-0\" class=\"cdx-radio__label\">vector-feature-limited-width-0-label</label></div></form></div></li></div>" + <li><div class=""><form><div class="cdx-radio"><input name="skin-client-pref-vector-feature-limited-width-group" id="skin-client-pref-vector-feature-limited-width-value-1" type="radio" value="1" data-event-name="skin-client-pref-vector-feature-limited-width-value-1" class="cdx-radio__input"><span class="cdx-radio__icon"></span><label for="skin-client-pref-vector-feature-limited-width-value-1" class="cdx-radio__label">vector-feature-limited-width-1-label</label></div><div class="cdx-radio"><input name="skin-client-pref-vector-feature-limited-width-group" id="skin-client-pref-vector-feature-limited-width-value-0" type="radio" value="0" data-event-name="skin-client-pref-vector-feature-limited-width-value-0" class="cdx-radio__input"><span class="cdx-radio__icon"></span><label for="skin-client-pref-vector-feature-limited-width-value-0" class="cdx-radio__label">vector-feature-limited-width-0-label</label></div></form></div></li></div>" 61 | } 62 | } ).then( () => { > 63 | expect( cp.innerHTML ).toMatchSnapshot(); | ^ 64 | } ); 65 | } ); 66 | at tests/jest/skins.vector.clientPreferences.test.js:63:27 ● clientPreferences › render toggle expect(received).toMatchSnapshot() Snapshot name: `clientPreferences render toggle 1` - Snapshot - 5 + Received + 5 "<div> - <div class=\"vector-menu-heading\">Width</div> + <div class="vector-menu-heading">Width</div> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"></ul> + <ul class="vector-menu-content-list"></ul> - <span class=\"skin-client-pref-exclusion-notice\">msg:expandAll-exclusion-notice</span></div> + <span class="skin-client-pref-exclusion-notice">msg:expandAll-exclusion-notice</span></div> - <li><div class=\"\"><form><span class=\"cdx-toggle-switch\"><input name=\"skin-client-pref-expandAll-group\" id=\"skin-client-pref-expandAll-value-1\" type=\"checkbox\" data-event-name=\"skin-client-pref-expandAll-value-1\" class=\"cdx-toggle-switch__input\"><span class=\"cdx-toggle-switch__switch\"><span class=\"cdx-toggle-switch__switch__grip\"></span></span><label class=\"cdx-toggle-switch__label\">msg:expandAll-name</label></span></form></div></li></div>" + <li><div class=""><form><span class="cdx-toggle-switch"><input name="skin-client-pref-expandAll-group" id="skin-client-pref-expandAll-value-1" type="checkbox" data-event-name="skin-client-pref-expandAll-value-1" class="cdx-toggle-switch__input"><span class="cdx-toggle-switch__switch"><span class="cdx-toggle-switch__switch__grip"></span></span><label class="cdx-toggle-switch__label">msg:expandAll-name</label></span></form></div></li></div>" 74 | } 75 | } ).then( () => { > 76 | expect( cp.innerHTML ).toMatchSnapshot(); | ^ 77 | } ); 78 | } ); 79 | } ); at tests/jest/skins.vector.clientPreferences.test.js:76:27 FAIL tests/jest/skins.vector.js/menuTabs.test.js ● menuTabs › adds vector-tab-noicon class to li element when part of tabs expect(received).toMatchSnapshot() Snapshot name: `menuTabs adds vector-tab-noicon class to li element when part of tabs 1` - Snapshot - 5 + Received + 5 @@ -1,11 +1,11 @@ " - <div id=\"p-views\" class=\"vector-menu mw-portlet mw-portlet-views vector-menu-tabs\"> + <div id="p-views" class="vector-menu mw-portlet mw-portlet-views vector-menu-tabs"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li class=\"mw-list-item mw-list-item-js vector-tab-noicon\" id=\"test-id\"> + <li class="mw-list-item mw-list-item-js vector-tab-noicon" id="test-id"> - <a href=\"#test-href\"> + <a href="#test-href"> <span> test link content </span> </a> </li> 44 | mw.hook( 'util' ).fire( menuItem, { id: 'test-id' } ); 45 | > 46 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 47 | } ); 48 | 49 | test( 'does not add vector-tab-noicon class to li element when not part of tabs', () => { at Object.<anonymous> (tests/jest/skins.vector.js/menuTabs.test.js:46:37) ● menuTabs › does not add vector-tab-noicon class to li element when not part of tabs expect(received).toMatchSnapshot() Snapshot name: `menuTabs does not add vector-tab-noicon class to li element when not part of tabs 1` - Snapshot - 5 + Received + 5 @@ -1,11 +1,11 @@ " - <div id=\"p-variants\" class=\"vector-menu mw-portlet mw-portlet-variants\"> + <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li class=\"mw-list-item mw-list-item-js\" id=\"test-id\"> + <li class="mw-list-item mw-list-item-js" id="test-id"> - <a href=\"#test-href\"> + <a href="#test-href"> <span> test link content </span> </a> </li> 67 | mw.hook( 'util' ).fire( menuItem, { id: 'test-id' } ); 68 | > 69 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 70 | } ); 71 | } ); 72 | at Object.<anonymous> (tests/jest/skins.vector.js/menuTabs.test.js:69:37) FAIL tests/jest/userLinks.test.js ● UserLinks renders expect(received).toMatchSnapshot() Snapshot name: `UserLinks renders 1` - Snapshot - 41 + Received + 41 @@ -1,83 +1,83 @@ - "<nav class=\"vector-user-links\" aria-label=\"\"> + "<nav class="vector-user-links" aria-label=""> - <div class=\"vector-user-links-main\"> + <div class="vector-user-links-main"> - <div id=\"p-personal-preferences\" class=\"vector-menu\"> + <div id="p-personal-preferences" class="vector-menu"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li id=\"ca-uls\" class=\"user-links-collapsible-item mw-list-item active\"><a href=\"#\" class=\"uls-trigger cdx-button cdx-button--weight-quiet\"><span class=\"vector-icon mw-ui-icon-wikimedia-language\"></span> <span>English</span></a></li> + <li id="ca-uls" class="user-links-collapsible-item mw-list-item active"><a href="#" class="uls-trigger cdx-button cdx-button--weight-quiet"><span class="vector-icon mw-ui-icon-wikimedia-language"></span> <span>English</span></a></li> </ul> </div> </div> - <div id=\"p-personal-user-page\" class=\"vector-menu\"> + <div id="p-personal-user-page" class="vector-menu"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li id=\"pt-userpage-2\" class=\"user-links-collapsible-item mw-list-item\"><a href=\"/wiki/User:Admin\" class=\"cdx-button cdx-button--weight-quiet\" title=\"Your user page [⌃⌥.]\" accesskey=\".\"><span>Admin</span></a></li> + <li id="pt-userpage-2" class="user-links-collapsible-item mw-list-item"><a href="/wiki/User:Admin" class="cdx-button cdx-button--weight-quiet" title="Your user page [⌃⌥.]" accesskey="."><span>Admin</span></a></li> </ul> </div> </div> - <nav class=\"vector-appearance-landmark\" aria-label=\"\"> + <nav class="vector-appearance-landmark" aria-label=""> </nav> - <div id=\"p-personal-notifications\" class=\"vector-menu\"> + <div id="p-personal-notifications" class="vector-menu"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li id=\"pt-notifications-alert\" class=\"mw-list-item\"><a href=\"/wiki/Special:Notifications\" class=\"mw-echo-notifications-badge mw-echo-notification-badge-nojs oo-ui-icon-bell mw-echo-notifications-badge-all-read\" data-counter-num=\"0\" data-counter-text=\"0\" title=\"Your alerts\"><span>Alerts (0)</span></a></li> + <li id="pt-notifications-alert" class="mw-list-item"><a href="/wiki/Special:Notifications" class="mw-echo-notifications-badge mw-echo-notification-badge-nojs oo-ui-icon-bell mw-echo-notifications-badge-all-read" data-counter-num="0" data-counter-text="0" title="Your alerts"><span>Alerts (0)</span></a></li> - <li id=\"pt-notifications-notice\" class=\"mw-list-item\"><a href=\"/wiki/Special:Notifications\" class=\"mw-echo-notifications-badge mw-echo-notification-badge-nojs oo-ui-icon-tray mw-echo-notifications-badge-all-read\" data-counter-num=\"0\" data-counter-text=\"0\" title=\"Your notices\"><span>Notices (0)</span></a></li> + <li id="pt-notifications-notice" class="mw-list-item"><a href="/wiki/Special:Notifications" class="mw-echo-notifications-badge mw-echo-notification-badge-nojs oo-ui-icon-tray mw-echo-notifications-badge-all-read" data-counter-num="0" data-counter-text="0" title="Your notices"><span>Notices (0)</span></a></li> </ul> </div> </div> - <div id=\"p-personal-more\" class=\"vector-menu mw-portlet mw-portlet-vector-user-menu-overflow vector-user-menu-overflow\"> + <div id="p-personal-more" class="vector-menu mw-portlet mw-portlet-vector-user-menu-overflow vector-user-menu-overflow"> - <div class=\"vector-menu-heading\"> + <div class="vector-menu-heading"> Toggle sidebar </div> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li id=\"pt-watchlist-2\" class=\"user-links-collapsible-item mw-list-item\"><a href=\"/wiki/Special:Watchlist\" class=\"cdx-button cdx-button--weight-quiet vector-icon cdx-button--icon-only mw-ui-icon-watchlist mw-ui-icon-wikimedia-watchlist\" title=\"A list of pages you are monitoring for changes [⌃⌥l]\" accesskey=\"l\"><span>Watchlist</span></a></li> + <li id="pt-watchlist-2" class="user-links-collapsible-item mw-list-item"><a href="/wiki/Special:Watchlist" class="cdx-button cdx-button--weight-quiet vector-icon cdx-button--icon-only mw-ui-icon-watchlist mw-ui-icon-wikimedia-watchlist" title="A list of pages you are monitoring for changes [⌃⌥l]" accesskey="l"><span>Watchlist</span></a></li> </ul> </div> </div> </div> - <div id=\"vector-user-links-dropdown\" class=\"vector-dropdown vector-user-menu vector-user-menu-logged-in\"> + <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-user-menu-logged-in"> - <input type=\"checkbox\" id=\"vector-user-links-dropdown-checkbox\" role=\"button\" aria-haspopup=\"true\" data-event-name=\"ui.dropdown-vector-user-links-dropdown\" class=\"vector-dropdown-checkbox\" aria-label=\"Personal tools\"> + <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox" aria-label="Personal tools"> - <label id=\"vector-user-links-dropdown-label\" for=\"vector-user-links-dropdown-checkbox\" class=\"vector-dropdown-label\" aria-hidden=\"true\"><span class=\"vector-dropdown-label-text\">Personal tools</span> + <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label" aria-hidden="true"><span class="vector-dropdown-label-text">Personal tools</span> </label> - <div class=\"vector-dropdown-content\"> + <div class="vector-dropdown-content"> - <div id=\"p-personal\" class=\"vector-menu mw-portlet mw-portlet-personal\"> + <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li id=\"pt-userpage\" class=\"user-links-collapsible-item mw-list-item\"><a href=\"/wiki/User:Admin\" title=\"Your user page [.]\" accesskey=\".\"><span class=\"vector-icon mw-ui-icon-userAvatar mw-ui-icon-wikimedia-userAvatar\"></span> <span>Admin</span></a></li> + <li id="pt-userpage" class="user-links-collapsible-item mw-list-item"><a href="/wiki/User:Admin" title="Your user page [.]" accesskey="."><span class="vector-icon mw-ui-icon-userAvatar mw-ui-icon-wikimedia-userAvatar"></span> <span>Admin</span></a></li> - <li id=\"pt-mytalk\" class=\"mw-list-item\"><a href=\"/wiki/User_talk:Admin\" title=\"Your talk page [n]\" accesskey=\"n\"><span class=\"vector-icon mw-ui-icon-userTalk mw-ui-icon-wikimedia-userTalk\"></span> <span>Talk</span></a></li> + <li id="pt-mytalk" class="mw-list-item"><a href="/wiki/User_talk:Admin" title="Your talk page [n]" accesskey="n"><span class="vector-icon mw-ui-icon-userTalk mw-ui-icon-wikimedia-userTalk"></span> <span>Talk</span></a></li> - <li id=\"pt-sandbox\" class=\"new mw-list-item\"><a href=\"/w/index.php?title=User:Admin/sandbox&action=edit&redlink=1\" title=\"Your sandbox (page does not exist)\"><span class=\"vector-icon mw-ui-icon-sandbox mw-ui-icon-wikimedia-sandbox\"></span> <span>Sandbox</span></a></li> + <li id="pt-sandbox" class="new mw-list-item"><a href="/w/index.php?title=User:Admin/sandbox&action=edit&redlink=1" title="Your sandbox (page does not exist)"><span class="vector-icon mw-ui-icon-sandbox mw-ui-icon-wikimedia-sandbox"></span> <span>Sandbox</span></a></li> - <li id=\"pt-preferences\" class=\"mw-list-item\"><a href=\"/wiki/Special:Preferences\" title=\"Your preferences\"><span class=\"vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance\"></span> <span>Preferences</span></a></li> + <li id="pt-preferences" class="mw-list-item"><a href="/wiki/Special:Preferences" title="Your preferences"><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span>Preferences</span></a></li> - <li id=\"pt-betafeatures\" class=\"mw-list-item\"><a href=\"/wiki/Special:Preferences#mw-prefsection-betafeatures\" title=\"Beta features\"><span class=\"vector-icon mw-ui-icon-labFlask mw-ui-icon-wikimedia-labFlask\"></span> <span>Beta</span></a></li> + <li id="pt-betafeatures" class="mw-list-item"><a href="/wiki/Special:Preferences#mw-prefsection-betafeatures" title="Beta features"><span class="vector-icon mw-ui-icon-labFlask mw-ui-icon-wikimedia-labFlask"></span> <span>Beta</span></a></li> - <li id=\"pt-watchlist\" class=\"user-links-collapsible-item mw-list-item\"><a href=\"/wiki/Special:Watchlist\" title=\"A list of pages you are monitoring for changes [l]\" accesskey=\"l\"><span class=\"vector-icon mw-ui-icon-watchlist mw-ui-icon-wikimedia-watchlist\"></span> <span>Watchlist</span></a></li> + <li id="pt-watchlist" class="user-links-collapsible-item mw-list-item"><a href="/wiki/Special:Watchlist" title="A list of pages you are monitoring for changes [l]" accesskey="l"><span class="vector-icon mw-ui-icon-watchlist mw-ui-icon-wikimedia-watchlist"></span> <span>Watchlist</span></a></li> - <li id=\"pt-uploads\" class=\"mw-list-item\"><a href=\"/w/index.php?title=Special:ListFiles/Admin&ilshowall=1\" title=\"List of files you have uploaded\"><span class=\"vector-icon mw-ui-icon-imageGallery mw-ui-icon-wikimedia-imageGallery\"></span> <span>Uploads</span></a></li> + <li id="pt-uploads" class="mw-list-item"><a href="/w/index.php?title=Special:ListFiles/Admin&ilshowall=1" title="List of files you have uploaded"><span class="vector-icon mw-ui-icon-imageGallery mw-ui-icon-wikimedia-imageGallery"></span> <span>Uploads</span></a></li> - <li id=\"pt-mycontris\" class=\"mw-list-item\"><a href=\"/wiki/Special:Contributions/Admin\" title=\"A list of your contributions [y]\" accesskey=\"y\"><span class=\"vector-icon mw-ui-icon-userContributions mw-ui-icon-wikimedia-userContributions\"></span> <span>Contributions</span></a></li> + <li id="pt-mycontris" class="mw-list-item"><a href="/wiki/Special:Contributions/Admin" title="A list of your contributions [y]" accesskey="y"><span class="vector-icon mw-ui-icon-userContributions mw-ui-icon-wikimedia-userContributions"></span> <span>Contributions</span></a></li> - <li id=\"pt-custom\" class=\"mw-list-item mw-list-item-js\">Gadget added item</li> + <li id="pt-custom" class="mw-list-item mw-list-item-js">Gadget added item</li> </ul> </div> </div> - <div id=\"p-user-menu-logout\" class=\"vector-menu mw-portlet mw-portlet-user-menu-logout\"> + <div id="p-user-menu-logout" class="vector-menu mw-portlet mw-portlet-user-menu-logout"> - <div class=\"vector-menu-content\"> + <div class="vector-menu-content"> - <ul class=\"vector-menu-content-list\"> + <ul class="vector-menu-content-list"> - <li id=\"ca-logout\" class=\"mw-list-item\"><a data-mw=\"interface\" href=\"/w/index.php?title=Special:UserLogout&returnto=Main+Page\" title=\"Log out\"><span class=\"vector-icon mw-ui-icon-logOut mw-ui-icon-wikimedia-logOut\"></span> <span>Log out</span></a></li> + <li id="ca-logout" class="mw-list-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogout&returnto=Main+Page" title="Log out"><span class="vector-icon mw-ui-icon-logOut mw-ui-icon-wikimedia-logOut"></span> <span>Log out</span></a></li> </ul> </div> </div> 6 | 7 | test( 'UserLinks renders', () => { > 8 | expect( document.body.innerHTML ).toMatchSnapshot(); | ^ 9 | } ); 10 | at Object.<anonymous> (tests/jest/userLinks.test.js:8:36) Snapshot Summary › 17 snapshots failed from 7 test suites. Inspect your code changes or run `npm run test:unit -- -u` to update them. Test Suites: 9 failed, 12 passed, 21 total Tests: 17 failed, 74 passed, 91 total Snapshots: 17 failed, 2 passed, 19 total Time: 9.462 s --- stdout --- > test > npm -s run lint && tsc && npm run test:unit Checked 1 message directory. > test:unit > jest --silent --------------------------------|---------|----------|---------|---------|--------------------------------------------------------------------------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s --------------------------------|---------|----------|---------|---------|--------------------------------------------------------------------------------------- All files | 36.35 | 28.69 | 32.49 | 36.46 | skins.vector.clientPreferences | 60.51 | 43.66 | 58.82 | 60.2 | clientPreferences.js | 60.51 | 43.66 | 58.82 | 60.2 | 60-88,143-160,179,193-228,257,294,300,321,326-327,343,350-353,367,397-403,420,440-459 skins.vector.js | 32.32 | 27.75 | 28.11 | 32.58 | AB.js | 100 | 93.33 | 100 | 100 | 198 deferUntilFrame.js | 100 | 100 | 100 | 100 | disableNightModeIfGadget.js | 70 | 70 | 60 | 70 | 59-77,89 dropdownMenus.js | 90.38 | 80 | 83.33 | 90.38 | 26,89,99,132,161 echo.js | 0 | 0 | 0 | 0 | 6-36 features.js | 71.42 | 55.55 | 50 | 71.42 | 19-20,26-27,85-103 languageButton.js | 0 | 0 | 0 | 0 | 9-52 menuTabs.js | 100 | 100 | 100 | 100 | pinnableElement.js | 78.94 | 76.31 | 75 | 79.78 | 25,29-30,34-35,82-86,134,184,208,231,278-294 popupNotification.js | 91.66 | 64.28 | 75 | 91.66 | 74,77 portlets.js | 85.52 | 58.06 | 60 | 85.52 | 20,35-37,60,113,126-132 scrollObserver.js | 0 | 0 | 0 | 0 | 2-52 searchLoader.js | 0 | 0 | 0 | 0 | 12-123 searchToggle.js | 13.33 | 0 | 0 | 13.33 | 18-94,110-125 sectionObserver.js | 0 | 0 | 0 | 0 | 46-187 setupIntersectionObservers.js | 0 | 0 | 0 | 0 | 3-369 skin.js | 0 | 0 | 0 | 0 | 1-160 stickyHeader.js | 16.9 | 3.5 | 19.44 | 16.99 | 27-66,94-111,128-140,169-390,427-429,449-586 stickyHeaderAB.js | 0 | 0 | 0 | 0 | tableOfContents.js | 0 | 0 | 0 | 0 | 6-633 tables.js | 86.36 | 81.25 | 100 | 86.36 | 4,28,34 userPreferences.js | 33.33 | 0 | 0 | 33.33 | 8-10 watchstar.js | 20 | 0 | 0 | 20 | 7-24,29-36 skins.vector.legacy.js | 22.22 | 12.16 | 6.66 | 22.22 | collapsibleTabs.js | 0 | 0 | 0 | 0 | 13-236 portlets.js | 83.33 | 64.28 | 66.66 | 83.33 | 18,35-37,47,85-88 skin-legacy.js | 0 | 100 | 0 | 0 | 4-19 vector.js | 0 | 0 | 0 | 0 | 7-118 skins.vector.search | 58.33 | 46.51 | 55.55 | 58.33 | App.vue | 42.3 | 16.66 | 35.29 | 42.3 | 121-180,185-187,242-246 fetch.js | 100 | 75 | 75 | 100 | 28 instrumentation.js | 80 | 100 | 60 | 80 | 11-25 restSearchClient.js | 100 | 75 | 100 | 100 | 26-48 skins.vector.search.js | 0 | 0 | 0 | 0 | 4-51 types.js | 0 | 0 | 0 | 0 | urlGenerator.js | 100 | 100 | 100 | 100 | --------------------------------|---------|----------|---------|---------|--------------------------------------------------------------------------------------- --- end --- $ node_modules/.bin/jest -u --- stderr --- PASS tests/jest/skins.vector.js/dropdownMenus.test.js › 2 snapshots updated. PASS tests/jest/stickyHeader.test.js › 1 snapshot updated. PASS tests/jest/pinnableElement.test.js › 1 snapshot updated. PASS tests/jest/skins.vector.js/tables.test.js › 7 snapshots updated. PASS tests/jest/skins.vector.clientPreferences.test.js › 3 snapshots updated. PASS tests/jest/skins.vector.js/menuTabs.test.js › 2 snapshots updated. PASS tests/jest/userLinks.test.js › 1 snapshot updated. PASS tests/jest/AB.test.js PASS tests/jest/App.test.js ● Console console.warn [Vue warn]: Failed to resolve component: cdx-typeahead-search If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. at <App id="searchform" searchAccessKey="f" searchTitle="search" ... > at <VTUROOT> 200 | restClient.loadMore( 201 | this.currentSearchQuery, > 202 | this.suggestions.length, | ^ 203 | 10, 204 | this.showDescription 205 | ), at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:50:13) at resolveAsset (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:1175:7) at resolveComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:1137:10) at Proxy.render (resources/skins.vector.search/App.vue:202:66) at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:886:16) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5086:46) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19) at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5217:16) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5227:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4995:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4949:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4429:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5093:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:181:19) at instance.update (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5217:16) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5227:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4995:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4949:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4429:11) at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5743:7) at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3058:13) at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1470:19) at mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8415:18) at Object.shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12) at mount (tests/jest/App.test.js:15:69) at Object.<anonymous> (tests/jest/App.test.js:33:19) PASS tests/jest/skins.vector.js/disableNightModeIfGadget.test.js PASS tests/jest/popupNotification.test.js PASS tests/jest/skins.vector.legacy.js/portlets.test.js PASS tests/jest/restSearchClient.test.js PASS tests/jest/fetch.test.js PASS tests/jest/urlGenerator.test.js PASS tests/jest/skins.vector.js/portlets.test.js PASS tests/jest/instrumentation.test.js PASS tests/jest/skins.vector.es6/features.test.js PASS tests/jest/deferUntilFrame.test.js FAIL tests/jest/tableOfContents.test.js ● Test suite failed to run ● Invalid return value: `process()` or/and `processAsync()` method of code transformer found at "/src/repo/node_modules/mustache-jest/index.js" should return an object or a Promise resolving to an object. The object must have `code` property with a string of processed code. This error may be caused by a breaking change in Jest 28: https://jestjs.io/docs/28.x/upgrading-to-jest28#transformer Code Transformation Documentation: https://jestjs.io/docs/code-transformation 4 | * TableOfContents Mustache templates 5 | */ > 6 | const templateTocContents = require( /** @type {string} */ ( './templates/TableOfContents__list.mustache' ) ); | ^ 7 | const templateTocLine = require( /** @type {string} */ ( './templates/TableOfContents__line.mustache' ) ); 8 | /** 9 | * TableOfContents Config object for filling mustache templates at ScriptTransformer._buildTransformResult (node_modules/@jest/transform/build/ScriptTransformer.js:442:15) at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:554:17) at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:674:40) at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:726:19) at Object.require (resources/skins.vector.js/tableOfContents.js:6:29) at Object.<anonymous> (tests/jest/tableOfContents.test.js:9:29) FAIL tests/jest/skins.vector.es6/main.test.js ● Test suite failed to run ● Invalid return value: `process()` or/and `processAsync()` method of code transformer found at "/src/repo/node_modules/mustache-jest/index.js" should return an object or a Promise resolving to an object. The object must have `code` property with a string of processed code. This error may be caused by a breaking change in Jest 28: https://jestjs.io/docs/28.x/upgrading-to-jest28#transformer Code Transformation Documentation: https://jestjs.io/docs/code-transformation 4 | * TableOfContents Mustache templates 5 | */ > 6 | const templateTocContents = require( /** @type {string} */ ( './templates/TableOfContents__list.mustache' ) ); | ^ 7 | const templateTocLine = require( /** @type {string} */ ( './templates/TableOfContents__line.mustache' ) ); 8 | /** 9 | * TableOfContents Config object for filling mustache templates at ScriptTransformer._buildTransformResult (node_modules/@jest/transform/build/ScriptTransformer.js:442:15) at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:554:17) at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:674:40) at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:726:19) at Object.require (resources/skins.vector.js/tableOfContents.js:6:29) at Object.require (resources/skins.vector.js/setupIntersectionObservers.js:7:24) at Object.<anonymous> (tests/jest/skins.vector.es6/main.test.js:8:18) Jest: "global" coverage threshold for statements (48%) not met: 36.35% Jest: "global" coverage threshold for branches (35%) not met: 28.69% Jest: "global" coverage threshold for lines (48%) not met: 36.46% Jest: "global" coverage threshold for functions (45%) not met: 32.49% Summary of all failing tests FAIL tests/jest/tableOfContents.test.js ● Test suite failed to run ● Invalid return value: `process()` or/and `processAsync()` method of code transformer found at "/src/repo/node_modules/mustache-jest/index.js" should return an object or a Promise resolving to an object. The object must have `code` property with a string of processed code. This error may be caused by a breaking change in Jest 28: https://jestjs.io/docs/28.x/upgrading-to-jest28#transformer Code Transformation Documentation: https://jestjs.io/docs/code-transformation 4 | * TableOfContents Mustache templates 5 | */ > 6 | const templateTocContents = require( /** @type {string} */ ( './templates/TableOfContents__list.mustache' ) ); | ^ 7 | const templateTocLine = require( /** @type {string} */ ( './templates/TableOfContents__line.mustache' ) ); 8 | /** 9 | * TableOfContents Config object for filling mustache templates at ScriptTransformer._buildTransformResult (node_modules/@jest/transform/build/ScriptTransformer.js:442:15) at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:554:17) at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:674:40) at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:726:19) at Object.require (resources/skins.vector.js/tableOfContents.js:6:29) at Object.<anonymous> (tests/jest/tableOfContents.test.js:9:29) FAIL tests/jest/skins.vector.es6/main.test.js ● Test suite failed to run ● Invalid return value: `process()` or/and `processAsync()` method of code transformer found at "/src/repo/node_modules/mustache-jest/index.js" should return an object or a Promise resolving to an object. The object must have `code` property with a string of processed code. This error may be caused by a breaking change in Jest 28: https://jestjs.io/docs/28.x/upgrading-to-jest28#transformer Code Transformation Documentation: https://jestjs.io/docs/code-transformation 4 | * TableOfContents Mustache templates 5 | */ > 6 | const templateTocContents = require( /** @type {string} */ ( './templates/TableOfContents__list.mustache' ) ); | ^ 7 | const templateTocLine = require( /** @type {string} */ ( './templates/TableOfContents__line.mustache' ) ); 8 | /** 9 | * TableOfContents Config object for filling mustache templates at ScriptTransformer._buildTransformResult (node_modules/@jest/transform/build/ScriptTransformer.js:442:15) at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:554:17) at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:674:40) at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:726:19) at Object.require (resources/skins.vector.js/tableOfContents.js:6:29) at Object.require (resources/skins.vector.js/setupIntersectionObservers.js:7:24) at Object.<anonymous> (tests/jest/skins.vector.es6/main.test.js:8:18) Snapshot Summary › 17 snapshots updated from 7 test suites. Test Suites: 2 failed, 19 passed, 21 total Tests: 91 passed, 91 total Snapshots: 17 updated, 2 passed, 19 total Time: 5.759 s Ran all test suites. --- stdout --- --------------------------------|---------|----------|---------|---------|--------------------------------------------------------------------------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s --------------------------------|---------|----------|---------|---------|--------------------------------------------------------------------------------------- All files | 36.35 | 28.69 | 32.49 | 36.46 | skins.vector.clientPreferences | 60.51 | 43.66 | 58.82 | 60.2 | clientPreferences.js | 60.51 | 43.66 | 58.82 | 60.2 | 60-88,143-160,179,193-228,257,294,300,321,326-327,343,350-353,367,397-403,420,440-459 skins.vector.js | 32.32 | 27.75 | 28.11 | 32.58 | AB.js | 100 | 93.33 | 100 | 100 | 198 deferUntilFrame.js | 100 | 100 | 100 | 100 | disableNightModeIfGadget.js | 70 | 70 | 60 | 70 | 59-77,89 dropdownMenus.js | 90.38 | 80 | 83.33 | 90.38 | 26,89,99,132,161 echo.js | 0 | 0 | 0 | 0 | 6-36 features.js | 71.42 | 55.55 | 50 | 71.42 | 19-20,26-27,85-103 languageButton.js | 0 | 0 | 0 | 0 | 9-52 menuTabs.js | 100 | 100 | 100 | 100 | pinnableElement.js | 78.94 | 76.31 | 75 | 79.78 | 25,29-30,34-35,82-86,134,184,208,231,278-294 popupNotification.js | 91.66 | 64.28 | 75 | 91.66 | 74,77 portlets.js | 85.52 | 58.06 | 60 | 85.52 | 20,35-37,60,113,126-132 scrollObserver.js | 0 | 0 | 0 | 0 | 2-52 searchLoader.js | 0 | 0 | 0 | 0 | 12-123 searchToggle.js | 13.33 | 0 | 0 | 13.33 | 18-94,110-125 sectionObserver.js | 0 | 0 | 0 | 0 | 46-187 setupIntersectionObservers.js | 0 | 0 | 0 | 0 | 3-369 skin.js | 0 | 0 | 0 | 0 | 1-160 stickyHeader.js | 16.9 | 3.5 | 19.44 | 16.99 | 27-66,94-111,128-140,169-390,427-429,449-586 stickyHeaderAB.js | 0 | 0 | 0 | 0 | tableOfContents.js | 0 | 0 | 0 | 0 | 6-633 tables.js | 86.36 | 81.25 | 100 | 86.36 | 4,28,34 userPreferences.js | 33.33 | 0 | 0 | 33.33 | 8-10 watchstar.js | 20 | 0 | 0 | 20 | 7-24,29-36 skins.vector.legacy.js | 22.22 | 12.16 | 6.66 | 22.22 | collapsibleTabs.js | 0 | 0 | 0 | 0 | 13-236 portlets.js | 83.33 | 64.28 | 66.66 | 83.33 | 18,35-37,47,85-88 skin-legacy.js | 0 | 100 | 0 | 0 | 4-19 vector.js | 0 | 0 | 0 | 0 | 7-118 skins.vector.search | 58.33 | 46.51 | 55.55 | 58.33 | App.vue | 42.3 | 16.66 | 35.29 | 42.3 | 121-180,185-187,242-246 fetch.js | 100 | 75 | 75 | 100 | 28 instrumentation.js | 80 | 100 | 60 | 80 | 11-25 restSearchClient.js | 100 | 75 | 100 | 100 | 26-48 skins.vector.search.js | 0 | 0 | 0 | 0 | 4-51 types.js | 0 | 0 | 0 | 0 | urlGenerator.js | 100 | 100 | 100 | 100 | --------------------------------|---------|----------|---------|---------|--------------------------------------------------------------------------------------- --- end --- Traceback (most recent call last): File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 325, in npm_test self.check_call(["npm", "test"]) File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/shell2.py", line 59, in check_call res.check_returncode() File "/usr/lib/python3.11/subprocess.py", line 502, in check_returncode raise CalledProcessError(self.returncode, self.args, self.stdout, subprocess.CalledProcessError: Command '['/usr/bin/npm', 'test']' returned non-zero exit status 1. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1964, in main libup.run(args.repo, args.output, args.branch) File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1902, in run self.npm_upgrade(plan) File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1252, in npm_upgrade self.npm_test() File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 330, in npm_test self.check_call(["node_modules/.bin/jest", "-u"]) File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/shell2.py", line 59, in check_call res.check_returncode() File "/usr/lib/python3.11/subprocess.py", line 502, in check_returncode raise CalledProcessError(self.returncode, self.args, self.stdout, subprocess.CalledProcessError: Command '['node_modules/.bin/jest', '-u']' returned non-zero exit status 1.