This run took 130 seconds.
From 5fc433c9ed9a6be85ca861ad2156a330f70bbb17 Mon Sep 17 00:00:00 2001 From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org> Date: Wed, 10 Sep 2025 02:07:41 +0000 Subject: [PATCH] build: Updating mediawiki/mediawiki-codesniffer to 48.0.0 Change-Id: I0fce8a8dc8fc6993fda785d5e368ffe492dbad57 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index fb7f2bd..4284a94 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "require-dev": { - "mediawiki/mediawiki-codesniffer": "47.0.0", + "mediawiki/mediawiki-codesniffer": "48.0.0", "mediawiki/mediawiki-phan-config": "0.17.0", "mediawiki/minus-x": "1.1.3", "php-parallel-lint/php-console-highlighter": "1.0.0", -- 2.39.5
$ date --- stdout --- Wed Sep 10 02:05:40 UTC 2025 --- end --- $ git clone file:///srv/git/mediawiki-extensions-FileImporter.git repo --depth=1 -b master --- stderr --- Cloning into 'repo'... --- stdout --- --- end --- $ git config user.name libraryupgrader --- stdout --- --- end --- $ git config user.email tools.libraryupgrader@tools.wmflabs.org --- stdout --- --- end --- $ git submodule update --init --- stdout --- --- end --- $ grr init --- stdout --- Installed commit-msg hook. --- end --- $ git show-ref refs/heads/master --- stdout --- 3d748194464593788752d2d4ae5c7de13ac2db00 refs/heads/master --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "form-data": { "name": "form-data", "severity": "critical", "isDirect": false, "via": [ { "source": 1106509, "name": "form-data", "dependency": "form-data", "title": "form-data uses unsafe random function in form-data for choosing boundary", "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4", "severity": "critical", "cwe": [ "CWE-330" ], "cvss": { "score": 0, "vectorString": null }, "range": "<2.5.4" } ], "effects": [ "request" ], "range": "<2.5.4", "nodes": [ "node_modules/request/node_modules/form-data" ], "fixAvailable": false }, "mwbot": { "name": "mwbot", "severity": "moderate", "isDirect": false, "via": [ "request" ], "effects": [ "wdio-mediawiki" ], "range": ">=0.1.6", "nodes": [ "node_modules/mwbot" ], "fixAvailable": false }, "request": { "name": "request", "severity": "critical", "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" }, "form-data", "tough-cookie" ], "effects": [ "mwbot" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": false }, "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": [ "request" ], "range": "<4.1.3", "nodes": [ "node_modules/request/node_modules/tough-cookie" ], "fixAvailable": false }, "wdio-mediawiki": { "name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": [ "mwbot" ], "effects": [], "range": "*", "nodes": [ "node_modules/wdio-mediawiki" ], "fixAvailable": false } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 3, "high": 0, "critical": 2, "total": 5 }, "dependencies": { "prod": 1, "dev": 1539, "optional": 71, "peer": 47, "peerOptional": 0, "total": 1539 } } } --- 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: 38 installs, 0 updates, 0 removals - Locking composer/pcre (3.3.2) - Locking composer/semver (3.4.3) - Locking composer/spdx-licenses (1.5.9) - Locking composer/xdebug-handler (3.0.5) - Locking dealerdirect/phpcodesniffer-composer-installer (v1.1.2) - Locking doctrine/deprecations (1.1.5) - Locking felixfbecker/advanced-json-rpc (v3.2.1) - Locking mediawiki/mediawiki-codesniffer (v47.0.0) - Locking mediawiki/mediawiki-phan-config (0.17.0) - Locking mediawiki/minus-x (1.1.3) - Locking mediawiki/phan-taint-check-plugin (7.0.0) - Locking microsoft/tolerant-php-parser (v0.1.2) - Locking netresearch/jsonmapper (v4.5.0) - Locking phan/phan (5.5.1) - Locking php-parallel-lint/php-console-color (v1.0.1) - Locking php-parallel-lint/php-console-highlighter (v1.0.0) - Locking php-parallel-lint/php-parallel-lint (v1.4.0) - Locking phpcsstandards/phpcsextra (1.2.1) - Locking phpcsstandards/phpcsutils (1.0.12) - Locking phpdocumentor/reflection-common (2.2.0) - Locking phpdocumentor/reflection-docblock (5.6.3) - Locking phpdocumentor/type-resolver (1.10.0) - Locking phpstan/phpdoc-parser (2.3.0) - Locking psr/container (2.0.2) - Locking psr/log (3.0.2) - Locking sabre/event (5.1.7) - Locking squizlabs/php_codesniffer (3.12.2) - Locking symfony/console (v7.3.3) - Locking symfony/deprecation-contracts (v3.6.0) - Locking symfony/polyfill-ctype (v1.33.0) - Locking symfony/polyfill-intl-grapheme (v1.33.0) - Locking symfony/polyfill-intl-normalizer (v1.33.0) - Locking symfony/polyfill-mbstring (v1.33.0) - Locking symfony/polyfill-php80 (v1.33.0) - Locking symfony/service-contracts (v3.6.0) - Locking symfony/string (v7.3.3) - 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: 38 installs, 0 updates, 0 removals 0 [>---------------------------] 0 [->--------------------------] - Installing squizlabs/php_codesniffer (3.12.2): Extracting archive - Installing dealerdirect/phpcodesniffer-composer-installer (v1.1.2): Extracting archive - Installing composer/pcre (3.3.2): Extracting archive - Installing symfony/polyfill-php80 (v1.33.0): Extracting archive - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive - Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive - Installing symfony/polyfill-mbstring (v1.33.0): Extracting archive - Installing composer/spdx-licenses (1.5.9): Extracting archive - Installing composer/semver (3.4.3): Extracting archive - Installing mediawiki/mediawiki-codesniffer (v47.0.0): Extracting archive - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.33.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.33.0): Extracting archive - Installing symfony/polyfill-ctype (v1.33.0): Extracting archive - Installing symfony/string (v7.3.3): Extracting archive - Installing symfony/deprecation-contracts (v3.6.0): Extracting archive - Installing psr/container (2.0.2): Extracting archive - Installing symfony/service-contracts (v3.6.0): Extracting archive - Installing symfony/console (v7.3.3): Extracting archive - Installing sabre/event (5.1.7): Extracting archive - Installing netresearch/jsonmapper (v4.5.0): Extracting archive - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive - Installing webmozart/assert (1.11.0): Extracting archive - Installing phpstan/phpdoc-parser (2.3.0): Extracting archive - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive - Installing doctrine/deprecations (1.1.5): Extracting archive - Installing phpdocumentor/type-resolver (1.10.0): Extracting archive - Installing phpdocumentor/reflection-docblock (5.6.3): 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.5.1): Extracting archive - Installing mediawiki/phan-taint-check-plugin (7.0.0): Extracting archive - Installing mediawiki/mediawiki-phan-config (0.17.0): Extracting archive - Installing mediawiki/minus-x (1.1.3): Extracting archive - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive 0/36 [>---------------------------] 0% 20/36 [===============>------------] 55% 29/36 [======================>-----] 80% 36/36 [============================] 100% 1 package suggestions were added by new dependencies, use `composer suggest` to see details. Generating autoload files 17 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils --- end --- Upgrading c:mediawiki/mediawiki-codesniffer from 47.0.0 -> 48.0.0 $ /usr/bin/composer update --- stderr --- Loading composer repositories with package information Updating dependencies Lock file operations: 0 installs, 5 updates, 0 removals - Upgrading composer/semver (3.4.3 => 3.4.4) - Upgrading mediawiki/mediawiki-codesniffer (v47.0.0 => v48.0.0) - Upgrading phpcsstandards/phpcsextra (1.2.1 => 1.4.0) - Upgrading phpcsstandards/phpcsutils (1.0.12 => 1.1.1) - Upgrading squizlabs/php_codesniffer (3.12.2 => 3.13.2) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 0 installs, 5 updates, 0 removals 0 [>---------------------------] 0 [->--------------------------] - Upgrading squizlabs/php_codesniffer (3.12.2 => 3.13.2): Extracting archive - Upgrading phpcsstandards/phpcsutils (1.0.12 => 1.1.1): Extracting archive - Upgrading phpcsstandards/phpcsextra (1.2.1 => 1.4.0): Extracting archive - Upgrading composer/semver (3.4.3 => 3.4.4): Extracting archive - Upgrading mediawiki/mediawiki-codesniffer (v47.0.0 => v48.0.0): Extracting archive 0/5 [>---------------------------] 0% 4/5 [======================>-----] 80% 5/5 [============================] 100% Generating autoload files 17 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 --- $ vendor/bin/phpcs --report=json --- stdout --- {"totals":{"errors":0,"warnings":0,"fixable":0},"files":{"\/src\/repo\/src\/Interfaces\/ImportOperation.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Interfaces\/DetailRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Exceptions\/InvalidArgumentException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Interfaces\/LinkPrefixLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Exceptions\/CommunityPolicyException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Exceptions\/SourceUrlException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/VisualEditorHooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Interfaces\/ImportTitleChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Exceptions\/AbuseFilterWarningsException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Exceptions\/TitleException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Exceptions\/HttpRequestException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Exceptions\/RecoverableTitleException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/FileImporterHooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Exceptions\/DuplicateFilesException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Interfaces\/SourceUrlChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Exceptions\/ImportException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/InfoPage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Interfaces\/PostImportHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/SiteWiring.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/SiteTableSourceUrlChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/WikitextEditor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/HookRunner.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/ChangeFileInfoForm.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/RecoverableTitleExceptionPage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/TextRevisionSnippet.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/ChangeFileNameForm.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Exceptions\/LocalizedImportException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/SourceSiteLocator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/Wikitext\/LocalizedMediaWikiNamespaceLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/HelpBanner.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/UploadBase\/UploadBaseFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/Wikitext\/WikiLinkParser.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/RemoteApiActionExecutor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/InputFormPage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/WikidataTemplateLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/SiteTableSiteLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/ImportSuccessSnippet.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/FileInfoDiffPage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/MediaWikiSourceUrlParser.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/MediaWikiSourceUrlNormalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/ImportIdentityFormSnippet.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/SuggestManualTemplateAction.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/FileDescriptionPageValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/Wikitext\/WikiLinkPrefixer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/FileTextRevisionValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/AllowedDomainsFileUrlChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/Wikitext\/WikiLinkCleaner.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/HttpApiLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/CategoriesSnippet.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/Wikitext\/NamespaceNameLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/DuplicateFilesErrorPage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/DuplicateFileRevisionChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Data\/SourceUrl.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/CommonsHelperConfigRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Exceptions\/RecoverableTitleExceptionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/NullRevisionCreator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Exceptions\/AbuseFilterWarningsExceptionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/NullPrefixLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/ErrorPage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/SpecialPageHtmlFragment.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/SourceSite.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Exceptions\/LocalizedImportExceptionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Data\/FileRevisions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/FileImporterUtilsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Exceptions\/ImportExceptionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/FileImporterUtils.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Data\/TextRevision.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/FileImporterHooksTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/MediaWiki\/AnyMediaWikiFileUrlCheckerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Exceptions\/HttpRequestExceptionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Exceptions\/DuplicateFilesExceptionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/MediaWiki\/AllowedDomainsFileUrlCheckerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/Http\/HttpRequestExecutor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/Wikitext\/CommonsHelperConfigParser.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/UploadBase\/ValidatingUploadBase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Data\/ImportDetails.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Services\/Wikitext\/WikiLinkParserTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/ImportPlanFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/SourceWikiCleanupSnippet.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Data\/FileRevision.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Data\/TextRevisionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Data\/TextRevisions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/Wikitext\/NamespaceUnlocalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/RemoteSourceFileEditDeleteAction.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Remote\/MediaWiki\/RemoteApiActionExecutorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/Wikitext\/WikiLinkParserFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/SourceSiteTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Services\/Http\/HttpRequestExecutorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/SourceSiteLocatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Data\/FileRevisionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/Wikitext\/WikiLinkParserFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Data\/WikitextConversionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Remote\/MediaWiki\/HttpApiLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/Http\/FileChunkSaver.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Data\/ImportRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Html\/ImportSuccessSnippetTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Services\/Wikitext\/NamespaceUnlocalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Html\/ImportPreviewPage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/FileDescriptionPageValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Services\/DuplicateFileRevisionCheckerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/WikimediaSourceUrlNormalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Operations\/FileRevisionFromRemoteUrl.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/FileImporter.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/InterwikiTablePrefixLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Data\/TextRevisionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Data\/ImportPlan.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/Wikitext\/WikiLinkPrefixerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Remote\/MediaWiki\/CommonsHelperConfigRetrieverTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/ImportPlanValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Data\/ImportRequestTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Remote\/MediaWiki\/RemoteApiRequestExecutorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/SourceUrlNormalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/Wikitext\/WikitextContentCleaner.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/MediaWiki\/SiteTableSiteLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/CentralAuthTokenProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Data\/FileRevisionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/WikidataTemplateLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Remote\/MediaWiki\/SuggestManualTemplateActionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/CategoryExtractor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Remote\/MediaWiki\/SiteTableSourceUrlCheckerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/HookRunnerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/SuccessCache.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Data\/ImportOperations.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/MediaWiki\/FileImporterUploadBaseTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/Http\/FileChunkSaverTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/Importer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Data\/ImportOperationsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Html\/FileInfoDiffPageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/ApiDetailRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/SpecialImportFileDoImportTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/AnyMediaWikiFileUrlChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/CategoryExtractorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/ServiceWiring.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/WikimediaSourceUrlNormalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Data\/SourceUrlTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Html\/SourceWikiCleanupSnippetTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/NullRevisionCreatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Remote\/MediaWiki\/RemoteSourceFileEditDeleteActionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Data\/ImportDetailsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Html\/ImportPreviewPageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Operations\/FileRevisionFromRemoteUrlTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Remote\/MediaWiki\/InterwikiTablePrefixLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/.phan\/config.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Operations\/TextRevisionFromTextRevision.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Services\/WikiRevisionFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Html\/CategoriesSnippetTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Remote\/MediaWiki\/RemoteApiImportTitleCheckerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/Services\/Wikitext\/WikitextContentCleanerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/ImporterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Html\/ChangeFileNameFormTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/UploadBase\/ValidatingUploadBaseTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/SpecialImportFileIntegrationTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/ImportPlanValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Data\/WikitextConversions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/SpecialImportFile.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/Wikitext\/CommonsHelperConfigParserTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Operations\/TextRevisionFromTextRevisionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/FileTextRevisionValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Html\/ChangeFileInfoFormTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Data\/ImportPlanTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/RemoteApiRequestExecutor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Remote\/MediaWiki\/RemoteApiImportTitleChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Remote\/MediaWiki\/ApiDetailRetrieverTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Services\/ImporterComponentTest.php":{"errors":0,"warnings":0,"messages":[]}}} --- 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 17 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- --- end --- $ /usr/bin/composer test --- stderr --- > parallel-lint . --exclude vendor --exclude node_modules > phpcs -sp --cache > minus-x check . --- stdout --- PHP 8.2.28 | 10 parallel jobs ............................................................ 60/164 ( 36%) ............................................................ 120/164 ( 73%) ............................................ 164/164 (100%) Checked 164 files in 0.6 seconds No syntax error found ....................................................... 55 / 55 (100%) Time: 362ms; Memory: 12MB MinusX ====== Processing /src/repo... ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ................................... All good! --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "form-data": { "name": "form-data", "severity": "critical", "isDirect": false, "via": [ { "source": 1106509, "name": "form-data", "dependency": "form-data", "title": "form-data uses unsafe random function in form-data for choosing boundary", "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4", "severity": "critical", "cwe": [ "CWE-330" ], "cvss": { "score": 0, "vectorString": null }, "range": "<2.5.4" } ], "effects": [ "request" ], "range": "<2.5.4", "nodes": [ "node_modules/request/node_modules/form-data" ], "fixAvailable": false }, "mwbot": { "name": "mwbot", "severity": "moderate", "isDirect": false, "via": [ "request" ], "effects": [ "wdio-mediawiki" ], "range": ">=0.1.6", "nodes": [ "node_modules/mwbot" ], "fixAvailable": false }, "request": { "name": "request", "severity": "critical", "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" }, "form-data", "tough-cookie" ], "effects": [ "mwbot" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": false }, "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": [ "request" ], "range": "<4.1.3", "nodes": [ "node_modules/request/node_modules/tough-cookie" ], "fixAvailable": false }, "wdio-mediawiki": { "name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": [ "mwbot" ], "effects": [], "range": "*", "nodes": [ "node_modules/wdio-mediawiki" ], "fixAvailable": false } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 3, "high": 0, "critical": 2, "total": 5 }, "dependencies": { "prod": 1, "dev": 1539, "optional": 71, "peer": 47, "peerOptional": 0, "total": 1539 } } } --- 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 npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/cli@9.18.4', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/config@9.18.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/globals@9.17.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/logger@9.18.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/repl@9.16.2', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/types@9.16.2', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/utils@9.18.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'webdriver@9.18.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'webdriverio@9.18.4', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/config@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/dot-reporter@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/globals@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/junit-reporter@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/local-runner@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/logger@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/mocha-framework@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/repl@9.4.4', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/reporter@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/runner@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/spec-reporter@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/types@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/utils@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex@2.3.1', npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.3.1', npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'commander@14.0.0', npm WARN EBADENGINE required: { node: '>=20' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'undici@7.10.0', npm WARN EBADENGINE required: { node: '>=20.18.1' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'webdriver@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'webdriverio@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } --- stdout --- { "added": 1539, "removed": 0, "changed": 0, "audited": 1540, "funding": 238, "audit": { "auditReportVersion": 2, "vulnerabilities": { "form-data": { "name": "form-data", "severity": "critical", "isDirect": false, "via": [ { "source": 1106509, "name": "form-data", "dependency": "form-data", "title": "form-data uses unsafe random function in form-data for choosing boundary", "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4", "severity": "critical", "cwe": [ "CWE-330" ], "cvss": { "score": 0, "vectorString": null }, "range": "<2.5.4" } ], "effects": [ "request" ], "range": "<2.5.4", "nodes": [ "node_modules/request/node_modules/form-data" ], "fixAvailable": false }, "mwbot": { "name": "mwbot", "severity": "moderate", "isDirect": false, "via": [ "request" ], "effects": [ "wdio-mediawiki" ], "range": ">=0.1.6", "nodes": [ "node_modules/mwbot" ], "fixAvailable": false }, "request": { "name": "request", "severity": "critical", "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" }, "form-data", "tough-cookie" ], "effects": [ "mwbot" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": false }, "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": [ "request" ], "range": "<4.1.3", "nodes": [ "node_modules/request/node_modules/tough-cookie" ], "fixAvailable": false }, "wdio-mediawiki": { "name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": [ "mwbot" ], "effects": [], "range": "*", "nodes": [ "node_modules/wdio-mediawiki" ], "fixAvailable": false } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 3, "high": 0, "critical": 2, "total": 5 }, "dependencies": { "prod": 1, "dev": 1539, "optional": 71, "peer": 47, "peerOptional": 0, "total": 1539 } } } } --- end --- {"added": 1539, "removed": 0, "changed": 0, "audited": 1540, "funding": 238, "audit": {"auditReportVersion": 2, "vulnerabilities": {"form-data": {"name": "form-data", "severity": "critical", "isDirect": false, "via": [{"source": 1106509, "name": "form-data", "dependency": "form-data", "title": "form-data uses unsafe random function in form-data for choosing boundary", "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4", "severity": "critical", "cwe": ["CWE-330"], "cvss": {"score": 0, "vectorString": null}, "range": "<2.5.4"}], "effects": ["request"], "range": "<2.5.4", "nodes": ["node_modules/request/node_modules/form-data"], "fixAvailable": false}, "mwbot": {"name": "mwbot", "severity": "moderate", "isDirect": false, "via": ["request"], "effects": ["wdio-mediawiki"], "range": ">=0.1.6", "nodes": ["node_modules/mwbot"], "fixAvailable": false}, "request": {"name": "request", "severity": "critical", "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"}, "form-data", "tough-cookie"], "effects": ["mwbot"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": false}, "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": ["request"], "range": "<4.1.3", "nodes": ["node_modules/request/node_modules/tough-cookie"], "fixAvailable": false}, "wdio-mediawiki": {"name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": ["mwbot"], "effects": [], "range": "*", "nodes": ["node_modules/wdio-mediawiki"], "fixAvailable": false}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 3, "high": 0, "critical": 2, "total": 5}, "dependencies": {"prod": 1, "dev": 1539, "optional": 71, "peer": 47, "peerOptional": 0, "total": 1539}}}} $ /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 EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/cli@9.18.4', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/config@9.18.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/globals@9.17.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/logger@9.18.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/repl@9.16.2', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/types@9.16.2', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/utils@9.18.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'webdriver@9.18.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'webdriverio@9.18.4', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/config@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/dot-reporter@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/globals@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/junit-reporter@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/local-runner@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/logger@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/mocha-framework@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/repl@9.4.4', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/reporter@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/runner@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/spec-reporter@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/types@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/utils@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex@2.3.1', npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.3.1', npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'commander@14.0.0', npm WARN EBADENGINE required: { node: '>=20' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'undici@7.10.0', npm WARN EBADENGINE required: { node: '>=20.18.1' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'webdriver@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'webdriverio@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN deprecated osenv@0.1.5: This package is no longer supported. npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm WARN deprecated lodash.isequal@4.5.0: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead npm WARN deprecated 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 npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options. --- stdout --- added 1514 packages, and audited 1515 packages in 27s 238 packages are looking for funding run `npm fund` for details # npm audit report form-data <2.5.4 Severity: critical form-data uses unsafe random function in form-data for choosing boundary - https://github.com/advisories/GHSA-fjxv-7rqg-78g4 No fix available node_modules/request/node_modules/form-data request * Depends on vulnerable versions of form-data Depends on vulnerable versions of tough-cookie node_modules/request mwbot >=0.1.6 Depends on vulnerable versions of request node_modules/mwbot wdio-mediawiki * Depends on vulnerable versions of mwbot node_modules/wdio-mediawiki tough-cookie <4.1.3 Severity: moderate tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3 No fix available node_modules/request/node_modules/tough-cookie 5 vulnerabilities (3 moderate, 2 critical) Some issues need review, and may require choosing a different dependency. --- end --- Verifying that tests still pass $ /usr/bin/npm ci --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/cli@9.18.4', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/config@9.18.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/globals@9.17.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/logger@9.18.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/repl@9.16.2', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/types@9.16.2', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/utils@9.18.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'webdriver@9.18.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'webdriverio@9.18.4', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/config@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/dot-reporter@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/globals@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/junit-reporter@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/local-runner@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/logger@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/mocha-framework@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/repl@9.4.4', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/reporter@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/runner@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/spec-reporter@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/types@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wdio/utils@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex@2.3.1', npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.3.1', npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'commander@14.0.0', npm WARN EBADENGINE required: { node: '>=20' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'undici@7.10.0', npm WARN EBADENGINE required: { node: '>=20.18.1' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'webdriver@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'webdriverio@9.15.0', npm WARN EBADENGINE required: { node: '>=18.20.0' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN deprecated osenv@0.1.5: This package is no longer supported. npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm WARN deprecated lodash.isequal@4.5.0: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead npm WARN deprecated 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 npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options. --- stdout --- added 1514 packages, and audited 1515 packages in 44s 238 packages are looking for funding run `npm fund` for details 5 vulnerabilities (3 moderate, 2 critical) Some issues need review, and may require choosing a different dependency. Run `npm audit` for details. --- end --- $ /usr/bin/npm test --- stderr --- PASS tests/vue/CategoriesList.test.js CategoriesList ✓ renders categories with correct structure and href attributes (49 ms) PASS tests/vue/CategoriesSection.test.js CategoriesSection ✓ displays notice message when there are no categories (101 ms) ✓ does not render category catlinks when there are no categories (48 ms) ✓ renders visible and hidden categories in distinct sections with correct content when present (30 ms) PASS tests/vue/FileTitle.test.js Basic usage ✓ click on title enters editing mode (72 ms) ✓ changing title triggers normalization (74 ms) PASS tests/vue/HelpBanner.test.js Basic usage ✓ close button sets user option (144 ms) Test Suites: 4 passed, 4 total Tests: 7 passed, 7 total Snapshots: 0 total Time: 3.639 s Ran all test suites. --- stdout --- > test > npm run lint && npm run test:unit > lint > grunt test Running "eslint:all" (eslint) task /src/repo/modules/components/HelpBanner.vue 13:5 warning 'v-html' directive can lead to XSS attack vue/no-v-html /src/repo/modules/components/ImportFile.vue 4:10 warning 'v-html' directive can lead to XSS attack vue/no-v-html 39:10 warning 'v-html' directive can lead to XSS attack vue/no-v-html 67:4 warning 'v-html' directive can lead to XSS attack vue/no-v-html 165:1 warning This line has a length of 123. Maximum allowed is 100 max-len 334:4 warning Prefer .then to .done no-jquery/no-done-fail 334:4 warning Prefer .then to .fail no-jquery/no-done-fail ✖ 7 problems (0 errors, 7 warnings) Running "stylelint:all" (stylelint) task >> Linted 7 files without errors Running "banana:FileImporter" (banana) task >> 1 message directory checked. Done. > test:unit > jest console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 15 | 16 | it( 'close button sets user option', async () => { > 17 | const wrapper = mount( HelpBanner, { | ^ 18 | props: { 19 | contentHtml: 'Foo' 20 | } at validator (node_modules/@wikimedia/codex/dist/codex.cjs:1:94013) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5922:7) at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3922:13) at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1703:19) at mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8415:18) at Object.<anonymous> (tests/vue/HelpBanner.test.js:17:19) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage type="notice" dismiss-button-label="fileimporter-help-banner-close-tooltip" onUserDismissed=fn<bound dismissHelp> > at <HelpBanner contentHtml="Foo" ref="VTU_COMPONENT" > at <VTUROOT> 15 | 16 | it( 'close button sets user option', async () => { > 17 | const wrapper = mount( HelpBanner, { | ^ 18 | props: { 19 | contentHtml: 'Foo' 20 | } at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at render (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5922:7) at mount (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3922:13) at Object.app.mount (node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js:1703:19) at mount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8415:18) at Object.<anonymous> (tests/vue/HelpBanner.test.js:17:19) -----------------------|---------|----------|---------|---------|------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s -----------------------|---------|----------|---------|---------|------------------- All files | 97.53 | 85.71 | 92.3 | 97.5 | CategoriesList.vue | 100 | 50 | 100 | 100 | 41 CategoriesSection.vue | 88.88 | 100 | 60 | 88.88 | 59-69 FileTitle.vue | 100 | 88.88 | 100 | 100 | 55-57 HelpBanner.vue | 100 | 75 | 100 | 100 | 41 -----------------------|---------|----------|---------|---------|------------------- --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- build: Updating mediawiki/mediawiki-codesniffer to 48.0.0 $ git add . --- stdout --- --- end --- $ git commit -F /tmp/tmpf5zlafda --- stdout --- [master 5fc433c] build: Updating mediawiki/mediawiki-codesniffer to 48.0.0 1 file changed, 1 insertion(+), 1 deletion(-) --- end --- $ git format-patch HEAD~1 --stdout --- stdout --- From 5fc433c9ed9a6be85ca861ad2156a330f70bbb17 Mon Sep 17 00:00:00 2001 From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org> Date: Wed, 10 Sep 2025 02:07:41 +0000 Subject: [PATCH] build: Updating mediawiki/mediawiki-codesniffer to 48.0.0 Change-Id: I0fce8a8dc8fc6993fda785d5e368ffe492dbad57 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index fb7f2bd..4284a94 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "require-dev": { - "mediawiki/mediawiki-codesniffer": "47.0.0", + "mediawiki/mediawiki-codesniffer": "48.0.0", "mediawiki/mediawiki-phan-config": "0.17.0", "mediawiki/minus-x": "1.1.3", "php-parallel-lint/php-console-highlighter": "1.0.0", -- 2.39.5 --- end ---