From dda7fa62e76f07e07707225890a4d6dee2cbf084 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Tue, 17 Jun 2025 05:26:04 +0000
Subject: [PATCH] build: Updating npm dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* @wikimedia/codex: 2.0.0 → 2.1.0
* brace-expansion: 1.1.11, 2.0.1 → 1.1.12, 2.0.2
* https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
Change-Id: If6855e2b0af4d6caf463bdbf82cbf2c31a5299a3
---
package-lock.json | 51 +++++++++++++++++++++--------------------------
package.json | 2 +-
2 files changed, 24 insertions(+), 29 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 145e3bb..72759ac 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,7 @@
"@babel/preset-env": "7.25.4",
"@vue/test-utils": "2.4.6",
"@vue/vue3-jest": "29.2.6",
- "@wikimedia/codex": "2.0.0",
+ "@wikimedia/codex": "2.1.0",
"@wikimedia/types-wikimedia": "0.4.4",
"api-testing": "1.7.1",
"eslint-config-wikimedia": "0.30.0",
@@ -3252,11 +3252,10 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
@@ -3589,13 +3588,13 @@
}
},
"node_modules/@wikimedia/codex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.0.0.tgz",
- "integrity": "sha512-Bkk2LJunBoAULRAUOBFr8zt5Lbw3J5gQ3af+pnQlzqpuLSUBZC4n4BfS6cSL2kUOCIHymV7KpexmnaqLPiZKDQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.1.0.tgz",
+ "integrity": "sha512-PgiHXbUoNT5SaPZ3dnGLJaCt6kbFMBUgq8LrDyhOXYiW7IqGgjvhaPri3hzKcNGf7jQxVSYFmeJvuC8n1RJ2sg==",
"dev": true,
"dependencies": {
"@floating-ui/vue": "1.0.6",
- "@wikimedia/codex-icons": "2.0.0"
+ "@wikimedia/codex-icons": "2.1.0"
},
"engines": {
"node": ">=20",
@@ -3606,9 +3605,9 @@
}
},
"node_modules/@wikimedia/codex-icons": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.0.0.tgz",
- "integrity": "sha512-oHc/+tq+sTzkpYK3Y/4ky2cl78uP5EqmoPZQGXPH0jufmKDL49CmSZ9hNg51h6p8QrBXzKREPiEzQOhnX1xp7A==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.1.0.tgz",
+ "integrity": "sha512-8MliGXYzOP9f1Dh5xdRNmBtkpoIn7wYW14XxnGH7tghhMmGAXjR0PB8+UyfGoqqZZBJpdca+gxNKCyDRVeBHEA==",
"dev": true,
"engines": {
"node": ">=20",
@@ -4107,11 +4106,10 @@
"license": "ISC"
},
"node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -5074,11 +5072,10 @@
}
},
"node_modules/editorconfig/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
@@ -5557,11 +5554,10 @@
}
},
"node_modules/eslint-plugin-n/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
@@ -8185,11 +8181,10 @@
}
},
"node_modules/js-beautify/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
diff --git a/package.json b/package.json
index 81041b4..32b6197 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,7 @@
"@babel/preset-env": "7.25.4",
"@vue/test-utils": "2.4.6",
"@vue/vue3-jest": "29.2.6",
- "@wikimedia/codex": "2.0.0",
+ "@wikimedia/codex": "2.1.0",
"@wikimedia/types-wikimedia": "0.4.4",
"api-testing": "1.7.1",
"eslint-config-wikimedia": "0.30.0",
--
2.39.5
$ date
--- stdout ---
Tue Jun 17 05:24:38 UTC 2025
--- end ---
$ git clone file:///srv/git/mediawiki-extensions-ReadingLists.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 ---
c608d719377d95ce1b5ae2e1b89eff9619b7507f refs/heads/master
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {
"brace-expansion": {
"name": "brace-expansion",
"severity": "low",
"isDirect": false,
"via": [
{
"source": 1105443,
"name": "brace-expansion",
"dependency": "brace-expansion",
"title": "brace-expansion Regular Expression Denial of Service vulnerability",
"url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw",
"severity": "low",
"cwe": [
"CWE-400"
],
"cvss": {
"score": 3.1,
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"
},
"range": ">=1.0.0 <=1.1.11"
},
{
"source": 1105444,
"name": "brace-expansion",
"dependency": "brace-expansion",
"title": "brace-expansion Regular Expression Denial of Service vulnerability",
"url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw",
"severity": "low",
"cwe": [
"CWE-400"
],
"cvss": {
"score": 3.1,
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"
},
"range": ">=2.0.0 <=2.0.1"
}
],
"effects": [],
"range": "1.0.0 - 1.1.11 || 2.0.0 - 2.0.1",
"nodes": [
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion",
"node_modules/brace-expansion",
"node_modules/editorconfig/node_modules/brace-expansion",
"node_modules/eslint-plugin-n/node_modules/brace-expansion",
"node_modules/js-beautify/node_modules/brace-expansion"
],
"fixAvailable": true
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 1,
"moderate": 0,
"high": 0,
"critical": 0,
"total": 1
},
"dependencies": {
"prod": 1,
"dev": 870,
"optional": 5,
"peer": 139,
"peerOptional": 0,
"total": 870
}
}
}
--- 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.0.0)
- 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.15.1)
- Locking mediawiki/minus-x (1.1.3)
- Locking mediawiki/phan-taint-check-plugin (6.1.0)
- Locking microsoft/tolerant-php-parser (v0.1.2)
- Locking netresearch/jsonmapper (v4.5.0)
- Locking phan/phan (5.4.5)
- Locking php-parallel-lint/php-console-color (v1.0.1)
- Locking php-parallel-lint/php-console-highlighter (v1.0.0)
- Locking php-parallel-lint/php-parallel-lint (v1.4.0)
- Locking phpcsstandards/phpcsextra (1.2.1)
- Locking phpcsstandards/phpcsutils (1.0.12)
- Locking phpdocumentor/reflection-common (2.2.0)
- Locking phpdocumentor/reflection-docblock (5.6.2)
- Locking phpdocumentor/type-resolver (1.10.0)
- Locking phpstan/phpdoc-parser (2.1.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.0)
- Locking symfony/deprecation-contracts (v3.6.0)
- Locking symfony/polyfill-ctype (v1.32.0)
- Locking symfony/polyfill-intl-grapheme (v1.32.0)
- Locking symfony/polyfill-intl-normalizer (v1.32.0)
- Locking symfony/polyfill-mbstring (v1.32.0)
- Locking symfony/polyfill-php80 (v1.32.0)
- Locking symfony/service-contracts (v3.6.0)
- Locking symfony/string (v7.3.0)
- Locking tysonandre/var_representation_polyfill (0.1.3)
- Locking webmozart/assert (1.11.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 38 installs, 0 updates, 0 removals
0 [>---------------------------] 0 [->--------------------------]
- Installing squizlabs/php_codesniffer (3.12.2): Extracting archive
- Installing dealerdirect/phpcodesniffer-composer-installer (v1.0.0): Extracting archive
- Installing composer/pcre (3.3.2): Extracting archive
- Installing symfony/polyfill-php80 (v1.32.0): Extracting archive
- Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive
- Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive
- Installing symfony/polyfill-mbstring (v1.32.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.32.0): Extracting archive
- Installing symfony/polyfill-intl-grapheme (v1.32.0): Extracting archive
- Installing symfony/polyfill-ctype (v1.32.0): Extracting archive
- Installing symfony/string (v7.3.0): 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.0): 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.1.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.2): Extracting archive
- Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
- Installing psr/log (3.0.2): Extracting archive
- Installing composer/xdebug-handler (3.0.5): Extracting archive
- Installing phan/phan (5.4.5): Extracting archive
- Installing mediawiki/phan-taint-check-plugin (6.1.0): Extracting archive
- Installing mediawiki/mediawiki-phan-config (0.15.1): 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
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 n:@wikimedia/codex from 2.0.0 -> 2.1.0
$ /usr/bin/npm install
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex@2.1.0',
npm WARN EBADENGINE required: { npm: '>=10.8.1', node: '>=20' },
npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.1.0',
npm WARN EBADENGINE required: { npm: '>=10.8.1', node: '>=20' },
npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated 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 @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 @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
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 eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---
added 869 packages, and audited 870 packages in 11s
139 packages are looking for funding
run `npm fund` for details
1 low severity vulnerability
To address all issues, run:
npm audit fix
Run `npm audit` for details.
--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json
--- end ---
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex@2.1.0',
npm WARN EBADENGINE required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.1.0',
npm WARN EBADENGINE required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated 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 @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 @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
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 eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---
added 869 packages, and audited 870 packages in 12s
139 packages are looking for funding
run `npm fund` for details
1 low severity vulnerability
To address all issues, run:
npm audit fix
Run `npm audit` for details.
--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS tests/jest/api.test.js
Developer mode
✓ getProjectHost returns en.wikipedia.org (7 ms)
✓ getProjectApiUrl returns en.wikipedia.org (1 ms)
✓ getProjectApiUrl returns fr.wikipedia.org
✓ getProjectApiUrl adds protocol to en.wikipedia.org (1 ms)
fromBase64
✓ Import and Export works (3 ms)
✓ If language codes are passed as projects, these should be converted to project URLs (1 ms)
getThumbnailsAndDescriptions
✓ input pages order is preserved in output (12 ms)
getReadingListPages
✓ Preserves thumbnails across projects where the title is the same (3 ms)
✓ Preserves list item ID across projects and redirects (2 ms)
createEntry
✓ entry is added to list (15 ms)
deleteEntry
✓ entry is removed from list (2 ms)
PASS tests/jest/views/ReadingList.test.js
ReadingList
✓ renders an empty list (48 ms)
✓ renders a list of pages (95 ms)
✓ renders a delete button for each page (14 ms)
Test Suites: 2 passed, 2 total
Tests: 14 passed, 14 total
Snapshots: 2 passed, 2 total
Time: 6.021 s
Ran all test suites.
--- stdout ---
> test
> grunt test && npm run test:unit
Running "eslint:all" (eslint) task
/src/repo/resources/ext.readingLists.special/views/IntermediateState.vue
33:1 warning This line has a length of 123. Maximum allowed is 100 max-len
34:1 warning This line has a length of 2764. Maximum allowed is 100 max-len
✖ 2 problems (0 errors, 2 warnings)
Running "stylelint:all" (stylelint) task
>> Linted 8 files without errors
Running "banana:ReadingLists" (banana) task
>> 2 message directories checked.
Done.
> test:unit
> jest --verbose
--------------------------------|---------|----------|---------|---------|-------------------------------------------------------------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
--------------------------------|---------|----------|---------|---------|-------------------------------------------------------------------------
All files | 26.06 | 16.98 | 31.25 | 24.66 |
ext.readingLists.api | 44.64 | 35.53 | 50.7 | 44.11 |
index.js | 3.03 | 0 | 0 | 3.22 | 9-241
legacy.js | 59.86 | 50.63 | 63.63 | 59.54 | 133-136,162,179-218,273-318,356,366,419-423,426,465-489,508-509,527,541
utils.js | 90.9 | 50 | 100 | 90.9 | 23
ext.readingLists.special | 0 | 0 | 0 | 0 |
initSpecialPage.js | 0 | 0 | 0 | 0 | 1-24
special.js | 0 | 0 | 0 | 0 | 1-39
ext.readingLists.special/views | 11.76 | 6.01 | 12.67 | 9.95 |
IntermediateState.vue | 0 | 100 | 0 | 0 | 2-26
ReadingList.vue | 52.83 | 23.4 | 52.94 | 52.38 | 46-74,89-91,115,123
ReadingListDownload.vue | 0 | 0 | 0 | 0 | 3-146
ReadingListPage.vue | 0 | 0 | 0 | 0 | 6-383
ReadingListSummary.vue | 0 | 0 | 0 | 0 | 3-120
helpers.js | 0 | 0 | 0 | 0 | 1-7
--------------------------------|---------|----------|---------|---------|-------------------------------------------------------------------------
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {
"brace-expansion": {
"name": "brace-expansion",
"severity": "low",
"isDirect": false,
"via": [
{
"source": 1105443,
"name": "brace-expansion",
"dependency": "brace-expansion",
"title": "brace-expansion Regular Expression Denial of Service vulnerability",
"url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw",
"severity": "low",
"cwe": [
"CWE-400"
],
"cvss": {
"score": 3.1,
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"
},
"range": ">=1.0.0 <=1.1.11"
},
{
"source": 1105444,
"name": "brace-expansion",
"dependency": "brace-expansion",
"title": "brace-expansion Regular Expression Denial of Service vulnerability",
"url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw",
"severity": "low",
"cwe": [
"CWE-400"
],
"cvss": {
"score": 3.1,
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"
},
"range": ">=2.0.0 <=2.0.1"
}
],
"effects": [],
"range": "1.0.0 - 1.1.11 || 2.0.0 - 2.0.1",
"nodes": [
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion",
"node_modules/brace-expansion",
"node_modules/editorconfig/node_modules/brace-expansion",
"node_modules/eslint-plugin-n/node_modules/brace-expansion",
"node_modules/js-beautify/node_modules/brace-expansion"
],
"fixAvailable": true
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 1,
"moderate": 0,
"high": 0,
"critical": 0,
"total": 1
},
"dependencies": {
"prod": 1,
"dev": 870,
"optional": 5,
"peer": 139,
"peerOptional": 0,
"total": 870
}
}
}
--- 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: '@wikimedia/codex@2.1.0',
npm WARN EBADENGINE required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.1.0',
npm WARN EBADENGINE required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---
{
"added": 1,
"removed": 0,
"changed": 5,
"audited": 871,
"funding": 139,
"audit": {
"auditReportVersion": 2,
"vulnerabilities": {
"brace-expansion": {
"name": "brace-expansion",
"severity": "low",
"isDirect": false,
"via": [
{
"source": 1105443,
"name": "brace-expansion",
"dependency": "brace-expansion",
"title": "brace-expansion Regular Expression Denial of Service vulnerability",
"url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw",
"severity": "low",
"cwe": [
"CWE-400"
],
"cvss": {
"score": 3.1,
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"
},
"range": ">=1.0.0 <=1.1.11"
},
{
"source": 1105444,
"name": "brace-expansion",
"dependency": "brace-expansion",
"title": "brace-expansion Regular Expression Denial of Service vulnerability",
"url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw",
"severity": "low",
"cwe": [
"CWE-400"
],
"cvss": {
"score": 3.1,
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"
},
"range": ">=2.0.0 <=2.0.1"
}
],
"effects": [],
"range": "1.0.0 - 1.1.11 || 2.0.0 - 2.0.1",
"nodes": [
"",
"",
"",
"",
""
],
"fixAvailable": true
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 1,
"moderate": 0,
"high": 0,
"critical": 0,
"total": 1
},
"dependencies": {
"prod": 1,
"dev": 870,
"optional": 5,
"peer": 139,
"peerOptional": 0,
"total": 870
}
}
}
}
--- end ---
{"added": 1, "removed": 0, "changed": 5, "audited": 871, "funding": 139, "audit": {"auditReportVersion": 2, "vulnerabilities": {"brace-expansion": {"name": "brace-expansion", "severity": "low", "isDirect": false, "via": [{"source": 1105443, "name": "brace-expansion", "dependency": "brace-expansion", "title": "brace-expansion Regular Expression Denial of Service vulnerability", "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw", "severity": "low", "cwe": ["CWE-400"], "cvss": {"score": 3.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=1.0.0 <=1.1.11"}, {"source": 1105444, "name": "brace-expansion", "dependency": "brace-expansion", "title": "brace-expansion Regular Expression Denial of Service vulnerability", "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw", "severity": "low", "cwe": ["CWE-400"], "cvss": {"score": 3.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=2.0.0 <=2.0.1"}], "effects": [], "range": "1.0.0 - 1.1.11 || 2.0.0 - 2.0.1", "nodes": ["", "", "", "", ""], "fixAvailable": true}}, "metadata": {"vulnerabilities": {"info": 0, "low": 1, "moderate": 0, "high": 0, "critical": 0, "total": 1}, "dependencies": {"prod": 1, "dev": 870, "optional": 5, "peer": 139, "peerOptional": 0, "total": 870}}}}
$ /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: '@wikimedia/codex@2.1.0',
npm WARN EBADENGINE required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.1.0',
npm WARN EBADENGINE required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---
changed 5 packages, and audited 870 packages in 3s
139 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex@2.1.0',
npm WARN EBADENGINE required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.1.0',
npm WARN EBADENGINE required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated 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 @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 @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
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 eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---
added 869 packages, and audited 870 packages in 11s
139 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS tests/jest/api.test.js
Developer mode
✓ getProjectHost returns en.wikipedia.org (7 ms)
✓ getProjectApiUrl returns en.wikipedia.org (1 ms)
✓ getProjectApiUrl returns fr.wikipedia.org (1 ms)
✓ getProjectApiUrl adds protocol to en.wikipedia.org
fromBase64
✓ Import and Export works (2 ms)
✓ If language codes are passed as projects, these should be converted to project URLs
getThumbnailsAndDescriptions
✓ input pages order is preserved in output (2 ms)
getReadingListPages
✓ Preserves thumbnails across projects where the title is the same (3 ms)
✓ Preserves list item ID across projects and redirects (1 ms)
createEntry
✓ entry is added to list (1 ms)
deleteEntry
✓ entry is removed from list (1 ms)
PASS tests/jest/views/ReadingList.test.js
ReadingList
✓ renders an empty list (75 ms)
✓ renders a list of pages (84 ms)
✓ renders a delete button for each page (15 ms)
Test Suites: 2 passed, 2 total
Tests: 14 passed, 14 total
Snapshots: 2 passed, 2 total
Time: 4.331 s
Ran all test suites.
--- stdout ---
> test
> grunt test && npm run test:unit
Running "eslint:all" (eslint) task
/src/repo/resources/ext.readingLists.special/views/IntermediateState.vue
33:1 warning This line has a length of 123. Maximum allowed is 100 max-len
34:1 warning This line has a length of 2764. Maximum allowed is 100 max-len
✖ 2 problems (0 errors, 2 warnings)
Running "stylelint:all" (stylelint) task
>> Linted 8 files without errors
Running "banana:ReadingLists" (banana) task
>> 2 message directories checked.
Done.
> test:unit
> jest --verbose
--------------------------------|---------|----------|---------|---------|-------------------------------------------------------------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
--------------------------------|---------|----------|---------|---------|-------------------------------------------------------------------------
All files | 26.06 | 16.98 | 31.25 | 24.66 |
ext.readingLists.api | 44.64 | 35.53 | 50.7 | 44.11 |
index.js | 3.03 | 0 | 0 | 3.22 | 9-241
legacy.js | 59.86 | 50.63 | 63.63 | 59.54 | 133-136,162,179-218,273-318,356,366,419-423,426,465-489,508-509,527,541
utils.js | 90.9 | 50 | 100 | 90.9 | 23
ext.readingLists.special | 0 | 0 | 0 | 0 |
initSpecialPage.js | 0 | 0 | 0 | 0 | 1-24
special.js | 0 | 0 | 0 | 0 | 1-39
ext.readingLists.special/views | 11.76 | 6.01 | 12.67 | 9.95 |
IntermediateState.vue | 0 | 100 | 0 | 0 | 2-26
ReadingList.vue | 52.83 | 23.4 | 52.94 | 52.38 | 46-74,89-91,115,123
ReadingListDownload.vue | 0 | 0 | 0 | 0 | 3-146
ReadingListPage.vue | 0 | 0 | 0 | 0 | 6-383
ReadingListSummary.vue | 0 | 0 | 0 | 0 | 3-120
helpers.js | 0 | 0 | 0 | 0 | 1-7
--------------------------------|---------|----------|---------|---------|-------------------------------------------------------------------------
--- end ---
{"1105443": {"source": 1105443, "name": "brace-expansion", "dependency": "brace-expansion", "title": "brace-expansion Regular Expression Denial of Service vulnerability", "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw", "severity": "low", "cwe": ["CWE-400"], "cvss": {"score": 3.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=1.0.0 <=1.1.11"}, "1105444": {"source": 1105444, "name": "brace-expansion", "dependency": "brace-expansion", "title": "brace-expansion Regular Expression Denial of Service vulnerability", "url": "https://github.com/advisories/GHSA-v6h2-p8h4-qcjw", "severity": "low", "cwe": ["CWE-400"], "cvss": {"score": 3.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L"}, "range": ">=2.0.0 <=2.0.1"}}
Upgrading n:brace-expansion from 1.1.11, 2.0.1 -> 1.1.12, 2.0.2
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json
--- end ---
build: Updating npm dependencies
* @wikimedia/codex: 2.0.0 → 2.1.0
* brace-expansion: 1.1.11, 2.0.1 → 1.1.12, 2.0.2
* https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
$ git add .
--- stdout ---
--- end ---
$ git commit -F /tmp/tmpk92ovwx1
--- stdout ---
[master dda7fa6] build: Updating npm dependencies
2 files changed, 24 insertions(+), 29 deletions(-)
--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From dda7fa62e76f07e07707225890a4d6dee2cbf084 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Tue, 17 Jun 2025 05:26:04 +0000
Subject: [PATCH] build: Updating npm dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* @wikimedia/codex: 2.0.0 → 2.1.0
* brace-expansion: 1.1.11, 2.0.1 → 1.1.12, 2.0.2
* https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
Change-Id: If6855e2b0af4d6caf463bdbf82cbf2c31a5299a3
---
package-lock.json | 51 +++++++++++++++++++++--------------------------
package.json | 2 +-
2 files changed, 24 insertions(+), 29 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 145e3bb..72759ac 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,7 @@
"@babel/preset-env": "7.25.4",
"@vue/test-utils": "2.4.6",
"@vue/vue3-jest": "29.2.6",
- "@wikimedia/codex": "2.0.0",
+ "@wikimedia/codex": "2.1.0",
"@wikimedia/types-wikimedia": "0.4.4",
"api-testing": "1.7.1",
"eslint-config-wikimedia": "0.30.0",
@@ -3252,11 +3252,10 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
@@ -3589,13 +3588,13 @@
}
},
"node_modules/@wikimedia/codex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.0.0.tgz",
- "integrity": "sha512-Bkk2LJunBoAULRAUOBFr8zt5Lbw3J5gQ3af+pnQlzqpuLSUBZC4n4BfS6cSL2kUOCIHymV7KpexmnaqLPiZKDQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.1.0.tgz",
+ "integrity": "sha512-PgiHXbUoNT5SaPZ3dnGLJaCt6kbFMBUgq8LrDyhOXYiW7IqGgjvhaPri3hzKcNGf7jQxVSYFmeJvuC8n1RJ2sg==",
"dev": true,
"dependencies": {
"@floating-ui/vue": "1.0.6",
- "@wikimedia/codex-icons": "2.0.0"
+ "@wikimedia/codex-icons": "2.1.0"
},
"engines": {
"node": ">=20",
@@ -3606,9 +3605,9 @@
}
},
"node_modules/@wikimedia/codex-icons": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.0.0.tgz",
- "integrity": "sha512-oHc/+tq+sTzkpYK3Y/4ky2cl78uP5EqmoPZQGXPH0jufmKDL49CmSZ9hNg51h6p8QrBXzKREPiEzQOhnX1xp7A==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.1.0.tgz",
+ "integrity": "sha512-8MliGXYzOP9f1Dh5xdRNmBtkpoIn7wYW14XxnGH7tghhMmGAXjR0PB8+UyfGoqqZZBJpdca+gxNKCyDRVeBHEA==",
"dev": true,
"engines": {
"node": ">=20",
@@ -4107,11 +4106,10 @@
"license": "ISC"
},
"node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -5074,11 +5072,10 @@
}
},
"node_modules/editorconfig/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
@@ -5557,11 +5554,10 @@
}
},
"node_modules/eslint-plugin-n/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
@@ -8185,11 +8181,10 @@
}
},
"node_modules/js-beautify/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
diff --git a/package.json b/package.json
index 81041b4..32b6197 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,7 @@
"@babel/preset-env": "7.25.4",
"@vue/test-utils": "2.4.6",
"@vue/vue3-jest": "29.2.6",
- "@wikimedia/codex": "2.0.0",
+ "@wikimedia/codex": "2.1.0",
"@wikimedia/types-wikimedia": "0.4.4",
"api-testing": "1.7.1",
"eslint-config-wikimedia": "0.30.0",
--
2.39.5
--- end ---