This run took 89 seconds.
From 68bd880f82f509b9fca9aab2217b76bc1ebfe75e Mon Sep 17 00:00:00 2001 From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org> Date: Sun, 10 Nov 2024 17:19:52 +0000 Subject: [PATCH] build: Updating mediawiki/mediawiki-codesniffer to 45.0.0 The following sniffs are failing and were disabled: * MediaWiki.Usage.NullableType.ExplicitNullableTypes Change-Id: Ic2d4d9a33a6caef9ec9c3826eb9e4219d0d2e877 --- .phpcs.xml | 1 + composer.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.phpcs.xml b/.phpcs.xml index 4dc1d16..ca7501d 100644 --- a/.phpcs.xml +++ b/.phpcs.xml @@ -4,6 +4,7 @@ <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate" /> <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" /> <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" /> + <exclude name="MediaWiki.Usage.NullableType.ExplicitNullableTypes" /> </rule> <file>.</file> diff --git a/composer.json b/composer.json index 587e9fb..bd18f7e 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,7 @@ "serialization/serialization": "~3.2|~4.0" }, "require-dev": { - "mediawiki/mediawiki-codesniffer": "44.0.0", + "mediawiki/mediawiki-codesniffer": "45.0.0", "mediawiki/mediawiki-phan-config": "0.14.0", "mediawiki/minus-x": "1.1.3", "php-parallel-lint/php-console-highlighter": "1.0.0", -- 2.39.2
$ date --- stdout --- Sun Nov 10 17:18:25 UTC 2024 --- end --- $ git clone file:///srv/git/mediawiki-extensions-WikibaseMediaInfo.git repo --depth=1 -b REL1_43 --- 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/REL1_43 --- stdout --- 6a1f74a201ee90d5bc0878295cded8dc5de6385a refs/heads/REL1_43 --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "jpeg-js": { "name": "jpeg-js", "severity": "high", "isDirect": true, "via": [ { "source": 1088964, "name": "jpeg-js", "dependency": "jpeg-js", "title": "Infinite loop in jpeg-js", "url": "https://github.com/advisories/GHSA-xvf7-4v9q-58w6", "severity": "high", "cwe": [ "CWE-835" ], "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": "<0.4.4" }, { "source": 1093580, "name": "jpeg-js", "dependency": "jpeg-js", "title": "Uncontrolled resource consumption in jpeg-js", "url": "https://github.com/advisories/GHSA-w7q9-p3jq-fmhm", "severity": "moderate", "cwe": [ "CWE-400" ], "cvss": { "score": 5.5, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H" }, "range": "<0.4.0" } ], "effects": [], "range": "<=0.4.3", "nodes": [ "node_modules/jpeg-js" ], "fixAvailable": { "name": "jpeg-js", "version": "0.4.4", "isSemVerMajor": true } }, "jquery": { "name": "jquery", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097311, "name": "jquery", "dependency": "jquery", "title": "Potential XSS vulnerability in jQuery", "url": "https://github.com/advisories/GHSA-jpcq-cgw6-v4j6", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 6.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N" }, "range": ">=1.0.3 <3.5.0" }, { "source": 1100395, "name": "jquery", "dependency": "jquery", "title": "Potential XSS vulnerability in jQuery", "url": "https://github.com/advisories/GHSA-gxr4-xjj5-5px2", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 6.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N" }, "range": ">=1.2.0 <3.5.0" } ], "effects": [ "oojs-ui" ], "range": "<=3.4.1", "nodes": [ "node_modules/oojs-ui/node_modules/jquery" ], "fixAvailable": { "name": "oojs-ui", "version": "0.51.1", "isSemVerMajor": true } }, "jsdom": { "name": "jsdom", "severity": "moderate", "isDirect": true, "via": [ "request", "request-promise-native", "tough-cookie" ], "effects": [], "range": "0.1.20 || 0.2.0 - 16.5.3", "nodes": [ "node_modules/jsdom" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } }, "mockery": { "name": "mockery", "severity": "critical", "isDirect": true, "via": [ { "source": 1092753, "name": "mockery", "dependency": "mockery", "title": "mockery is vulnerable to prototype pollution", "url": "https://github.com/advisories/GHSA-gmwp-3pwc-3j3g", "severity": "critical", "cwe": [ "CWE-1321" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": "<=2.1.0" } ], "effects": [], "range": "*", "nodes": [ "node_modules/mockery" ], "fixAvailable": false }, "oojs-ui": { "name": "oojs-ui", "severity": "moderate", "isDirect": true, "via": [ "jquery" ], "effects": [], "range": "0.11.0 - 0.38.1", "nodes": [ "node_modules/oojs-ui" ], "fixAvailable": { "name": "oojs-ui", "version": "0.51.1", "isSemVerMajor": true } }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" }, "tough-cookie" ], "effects": [ "jsdom", "request-promise-core", "request-promise-native" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } }, "request-promise-core": { "name": "request-promise-core", "severity": "moderate", "isDirect": false, "via": [ "request" ], "effects": [ "request-promise-native" ], "range": "*", "nodes": [ "node_modules/request-promise-core" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } }, "request-promise-native": { "name": "request-promise-native", "severity": "moderate", "isDirect": false, "via": [ "request", "request-promise-core", "tough-cookie" ], "effects": [ "jsdom" ], "range": ">=1.0.0", "nodes": [ "node_modules/request-promise-native" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } }, "tough-cookie": { "name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": [ "CWE-1321" ], "cvss": { "score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" }, "range": "<4.1.3" } ], "effects": [ "jsdom", "request", "request-promise-native" ], "range": "<4.1.3", "nodes": [ "node_modules/tough-cookie" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 7, "high": 1, "critical": 1, "total": 9 }, "dependencies": { "prod": 1, "dev": 671, "optional": 1, "peer": 1, "peerOptional": 0, "total": 671 } } } --- 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/pcre (3.3.1) - Locking composer/semver (3.4.2) - 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.3) - Locking felixfbecker/advanced-json-rpc (v3.2.1) - Locking mediawiki/mediawiki-codesniffer (v44.0.0) - Locking mediawiki/mediawiki-phan-config (0.14.0) - Locking mediawiki/minus-x (1.1.3) - Locking mediawiki/phan-taint-check-plugin (6.0.0) - Locking microsoft/tolerant-php-parser (v0.1.2) - Locking netresearch/jsonmapper (v4.5.0) - Locking phan/phan (5.4.3) - 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.11) - Locking phpdocumentor/reflection-common (2.2.0) - Locking phpdocumentor/reflection-docblock (5.5.1) - Locking phpdocumentor/type-resolver (1.10.0) - Locking phpstan/phpdoc-parser (1.33.0) - Locking psr/container (2.0.2) - Locking psr/log (3.0.2) - Locking sabre/event (5.1.7) - Locking serialization/serialization (4.0.0) - Locking squizlabs/php_codesniffer (3.9.0) - Locking symfony/console (v7.1.7) - Locking symfony/deprecation-contracts (v3.5.0) - 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.0) - Locking symfony/string (v7.1.6) - 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 squizlabs/php_codesniffer (3.9.0): Extracting archive - Installing dealerdirect/phpcodesniffer-composer-installer (v1.0.0): Extracting archive - Installing composer/pcre (3.3.1): Extracting archive - Installing symfony/polyfill-php80 (v1.31.0): Extracting archive - Installing phpcsstandards/phpcsutils (1.0.11): 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.2): Extracting archive - Installing mediawiki/mediawiki-codesniffer (v44.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.1.6): Extracting archive - Installing symfony/deprecation-contracts (v3.5.0): Extracting archive - Installing psr/container (2.0.2): Extracting archive - Installing symfony/service-contracts (v3.5.0): Extracting archive - Installing symfony/console (v7.1.7): 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 (1.33.0): Extracting archive - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive - Installing doctrine/deprecations (1.1.3): Extracting archive - Installing phpdocumentor/type-resolver (1.10.0): Extracting archive - Installing phpdocumentor/reflection-docblock (5.5.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.3): Extracting archive - Installing mediawiki/phan-taint-check-plugin (6.0.0): Extracting archive - Installing mediawiki/mediawiki-phan-config (0.14.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 - Installing serialization/serialization (4.0.0): Extracting archive 0/37 [>---------------------------] 0% 20/37 [===============>------------] 54% 34/37 [=========================>--] 91% 37/37 [============================] 100% Generating autoload files 16 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 c:mediawiki/mediawiki-codesniffer from 44.0.0 -> 45.0.0 $ /usr/bin/composer update --- stderr --- Loading composer repositories with package information Updating dependencies Lock file operations: 0 installs, 4 updates, 0 removals - Upgrading composer/semver (3.4.2 => 3.4.3) - Upgrading mediawiki/mediawiki-codesniffer (v44.0.0 => v45.0.0) - Upgrading phpcsstandards/phpcsutils (1.0.11 => 1.0.12) - Upgrading squizlabs/php_codesniffer (3.9.0 => 3.10.3) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 0 installs, 4 updates, 0 removals 0 [>---------------------------] 0 [->--------------------------] - Upgrading squizlabs/php_codesniffer (3.9.0 => 3.10.3): Extracting archive - Upgrading phpcsstandards/phpcsutils (1.0.11 => 1.0.12): Extracting archive - Upgrading composer/semver (3.4.2 => 3.4.3): Extracting archive - Upgrading mediawiki/mediawiki-codesniffer (v44.0.0 => v45.0.0): Extracting archive 0/4 [>---------------------------] 0% 3/4 [=====================>------] 75% 4/4 [============================] 100% Generating autoload files 16 packages you are using are looking for funding. Use the `composer fund` command to find out more! No security vulnerability advisories found --- stdout --- PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils --- end --- Previously failing phpcs rules: {'MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate', 'MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic', 'MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected'} $ vendor/bin/phpcs --report=json --- stdout --- {"totals":{"errors":64,"warnings":0,"fixable":16},"files":{"\/src\/repo\/src\/Search\/ASTQueryBuilder\/FieldIterator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/ParsedNodeHandlerInterface.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchMemoryEntitiesFetcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/FieldQueryBuilderInterface.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchCachingEntitiesFetcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MatchExplorerQuery.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/ChangeOp\/Deserialization\/MediaInfoChangeOpDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoServices.php":{"errors":3,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?MediaWikiServices $services = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":18,"column":50},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?MediaWikiServices $services = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":26,"column":47},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?MediaWikiServices $services = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":34,"column":49}]},"\/src\/repo\/src\/Services\/FilePageLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MustacheDomTemplateParser.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataAccess\/Scribunto\/WikibaseMediaInfoEntityLibrary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoEntityQuery.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":27,"column":15},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":31,"column":15}]},"\/src\/repo\/src\/DataAccess\/Scribunto\/WikibaseMediaInfoLibrary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MediaInfoDataForSearchIndex.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataAccess\/Store\/EntityIdFixingRevisionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoByLinkedTitleLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Rdf\/MediaInfoRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaInfoFieldDefinitions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/WikibaseMediaInfoServicesHooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Content\/MissingMediaInfoHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchQueryBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchRescoreProfiles.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/WBMIHooksHelper.php":{"errors":5,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":31,"column":19},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":36,"column":19},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":41,"column":19},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":46,"column":19},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":51,"column":19}]},"\/src\/repo\/src\/Services\/MediaInfoIdLookup.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":36,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":44,"column":12}]},"\/src\/repo\/src\/DataModel\/Serialization\/MediaInfoDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Content\/MediaInfoContent.php":{"errors":5,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?EntityHolder $mediaInfoHolder = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":38,"column":34},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":58,"column":20},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":62,"column":20},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":66,"column":20},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":73,"column":15}]},"\/src\/repo\/src\/DataModel\/MediaInfoId.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":33,"column":13}]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/WikibaseEntitiesHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoServiceWiring.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/View\/MediaInfoView.php":{"errors":3,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":61,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":84,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":90,"column":12}]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/WordsQueryNodeHandler.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":148,"column":20},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":152,"column":20}]},"\/src\/repo\/src\/DataAccess\/Store\/FilePageRedirectHandlingRevisionLookup.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":55,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":63,"column":12}]},"\/src\/repo\/src\/Diff\/BasicMediaInfoDiffVisualizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Services\/Diff\/MediaInfoPatcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Services\/Diff\/MediaInfoDiffer.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":70,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":84,"column":13}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Scribunto\/WikibaseMediaInfoEntityLibraryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchASTEntitiesExtractor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchRescoreFunctionChains.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/PhraseQueryNodeHandler.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":90,"column":20},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":95,"column":20}]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Services\/Diff\/MediaInfoDifferTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/integration\/MultiLingualCaptionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Serialization\/MediaInfoSerializer.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":69,"column":13}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/MediaInfoServicesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/MediaInfo.php":{"errors":4,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?MediaInfoId $id = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":55,"column":9},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?TermList $labels = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":56,"column":9},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?TermList $descriptions = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":57,"column":9},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?StatementList $statements = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":58,"column":9}]},"\/src\/repo\/src\/View\/MediaInfoEntityTermsView.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":105,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":239,"column":13}]},"\/src\/repo\/tests\/phpunit\/integration\/WBMIApiTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchProfiles.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Rdf\/MediaInfoSpecificComponentsRdfBuilder.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":131,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":174,"column":13}]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Serialization\/MediaInfoDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Store\/EntityIdFixingRevisionLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/MediaInfoDataForSearchIndexTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchMemoryEntitiesFetcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/MediaInfoIdLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoPrefetchingTermLookup.php":{"errors":3,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?array $termTypes = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":50,"column":56},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?array $languageCodes = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":50,"column":81},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":159,"column":12}]},"\/src\/repo\/.phan\/config.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/Feature\/CustomMatchFeature.php":{"errors":1,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?WarningCollector $warningCollector = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":269,"column":41}]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Services\/Diff\/MediaInfoPatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/integration\/WatchlistTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Content\/MediaInfoHandler.php":{"errors":1,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?EntityHolder $entityHolder = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":122,"column":39}]},"\/src\/repo\/src\/Search\/MediaSearchASTClassifier.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchEntitiesFetcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchCachingEntitiesFetcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchEntitiesFetcher.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":169,"column":13}]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Serialization\/MediaInfoSerializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/ChangeOp\/Deserialization\/MediaInfoChangeOpDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchASTQueryBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Store\/FilePageRedirectHandlingRevisionLookupTest.php":{"errors":2,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?RevisionStore $revisionStore = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":179,"column":9},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?WikiPageEntityDataLoader $entityDataLoader = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":180,"column":9}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaInfoFieldDefinitionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchQueryBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Content\/MediaInfoHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/WikibaseMediaInfoHooksTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Content\/MediaInfoContentTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Rdf\/FileMock.php":{"errors":7,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":31,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":35,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":39,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":43,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":47,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":51,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":59,"column":12}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/View\/MediaInfoEntityTermsViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/View\/MediaInfoViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/integration\/StatementsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Rdf\/MediaInfoRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/FilePageLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/MediaInfoTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/Feature\/CustomMatchFeatureTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/EntityTypesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/MediaInfoIdTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Content\/MissingMediaInfoHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchASTQueryBuilder.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":329,"column":13}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Rdf\/MediaInfoSpecificComponentsRdfBuilderTest.php":{"errors":1,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?File $file = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":143,"column":81}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/MediaInfoPrefetchingTermLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/WikibaseMediaInfo.entitytypes.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchASTEntitiesExtractorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/View\/MediaInfoEntityStatementsView.php":{"errors":6,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":110,"column":19},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":268,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":336,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":343,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":407,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":598,"column":13}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/View\/MediaInfoEntityStatementsViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/WikibaseMediaInfoHooks.php":{"errors":3,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?Title $title = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":148,"column":45},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":526,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":618,"column":19}]}}} --- end --- PHPCS run failed $ vendor/bin/phpcs --report=json --- stdout --- {"totals":{"errors":64,"warnings":0,"fixable":16},"files":{"\/src\/repo\/src\/Search\/ASTQueryBuilder\/FieldQueryBuilderInterface.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataAccess\/Store\/EntityIdFixingRevisionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/ChangeOp\/Deserialization\/MediaInfoChangeOpDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataAccess\/Scribunto\/WikibaseMediaInfoLibrary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchQueryBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoServices.php":{"errors":3,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?MediaWikiServices $services = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":18,"column":50},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?MediaWikiServices $services = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":26,"column":47},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?MediaWikiServices $services = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":34,"column":49}]},"\/src\/repo\/src\/Services\/FilePageLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MustacheDomTemplateParser.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Rdf\/MediaInfoRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataAccess\/Scribunto\/WikibaseMediaInfoEntityLibrary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/MediaInfoDataForSearchIndex.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoByLinkedTitleLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/WBMIHooksHelper.php":{"errors":5,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":31,"column":19},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":36,"column":19},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":41,"column":19},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":46,"column":19},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":51,"column":19}]},"\/src\/repo\/src\/Services\/MediaInfoEntityQuery.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":27,"column":15},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":31,"column":15}]},"\/src\/repo\/src\/WikibaseMediaInfoServicesHooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoIdLookup.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":36,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":44,"column":12}]},"\/src\/repo\/src\/Search\/MediaInfoFieldDefinitions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchRescoreProfiles.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/MediaInfoId.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":33,"column":13}]},"\/src\/repo\/src\/DataAccess\/Store\/FilePageRedirectHandlingRevisionLookup.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":55,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":63,"column":12}]},"\/src\/repo\/src\/Content\/MissingMediaInfoHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Content\/MediaInfoContent.php":{"errors":5,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?EntityHolder $mediaInfoHolder = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":38,"column":34},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":58,"column":20},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":62,"column":20},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":66,"column":20},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":73,"column":15}]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/WikibaseEntitiesHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/View\/MediaInfoView.php":{"errors":3,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":61,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":84,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":90,"column":12}]},"\/src\/repo\/src\/Diff\/BasicMediaInfoDiffVisualizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchCachingEntitiesFetcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Serialization\/MediaInfoDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoServiceWiring.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Services\/Diff\/MediaInfoDiffer.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":70,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":84,"column":13}]},"\/src\/repo\/src\/DataModel\/Services\/Diff\/MediaInfoPatcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/FieldIterator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/ParsedNodeHandlerInterface.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Scribunto\/WikibaseMediaInfoEntityLibraryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchMemoryEntitiesFetcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchASTEntitiesExtractor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchRescoreFunctionChains.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/Serialization\/MediaInfoSerializer.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":69,"column":13}]},"\/src\/repo\/src\/Search\/MatchExplorerQuery.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/integration\/WBMIApiTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/View\/MediaInfoEntityTermsView.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":105,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":239,"column":13}]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/WordsQueryNodeHandler.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":148,"column":20},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":152,"column":20}]},"\/src\/repo\/src\/Rdf\/MediaInfoSpecificComponentsRdfBuilder.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":131,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":174,"column":13}]},"\/src\/repo\/src\/Search\/ASTQueryBuilder\/PhraseQueryNodeHandler.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":90,"column":20},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":95,"column":20}]},"\/src\/repo\/tests\/phpunit\/integration\/MultiLingualCaptionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/DataModel\/MediaInfo.php":{"errors":4,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?MediaInfoId $id = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":55,"column":9},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?TermList $labels = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":56,"column":9},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?TermList $descriptions = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":57,"column":9},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?StatementList $statements = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":58,"column":9}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Store\/EntityIdFixingRevisionLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaInfoPrefetchingTermLookup.php":{"errors":3,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?array $termTypes = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":50,"column":56},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?array $languageCodes = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":50,"column":81},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":159,"column":12}]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Services\/Diff\/MediaInfoDifferTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/MediaInfoServicesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Serialization\/MediaInfoDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchMemoryEntitiesFetcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchProfiles.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchEntitiesFetcher.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":169,"column":13}]},"\/src\/repo\/.phan\/config.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/MediaInfoIdLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Content\/MediaInfoHandler.php":{"errors":1,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?EntityHolder $entityHolder = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":122,"column":39}]},"\/src\/repo\/tests\/phpunit\/unit\/MediaInfoDataForSearchIndexTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Services\/Diff\/MediaInfoPatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchASTClassifier.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchEntitiesFetcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchCachingEntitiesFetcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/Feature\/CustomMatchFeature.php":{"errors":1,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?WarningCollector $warningCollector = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":269,"column":41}]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/Serialization\/MediaInfoSerializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/ChangeOp\/Deserialization\/MediaInfoChangeOpDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/integration\/WatchlistTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/DataAccess\/Store\/FilePageRedirectHandlingRevisionLookupTest.php":{"errors":2,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?RevisionStore $revisionStore = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":179,"column":9},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?WikiPageEntityDataLoader $entityDataLoader = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":180,"column":9}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchQueryBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/MediaInfoTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Content\/MediaInfoContentTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Content\/MediaInfoHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/View\/MediaInfoViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/View\/MediaInfoEntityTermsViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/integration\/StatementsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchASTQueryBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/WikibaseMediaInfoHooksTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaInfoFieldDefinitionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Rdf\/FileMock.php":{"errors":7,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":31,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":35,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":39,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":43,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":47,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":51,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":59,"column":12}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/FilePageLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/composer\/DataModel\/MediaInfoIdTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Rdf\/MediaInfoRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Content\/MissingMediaInfoHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/EntityTypesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/Feature\/CustomMatchFeatureTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Search\/MediaSearchASTQueryBuilder.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":329,"column":13}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Rdf\/MediaInfoSpecificComponentsRdfBuilderTest.php":{"errors":1,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?File $file = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":143,"column":81}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Services\/MediaInfoPrefetchingTermLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/WikibaseMediaInfo.entitytypes.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/mediawiki\/Search\/MediaSearchASTEntitiesExtractorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/View\/MediaInfoEntityStatementsView.php":{"errors":6,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":110,"column":19},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":268,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":336,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":343,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":407,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":598,"column":13}]},"\/src\/repo\/src\/WikibaseMediaInfoHooks.php":{"errors":3,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?Title $title = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":148,"column":45},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":526,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":618,"column":19}]},"\/src\/repo\/tests\/phpunit\/mediawiki\/View\/MediaInfoEntityStatementsViewTest.php":{"errors":0,"warnings":0,"messages":[]}}} --- end --- * sniff MediaWiki.Usage.NullableType.ExplicitNullableTypes is now failing $ git checkout .phpcs.xml --- stderr --- Updated 1 path from the index --- stdout --- --- end --- $ /usr/bin/composer install --- stderr --- Installing dependencies from lock file (including require-dev) Verifying lock file contents can be installed on current platform. Nothing to install, update or remove Generating autoload files 16 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- --- end --- $ /usr/bin/composer test --- stderr --- > phpcs -sp --cache > parallel-lint . --exclude vendor --exclude node_modules > minus-x check . --- stdout --- .............................................. 46 / 46 (100%) Time: 345ms; Memory: 10MB PHP 8.2.20 | 10 parallel jobs ............................................................ 60/91 ( 65%) ............................... 91/91 (100%) Checked 91 files in 0.5 seconds No syntax error found MinusX ====== Processing /src/repo... ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ........... All good! --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "jpeg-js": { "name": "jpeg-js", "severity": "high", "isDirect": true, "via": [ { "source": 1088964, "name": "jpeg-js", "dependency": "jpeg-js", "title": "Infinite loop in jpeg-js", "url": "https://github.com/advisories/GHSA-xvf7-4v9q-58w6", "severity": "high", "cwe": [ "CWE-835" ], "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": "<0.4.4" }, { "source": 1093580, "name": "jpeg-js", "dependency": "jpeg-js", "title": "Uncontrolled resource consumption in jpeg-js", "url": "https://github.com/advisories/GHSA-w7q9-p3jq-fmhm", "severity": "moderate", "cwe": [ "CWE-400" ], "cvss": { "score": 5.5, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H" }, "range": "<0.4.0" } ], "effects": [], "range": "<=0.4.3", "nodes": [ "node_modules/jpeg-js" ], "fixAvailable": { "name": "jpeg-js", "version": "0.4.4", "isSemVerMajor": true } }, "jquery": { "name": "jquery", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097311, "name": "jquery", "dependency": "jquery", "title": "Potential XSS vulnerability in jQuery", "url": "https://github.com/advisories/GHSA-jpcq-cgw6-v4j6", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 6.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N" }, "range": ">=1.0.3 <3.5.0" }, { "source": 1100395, "name": "jquery", "dependency": "jquery", "title": "Potential XSS vulnerability in jQuery", "url": "https://github.com/advisories/GHSA-gxr4-xjj5-5px2", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 6.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N" }, "range": ">=1.2.0 <3.5.0" } ], "effects": [ "oojs-ui" ], "range": "<=3.4.1", "nodes": [ "node_modules/oojs-ui/node_modules/jquery" ], "fixAvailable": { "name": "oojs-ui", "version": "0.51.1", "isSemVerMajor": true } }, "jsdom": { "name": "jsdom", "severity": "moderate", "isDirect": true, "via": [ "request", "request-promise-native", "tough-cookie" ], "effects": [], "range": "0.1.20 || 0.2.0 - 16.5.3", "nodes": [ "node_modules/jsdom" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } }, "mockery": { "name": "mockery", "severity": "critical", "isDirect": true, "via": [ { "source": 1092753, "name": "mockery", "dependency": "mockery", "title": "mockery is vulnerable to prototype pollution", "url": "https://github.com/advisories/GHSA-gmwp-3pwc-3j3g", "severity": "critical", "cwe": [ "CWE-1321" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": "<=2.1.0" } ], "effects": [], "range": "*", "nodes": [ "node_modules/mockery" ], "fixAvailable": false }, "oojs-ui": { "name": "oojs-ui", "severity": "moderate", "isDirect": true, "via": [ "jquery" ], "effects": [], "range": "0.11.0 - 0.38.1", "nodes": [ "node_modules/oojs-ui" ], "fixAvailable": { "name": "oojs-ui", "version": "0.51.1", "isSemVerMajor": true } }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" }, "tough-cookie" ], "effects": [ "jsdom", "request-promise-core", "request-promise-native" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } }, "request-promise-core": { "name": "request-promise-core", "severity": "moderate", "isDirect": false, "via": [ "request" ], "effects": [ "request-promise-native" ], "range": "*", "nodes": [ "node_modules/request-promise-core" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } }, "request-promise-native": { "name": "request-promise-native", "severity": "moderate", "isDirect": false, "via": [ "request", "request-promise-core", "tough-cookie" ], "effects": [ "jsdom" ], "range": ">=1.0.0", "nodes": [ "node_modules/request-promise-native" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } }, "tough-cookie": { "name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": [ "CWE-1321" ], "cvss": { "score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" }, "range": "<4.1.3" } ], "effects": [ "jsdom", "request", "request-promise-native" ], "range": "<4.1.3", "nodes": [ "node_modules/tough-cookie" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 7, "high": 1, "critical": 1, "total": 9 }, "dependencies": { "prod": 1, "dev": 671, "optional": 1, "peer": 1, "peerOptional": 0, "total": 671 } } } --- end --- Attempting to npm audit fix $ /usr/bin/npm audit fix --dry-run --only=dev --json --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production --- stdout --- { "added": 671, "removed": 0, "changed": 0, "audited": 672, "funding": 96, "audit": { "auditReportVersion": 2, "vulnerabilities": { "jpeg-js": { "name": "jpeg-js", "severity": "high", "isDirect": true, "via": [ { "source": 1088964, "name": "jpeg-js", "dependency": "jpeg-js", "title": "Infinite loop in jpeg-js", "url": "https://github.com/advisories/GHSA-xvf7-4v9q-58w6", "severity": "high", "cwe": [ "CWE-835" ], "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": "<0.4.4" }, { "source": 1093580, "name": "jpeg-js", "dependency": "jpeg-js", "title": "Uncontrolled resource consumption in jpeg-js", "url": "https://github.com/advisories/GHSA-w7q9-p3jq-fmhm", "severity": "moderate", "cwe": [ "CWE-400" ], "cvss": { "score": 5.5, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H" }, "range": "<0.4.0" } ], "effects": [], "range": "<=0.4.3", "nodes": [ "node_modules/jpeg-js" ], "fixAvailable": { "name": "jpeg-js", "version": "0.4.4", "isSemVerMajor": true } }, "jquery": { "name": "jquery", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097311, "name": "jquery", "dependency": "jquery", "title": "Potential XSS vulnerability in jQuery", "url": "https://github.com/advisories/GHSA-jpcq-cgw6-v4j6", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 6.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N" }, "range": ">=1.0.3 <3.5.0" }, { "source": 1100395, "name": "jquery", "dependency": "jquery", "title": "Potential XSS vulnerability in jQuery", "url": "https://github.com/advisories/GHSA-gxr4-xjj5-5px2", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 6.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N" }, "range": ">=1.2.0 <3.5.0" } ], "effects": [ "oojs-ui" ], "range": "<=3.4.1", "nodes": [ "node_modules/oojs-ui/node_modules/jquery" ], "fixAvailable": { "name": "oojs-ui", "version": "0.51.1", "isSemVerMajor": true } }, "jsdom": { "name": "jsdom", "severity": "moderate", "isDirect": true, "via": [ "request", "request-promise-native", "tough-cookie" ], "effects": [], "range": "0.1.20 || 0.2.0 - 16.5.3", "nodes": [ "node_modules/jsdom" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } }, "mockery": { "name": "mockery", "severity": "critical", "isDirect": true, "via": [ { "source": 1092753, "name": "mockery", "dependency": "mockery", "title": "mockery is vulnerable to prototype pollution", "url": "https://github.com/advisories/GHSA-gmwp-3pwc-3j3g", "severity": "critical", "cwe": [ "CWE-1321" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": "<=2.1.0" } ], "effects": [], "range": "*", "nodes": [ "node_modules/mockery" ], "fixAvailable": false }, "oojs-ui": { "name": "oojs-ui", "severity": "moderate", "isDirect": true, "via": [ "jquery" ], "effects": [], "range": "0.11.0 - 0.38.1", "nodes": [ "node_modules/oojs-ui" ], "fixAvailable": { "name": "oojs-ui", "version": "0.51.1", "isSemVerMajor": true } }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" }, "tough-cookie" ], "effects": [ "jsdom", "request-promise-core", "request-promise-native" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } }, "request-promise-core": { "name": "request-promise-core", "severity": "moderate", "isDirect": false, "via": [ "request" ], "effects": [ "request-promise-native" ], "range": "*", "nodes": [ "node_modules/request-promise-core" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } }, "request-promise-native": { "name": "request-promise-native", "severity": "moderate", "isDirect": false, "via": [ "request", "request-promise-core", "tough-cookie" ], "effects": [ "jsdom" ], "range": ">=1.0.0", "nodes": [ "node_modules/request-promise-native" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } }, "tough-cookie": { "name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": [ "CWE-1321" ], "cvss": { "score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" }, "range": "<4.1.3" } ], "effects": [ "jsdom", "request", "request-promise-native" ], "range": "<4.1.3", "nodes": [ "node_modules/tough-cookie" ], "fixAvailable": { "name": "jsdom", "version": "25.0.1", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 7, "high": 1, "critical": 1, "total": 9 }, "dependencies": { "prod": 1, "dev": 671, "optional": 1, "peer": 1, "peerOptional": 0, "total": 671 } } } } --- end --- {"added": 671, "removed": 0, "changed": 0, "audited": 672, "funding": 96, "audit": {"auditReportVersion": 2, "vulnerabilities": {"jpeg-js": {"name": "jpeg-js", "severity": "high", "isDirect": true, "via": [{"source": 1088964, "name": "jpeg-js", "dependency": "jpeg-js", "title": "Infinite loop in jpeg-js", "url": "https://github.com/advisories/GHSA-xvf7-4v9q-58w6", "severity": "high", "cwe": ["CWE-835"], "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": "<0.4.4"}, {"source": 1093580, "name": "jpeg-js", "dependency": "jpeg-js", "title": "Uncontrolled resource consumption in jpeg-js", "url": "https://github.com/advisories/GHSA-w7q9-p3jq-fmhm", "severity": "moderate", "cwe": ["CWE-400"], "cvss": {"score": 5.5, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"}, "range": "<0.4.0"}], "effects": [], "range": "<=0.4.3", "nodes": ["node_modules/jpeg-js"], "fixAvailable": {"name": "jpeg-js", "version": "0.4.4", "isSemVerMajor": true}}, "jquery": {"name": "jquery", "severity": "moderate", "isDirect": false, "via": [{"source": 1097311, "name": "jquery", "dependency": "jquery", "title": "Potential XSS vulnerability in jQuery", "url": "https://github.com/advisories/GHSA-jpcq-cgw6-v4j6", "severity": "moderate", "cwe": ["CWE-79"], "cvss": {"score": 6.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N"}, "range": ">=1.0.3 <3.5.0"}, {"source": 1100395, "name": "jquery", "dependency": "jquery", "title": "Potential XSS vulnerability in jQuery", "url": "https://github.com/advisories/GHSA-gxr4-xjj5-5px2", "severity": "moderate", "cwe": ["CWE-79"], "cvss": {"score": 6.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N"}, "range": ">=1.2.0 <3.5.0"}], "effects": ["oojs-ui"], "range": "<=3.4.1", "nodes": ["node_modules/oojs-ui/node_modules/jquery"], "fixAvailable": {"name": "oojs-ui", "version": "0.51.1", "isSemVerMajor": true}}, "jsdom": {"name": "jsdom", "severity": "moderate", "isDirect": true, "via": ["request", "request-promise-native", "tough-cookie"], "effects": [], "range": "0.1.20 || 0.2.0 - 16.5.3", "nodes": ["node_modules/jsdom"], "fixAvailable": {"name": "jsdom", "version": "25.0.1", "isSemVerMajor": true}}, "mockery": {"name": "mockery", "severity": "critical", "isDirect": true, "via": [{"source": 1092753, "name": "mockery", "dependency": "mockery", "title": "mockery is vulnerable to prototype pollution", "url": "https://github.com/advisories/GHSA-gmwp-3pwc-3j3g", "severity": "critical", "cwe": ["CWE-1321"], "cvss": {"score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}, "range": "<=2.1.0"}], "effects": [], "range": "*", "nodes": ["node_modules/mockery"], "fixAvailable": false}, "oojs-ui": {"name": "oojs-ui", "severity": "moderate", "isDirect": true, "via": ["jquery"], "effects": [], "range": "0.11.0 - 0.38.1", "nodes": ["node_modules/oojs-ui"], "fixAvailable": {"name": "oojs-ui", "version": "0.51.1", "isSemVerMajor": true}}, "request": {"name": "request", "severity": "moderate", "isDirect": false, "via": [{"source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}, "tough-cookie"], "effects": ["jsdom", "request-promise-core", "request-promise-native"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": {"name": "jsdom", "version": "25.0.1", "isSemVerMajor": true}}, "request-promise-core": {"name": "request-promise-core", "severity": "moderate", "isDirect": false, "via": ["request"], "effects": ["request-promise-native"], "range": "*", "nodes": ["node_modules/request-promise-core"], "fixAvailable": {"name": "jsdom", "version": "25.0.1", "isSemVerMajor": true}}, "request-promise-native": {"name": "request-promise-native", "severity": "moderate", "isDirect": false, "via": ["request", "request-promise-core", "tough-cookie"], "effects": ["jsdom"], "range": ">=1.0.0", "nodes": ["node_modules/request-promise-native"], "fixAvailable": {"name": "jsdom", "version": "25.0.1", "isSemVerMajor": true}}, "tough-cookie": {"name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [{"source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"}, "range": "<4.1.3"}], "effects": ["jsdom", "request", "request-promise-native"], "range": "<4.1.3", "nodes": ["node_modules/tough-cookie"], "fixAvailable": {"name": "jsdom", "version": "25.0.1", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 7, "high": 1, "critical": 1, "total": 9}, "dependencies": {"prod": 1, "dev": 671, "optional": 1, "peer": 1, "peerOptional": 0, "total": 671}}}} $ /usr/bin/npm audit fix --only=dev --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142 npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 --- stdout --- added 671 packages, and audited 672 packages in 7s 96 packages are looking for funding run `npm fund` for details # npm audit report jpeg-js <=0.4.3 Severity: high Infinite loop in jpeg-js - https://github.com/advisories/GHSA-xvf7-4v9q-58w6 Uncontrolled resource consumption in jpeg-js - https://github.com/advisories/GHSA-w7q9-p3jq-fmhm fix available via `npm audit fix --force` Will install jpeg-js@0.4.4, which is a breaking change node_modules/jpeg-js jquery <=3.4.1 Severity: moderate Potential XSS vulnerability in jQuery - https://github.com/advisories/GHSA-jpcq-cgw6-v4j6 Potential XSS vulnerability in jQuery - https://github.com/advisories/GHSA-gxr4-xjj5-5px2 fix available via `npm audit fix --force` Will install oojs-ui@0.51.1, which is a breaking change node_modules/oojs-ui/node_modules/jquery oojs-ui 0.11.0 - 0.38.1 Depends on vulnerable versions of jquery node_modules/oojs-ui mockery * Severity: critical mockery is vulnerable to prototype pollution - https://github.com/advisories/GHSA-gmwp-3pwc-3j3g No fix available node_modules/mockery request * Severity: moderate Server-Side Request Forgery in Request - https://github.com/advisories/GHSA-p8p7-x288-28g6 Depends on vulnerable versions of tough-cookie fix available via `npm audit fix --force` Will install jsdom@25.0.1, which is a breaking change node_modules/request jsdom 0.1.20 || 0.2.0 - 16.5.3 Depends on vulnerable versions of request Depends on vulnerable versions of request-promise-native Depends on vulnerable versions of tough-cookie node_modules/jsdom request-promise-core * Depends on vulnerable versions of request node_modules/request-promise-core request-promise-native >=1.0.0 Depends on vulnerable versions of request Depends on vulnerable versions of request-promise-core Depends on vulnerable versions of tough-cookie node_modules/request-promise-native tough-cookie <4.1.3 Severity: moderate tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3 fix available via `npm audit fix --force` Will install jsdom@25.0.1, which is a breaking change node_modules/tough-cookie 9 vulnerabilities (7 moderate, 1 high, 1 critical) To address all issues possible (including breaking changes), run: npm audit fix --force Some issues need review, and may require choosing a different dependency. --- end --- Verifying that tests still pass $ /usr/bin/npm ci --- stderr --- npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142 npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 --- stdout --- > wikibase-media-info@0.1.0 install > rm -rf node_modules/mediawiki && git clone -q --depth=1 https://gerrit.wikimedia.org/r/mediawiki/core node_modules/mediawiki added 671 packages, and audited 672 packages in 18s 96 packages are looking for funding run `npm fund` for details 9 vulnerabilities (7 moderate, 1 high, 1 critical) To address all issues possible (including breaking changes), run: npm audit fix --force Some issues need review, and may require choosing a different dependency. Run `npm audit` for details. --- end --- $ /usr/bin/npm test --- stderr --- jQuery.Deferred exception: navigator is not defined ReferenceError: navigator is not defined at OO.ui.WindowManager.togglePreventIosScrolling (/src/repo/node_modules/oojs-ui/dist/oojs-ui.js:24215:37) at /src/repo/node_modules/oojs-ui/dist/oojs-ui.js:23931:15 at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3489:29) at Window.process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12) at Timeout.callback [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:665:19) at listOnTimeout (node:internal/timers:569:17) at process.processTimers (node:internal/timers:512:7) undefined --- stdout --- > wikibase-media-info@0.1.0 test > grunt test && npm run test:unit Running "eslint:all" (eslint) task /src/repo/resources/README/1.ExampleComponentWidget.js 43:15 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/README/2.TemplatingFeatures.js 26:15 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/README/3.BestPractices.js 24:15 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/UlsWidget.js 18:44 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 65:14 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/base/ComponentWidget.js 13:15 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 74:22 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 101:24 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 106:17 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 613:27 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 625:27 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 637:27 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 649:27 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 661:27 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/filepage/CaptionsPanel.js 77:15 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 406:36 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 442:22 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 458:2 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 641:7 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 653:6 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 670:25 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 682:25 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 760:4 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/filepage/StatementPanel.js 27:1 warning The type 'dataLoadedReadOnly' is undefined jsdoc/no-undefined-types 46:46 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 243:1 warning The type 'widgetRemoved' is undefined jsdoc/no-undefined-types /src/repo/resources/serialization/MediaInfoDeserializer.js 10:1 warning The type 'SERIALIZER' is undefined jsdoc/no-undefined-types /src/repo/resources/statements/ItemWidget.js 44:16 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 75:31 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 76:33 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 82:33 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 83:46 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 320:35 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 334:38 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/statements/SnakListWidget.js 19:16 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 33:35 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 39:46 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/statements/SnakWidget.js 70:33 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 71:46 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/statements/StatementWidget.js 191:1 warning The type 'change' is undefined jsdoc/no-undefined-types 525:7 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 589:6 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/statements/inputs/EntityAutocompleteInputWidget.js 38:50 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 49:3 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 56:3 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/statements/inputs/EntityInputWidget.js 22:50 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/statements/inputs/MultiTypeInputWrapperWidget.js 31:16 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign /src/repo/resources/statements/inputs/TimeInputWidget.js 68:33 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign 133:10 warning ES2015 'Object.assign' method is forbidden es-x/no-object-assign ✖ 49 problems (0 errors, 49 warnings) Running "banana:WikibaseMediaInfo" (banana) task >> 1 message directory checked. Running "stylelint:all" (stylelint) task >> Linted 19 files without errors Done. > wikibase-media-info@0.1.0 test:unit > qunit "tests/node-qunit/**/*.test.js" TAP version 13 ok 1 ExampleComponentWidget > Edit mode enabled ok 2 ExampleComponentWidget > Edit mode disabled ok 3 TemplatingFeatures > Toggle edit mode ok 4 BestPractices > Valid data roundtrip ok 5 Setting other data triggers a change event ok 6 Setting same data does not trigger a change event ok 7 ComponentWidget > Widget renders with default state ok 8 ComponentWidget > Widget rerenders with new state ok 9 ComponentWidget > Widget renders with changed template data ok 10 ComponentWidget > Widget renders with async changed template data ok 11 ComponentWidget > Widget will not rerender on state change if stopped ok 12 ComponentWidget > Widget will only rerender once when multiple state changes happen during previous render ok 13 DOMLessGroupWidget > Test item is added to group ok 14 DOMLessGroupWidget > Test item DOM is not changed after inserting into group ok 15 CaptionsPanel > When pre-existing statements are present on page > initialization works without errors ok 16 CaptionsPanel > When pre-existing statements are present on page > user languages are added to DOM ok 17 LicenseDialogWidget > constructor ok 18 LicenseDialogWidget > User is not logged in and has not accepted license > getLicenseConfirmation returns zero ok 19 LicenseDialogWidget > User is not logged in and has not accepted license > storeLicenseConfirmation sets value of the appropriate key to 1 ok 20 LicenseDialogWidget > User is logged in and has not accepted license > getLicenseConfirmation returns zero ok 21 LicenseDialogWidget > User is logged in and has not accepted license > storeLicenseConfirmation saves to user preferences ok 22 ProtectionMsgWidget > constructor ok 23 ProtectionMsgWidget > Page is not protected > Protection message widget does not display ok 24 ProtectionMsgWidget > Page is protected > Protection message widget displays ok 25 StatementPanel > When no pre-existing statements are present on page > constructor ok 26 StatementPanel > When no pre-existing statements are present on page > isEditable() is false by default ok 27 StatementPanel > When no pre-existing statements are present on page > User is not logged in and has not accepted license > LicenseDialogWidget is displayed when user attempts to edit ok 28 mediainfo.template.mustache+dom > Render mustache templates ok 29 mediainfo.template.mustache+dom > Mustache templates with HTMLElement > Nodes are parsed into template ok 30 mediainfo.template.mustache+dom > Mustache templates with HTMLElement > Events triggered from template-based HTML propagate to original element handlers ok 31 mediainfo.template.mustache+dom > Mustache templates with HTMLElement > Changes to node later on propagate into DOM rendered by template ok 32 mediainfo.template.mustache+dom > Mustache templates with jQuery nodes > Nodes are parsed into template ok 33 mediainfo.template.mustache+dom > Mustache templates with jQuery nodes > Events triggered from template-based HTML propagate to original element handlers ok 34 mediainfo.template.mustache+dom > Mustache templates with jQuery nodes > Changes to node later on propagate into DOM rendered by template ok 35 mediainfo.template.mustache+dom > Mustache templates with OOUI widgets > Nodes are parsed into template ok 36 mediainfo.template.mustache+dom > Mustache templates with OOUI widgets > Events triggered from template-based HTML propagate to original element handlers ok 37 mediainfo.template.mustache+dom > Mustache templates with OOUI widgets > Changes to node later on propagate into DOM rendered by template ok 38 AddPropertyWidget > Adding property ids changes the filters ok 39 AddPropertyWidget > Property input widget & remove are only visible in edit mode ok 40 ItemWidget > Valid data roundtrip ok 41 ItemWidget > Setting other data triggers a change event ok 42 ItemWidget > Setting same data does not trigger a change event ok 43 ItemWidget > Widget updates snak widgets with new data ok 44 ItemWidget > Test enabling edit state ok 45 ItemWidget > Test disabling edit state ok 46 ItemWidget > Toggling item prominence changes item rank ok 47 ItemWidget > Valid data roundtrip with somevalue snak ok 48 ItemWidget > Valid data roundtrip with novalue snak ok 49 LinkNoticeWidget > constructor ok 50 LinkNoticeWidget > User is not logged in. > Widget should be visible if not previously dismissed ok 51 LinkNoticeWidget > User is not logged in. > Widget should not be visible if previously dismissed ok 52 LinkNoticeWidget > User is not logged in. > dismiss method should store data in local storage for anon users ok 53 LinkNoticeWidget > User is not logged in. > dismiss method should dismiss the widget ok 54 LinkNoticeWidget > User is logged-in > Widget should be visible if not previously dismissed ok 55 LinkNoticeWidget > User is logged-in > Widget should not be visible if previously dismissed ok 56 LinkNoticeWidget > User is logged-in > dismiss method should store data in user preferences for logged in users ok 57 SnakListWidget > Valid data roundtrip ok 58 SnakListWidget > Setting other data triggers a change event ok 59 SnakListWidget > Setting same data does not trigger a change event ok 60 SnakListWidget > createWidget() returns a new SnakWidget ok 61 SnakListWidget > createWidget sets SnakWidget data when snak is provided ok 62 SnakListWidget > addWidget creates a new SnakWidget every time it is called ok 63 SnakListWidget > Valid data roundtrip with somevalue snak ok 64 SnakListWidget > Valid data roundtrip with novalue snak ok 65 SnakWidget > Valid data roundtrip ok 66 SnakWidget > Setting other data triggers a change event ok 67 SnakWidget > Setting same data does not trigger a change event ok 68 SnakWidget > setData() sets property ID in the PropertyInput widget ok 69 SnakWidget > setData() sets value data in the valueInput widget ok 70 SnakWidget > Property labels are available after API calls complete ok 71 SnakWidget > Test enabling edit state ok 72 SnakWidget > Test disabling edit state ok 73 SnakWidget > Valid data roundtrip with somevalue snak ok 74 SnakWidget > Valid data roundtrip with novalue snak ok 75 StatementWidget > Valid data roundtrip ok 76 StatementWidget > Setting other data triggers a change event ok 77 StatementWidget > Setting same data does not trigger a change event ok 78 StatementWidget > Test detection of changes ok 79 StatementWidget > Test enabling edit state ok 80 StatementWidget > Test disabling edit state ok 81 StatementWidget > Widget can handle multiple errors ok 82 EntityInputWidget > Valid data roundtrip ok 83 EntityInputWidget > Setting other data triggers a change event ok 84 EntityInputWidget > Setting same data does not trigger a change event ok 85 GlobeCoordinateInputWidget > Valid data roundtrip ok 86 GlobeCoordinateInputWidget > Setting other data triggers a change event ok 87 GlobeCoordinateInputWidget > Setting same data does not trigger a change event ok 88 MonolingualText > Valid data roundtrip ok 89 MonolingualText > Setting other data triggers a change event ok 90 MonolingualText > Setting same data does not trigger a change event ok 91 MonolingualText > Widget has no button in qualifier mode ok 92 MonolingualText > Widget has button in statement mode ok 93 MultiTypeInputWrapperWidget > Valid data roundtrip (wikibase-entityid) ok 94 MultiTypeInputWrapperWidget > Valid data roundtrip (string) ok 95 MultiTypeInputWrapperWidget > Valid data roundtrip (monolingualtext) ok 96 MultiTypeInputWrapperWidget > Valid data roundtrip (quantity) ok 97 MultiTypeInputWrapperWidget > Valid data roundtrip (time) ok 98 MultiTypeInputWrapperWidget > Valid data roundtrip (globecoordinate) ok 99 MultiTypeInputWrapperWidget > Valid data roundtrip (unsupported) ok 100 MultiTypeInputWrapperWidget > Setting other data triggers a change event ok 101 MultiTypeInputWrapperWidget > Setting same data does not trigger a change event ok 102 MultiTypeInputWrapperWidget > Changing to same input type leaves existing value unaltered ok 103 MultiTypeInputWrapperWidget > Changing to other input type (and back) wipes out existing data ok 104 MultiTypeInputWrapperWidget > Widget creates the correct input type ok 105 MultiTypeInputWrapperWidget > add event is fired when child input emits add ok 106 MultiTypeInputWrapperWidget > setErrors adds MessageWidget to UI and flags string input as invalid ok 107 MultiTypeInputWrapperWidget > Widget can handle multiple errors ok 108 MultiTypeInputWrapperWidget > Setting snak type to somevalue changes input to disabled string input ok 109 MultiTypeInputWrapperWidget > Setting snak type to novalue changes input to disabled string input ok 110 MultiTypeInputWrapperWidget > Setting snak type to value changes input to original type ok 111 MultiTypeInputWrapperWidget > Datatype can be set explicitly ok 112 QuantityInputWidget > Valid data roundtrip ok 113 QuantityInputWidget > Setting other data triggers a change event ok 114 QuantityInputWidget > Setting same data does not trigger a change event ok 115 QuantityInputWidget > Widget has no button in qualifier mode ok 116 QuantityInputWidget > Widget has button in statement mode ok 117 QuantityInputWidget > Widget displays no options by default ok 118 QuantityInputWidget > Widget displays button to add unit when focused ok 119 QuantityInputWidget > Widget displays custom unit when it has one ok 120 StringInputWidget > Valid data roundtrip ok 121 StringInputWidget > Setting other data triggers a change event ok 122 StringInputWidget > Setting same data does not trigger a change event ok 123 StringInputWidget > Widget has no button in qualifier mode ok 124 StringInputWidget > Widget has button in statement mode ok 125 TimeInputWidget > Valid data roundtrip ok 126 TimeInputWidget > Setting other data triggers a change event ok 127 TimeInputWidget > Setting same data does not trigger a change event ok 128 TimeInputWidget > Widget has no button in qualifier mode ok 129 TimeInputWidget > Widget has button in statement mode 1..129 # pass 129 # skip 0 # todo 0 # fail 0 --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- build: Updating mediawiki/mediawiki-codesniffer to 45.0.0 The following sniffs are failing and were disabled: * MediaWiki.Usage.NullableType.ExplicitNullableTypes $ git add . --- stdout --- --- end --- $ git commit -F /tmp/tmpmcy9fdb1 --- stdout --- [REL1_43 68bd880] build: Updating mediawiki/mediawiki-codesniffer to 45.0.0 2 files changed, 2 insertions(+), 1 deletion(-) --- end --- $ git format-patch HEAD~1 --stdout --- stdout --- From 68bd880f82f509b9fca9aab2217b76bc1ebfe75e Mon Sep 17 00:00:00 2001 From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org> Date: Sun, 10 Nov 2024 17:19:52 +0000 Subject: [PATCH] build: Updating mediawiki/mediawiki-codesniffer to 45.0.0 The following sniffs are failing and were disabled: * MediaWiki.Usage.NullableType.ExplicitNullableTypes Change-Id: Ic2d4d9a33a6caef9ec9c3826eb9e4219d0d2e877 --- .phpcs.xml | 1 + composer.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.phpcs.xml b/.phpcs.xml index 4dc1d16..ca7501d 100644 --- a/.phpcs.xml +++ b/.phpcs.xml @@ -4,6 +4,7 @@ <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate" /> <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" /> <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" /> + <exclude name="MediaWiki.Usage.NullableType.ExplicitNullableTypes" /> </rule> <file>.</file> diff --git a/composer.json b/composer.json index 587e9fb..bd18f7e 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,7 @@ "serialization/serialization": "~3.2|~4.0" }, "require-dev": { - "mediawiki/mediawiki-codesniffer": "44.0.0", + "mediawiki/mediawiki-codesniffer": "45.0.0", "mediawiki/mediawiki-phan-config": "0.14.0", "mediawiki/minus-x": "1.1.3", "php-parallel-lint/php-console-highlighter": "1.0.0", -- 2.39.2 --- end ---