This run took 111 seconds.
From bca54a5c210cdccd237537c22252d69777e6f14f Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Thu, 5 Mar 2026 23:13:48 +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.3.4 → 2.4.0
* svgo: 4.0.0 → 4.0.1
Change-Id: I11f2accf5d4fca1abc6ca2b1b401b2610ea49646
---
package-lock.json | 37 +++++++++++++++++++------------------
package.json | 4 ++--
2 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index e258a50..4d28276 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,7 @@
"@babel/preset-env": "7.28.5",
"@vue/test-utils": "2.4.6",
"@vue/vue3-jest": "29.2.6",
- "@wikimedia/codex": "2.3.4",
+ "@wikimedia/codex": "2.4.0",
"@wikimedia/types-wikimedia": "0.5.0",
"api-testing": "1.7.3",
"eslint-config-wikimedia": "0.32.3",
@@ -17,7 +17,7 @@
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"stylelint-config-wikimedia": "0.18.0",
- "svgo": "4.0.0",
+ "svgo": "4.0.1",
"typescript": "5.9.3",
"vue": "3.5.13"
}
@@ -3729,13 +3729,13 @@
}
},
"node_modules/@wikimedia/codex": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.3.4.tgz",
- "integrity": "sha512-Dn2R/LwRZedbgT98XyHEm02IAFXDNoLu8AvD6PFNX8Itk3H1Fdn9O4bUZWtcQGy9Y7dkmXnHUFswUH8QlXLn9g==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.4.0.tgz",
+ "integrity": "sha512-j/I1gGbTo6pttjmwyYw9/3CeInK6mpBm2FVfABJk+B1Ylw5DskX+TqeCdKghwxSkxBt0ODbUTBYdFyafk+7ajg==",
"dev": true,
"dependencies": {
"@floating-ui/vue": "1.0.6",
- "@wikimedia/codex-icons": "2.3.4"
+ "@wikimedia/codex-icons": "2.4.0"
},
"engines": {
"node": ">=20.19.1",
@@ -3746,9 +3746,9 @@
}
},
"node_modules/@wikimedia/codex-icons": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.3.4.tgz",
- "integrity": "sha512-eRRYmqIyIbbiaDhiw+qdNNqQ4Npz04k6crSaqyWFS6Y4vh5Lrd3kbjk2uNZK3Tu0h+yz0mQmlMlBEOtb/r3dPw==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.4.0.tgz",
+ "integrity": "sha512-BBtrzLR7r9ShxCMYfsx9XaKJu/peqt5Y/jtvWx3E2G5aL/Y/pIWAkv8NIvU+ztKklbHySLH5jSvVZVKxxvU0Ew==",
"dev": true,
"engines": {
"node": ">=20.19.1",
@@ -9510,11 +9510,13 @@
"license": "MIT"
},
"node_modules/sax": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz",
- "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz",
+ "integrity": "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==",
"dev": true,
- "license": "BlueOak-1.0.0"
+ "engines": {
+ "node": ">=11.0.0"
+ }
},
"node_modules/saxes": {
"version": "6.0.0",
@@ -10586,11 +10588,10 @@
"dev": true
},
"node_modules/svgo": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.0.tgz",
- "integrity": "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz",
+ "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"commander": "^11.1.0",
"css-select": "^5.1.0",
@@ -10598,7 +10599,7 @@
"css-what": "^6.1.0",
"csso": "^5.0.5",
"picocolors": "^1.1.1",
- "sax": "^1.4.1"
+ "sax": "^1.5.0"
},
"bin": {
"svgo": "bin/svgo.js"
diff --git a/package.json b/package.json
index 0c777a1..27f3b3b 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,7 @@
"@babel/preset-env": "7.28.5",
"@vue/test-utils": "2.4.6",
"@vue/vue3-jest": "29.2.6",
- "@wikimedia/codex": "2.3.4",
+ "@wikimedia/codex": "2.4.0",
"@wikimedia/types-wikimedia": "0.5.0",
"api-testing": "1.7.3",
"eslint-config-wikimedia": "0.32.3",
@@ -25,7 +25,7 @@
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"stylelint-config-wikimedia": "0.18.0",
- "svgo": "4.0.0",
+ "svgo": "4.0.1",
"typescript": "5.9.3",
"vue": "3.5.13"
}
--
2.47.3
$ date
--- stdout ---
Thu Mar 5 23:12:17 UTC 2026
--- end ---
$ git clone file:///srv/git/mediawiki-extensions-ReadingLists.git /src/repo --depth=1 -b master
--- stderr ---
Cloning into '/src/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 ---
23c1e9c71d1b63f7f30fe94c8d59577bc64d2ac3 refs/heads/master
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {
"@tootallnate/once": {
"name": "@tootallnate/once",
"severity": "low",
"isDirect": false,
"via": [
{
"source": 1113977,
"name": "@tootallnate/once",
"dependency": "@tootallnate/once",
"title": "@tootallnate/once vulnerable to Incorrect Control Flow Scoping",
"url": "https://github.com/advisories/GHSA-vpq2-c234-7xj6",
"severity": "low",
"cwe": [
"CWE-705"
],
"cvss": {
"score": 3.3,
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"
},
"range": "<3.0.1"
}
],
"effects": [
"http-proxy-agent"
],
"range": "<3.0.1",
"nodes": [
"node_modules/@tootallnate/once"
],
"fixAvailable": {
"name": "jest-environment-jsdom",
"version": "30.2.0",
"isSemVerMajor": true
}
},
"http-proxy-agent": {
"name": "http-proxy-agent",
"severity": "low",
"isDirect": false,
"via": [
"@tootallnate/once"
],
"effects": [
"jsdom"
],
"range": "4.0.1 - 5.0.0",
"nodes": [
"node_modules/http-proxy-agent"
],
"fixAvailable": {
"name": "jest-environment-jsdom",
"version": "30.2.0",
"isSemVerMajor": true
}
},
"jest-environment-jsdom": {
"name": "jest-environment-jsdom",
"severity": "low",
"isDirect": true,
"via": [
"jsdom"
],
"effects": [],
"range": "27.0.1 - 30.0.0-rc.1",
"nodes": [
"node_modules/jest-environment-jsdom"
],
"fixAvailable": {
"name": "jest-environment-jsdom",
"version": "30.2.0",
"isSemVerMajor": true
}
},
"jsdom": {
"name": "jsdom",
"severity": "low",
"isDirect": false,
"via": [
"http-proxy-agent"
],
"effects": [
"jest-environment-jsdom"
],
"range": "16.6.0 - 22.1.0",
"nodes": [
"node_modules/jsdom"
],
"fixAvailable": {
"name": "jest-environment-jsdom",
"version": "30.2.0",
"isSemVerMajor": true
}
},
"svgo": {
"name": "svgo",
"severity": "high",
"isDirect": true,
"via": [
{
"source": 1113985,
"name": "svgo",
"dependency": "svgo",
"title": "SVGO DoS through entity expansion in DOCTYPE (Billion Laughs)",
"url": "https://github.com/advisories/GHSA-xpqw-6gx7-v673",
"severity": "high",
"cwe": [
"CWE-776"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": "=4.0.0"
}
],
"effects": [],
"range": "4.0.0",
"nodes": [
"node_modules/svgo"
],
"fixAvailable": {
"name": "svgo",
"version": "4.0.1",
"isSemVerMajor": false
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 4,
"moderate": 0,
"high": 1,
"critical": 0,
"total": 5
},
"dependencies": {
"prod": 1,
"dev": 833,
"optional": 3,
"peer": 0,
"peerOptional": 0,
"total": 833
}
}
}
--- 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: 37 installs, 0 updates, 0 removals
- Locking composer/pcre (3.3.2)
- Locking composer/semver (3.4.4)
- Locking composer/spdx-licenses (1.5.9)
- Locking composer/xdebug-handler (3.0.5)
- Locking dealerdirect/phpcodesniffer-composer-installer (v1.2.0)
- Locking doctrine/deprecations (1.1.6)
- Locking felixfbecker/advanced-json-rpc (v3.2.1)
- Locking mediawiki/mediawiki-codesniffer (v50.0.0)
- Locking mediawiki/mediawiki-phan-config (0.19.0)
- Locking mediawiki/minus-x (2.0.1)
- Locking mediawiki/phan-taint-check-plugin (9.0.0)
- Locking netresearch/jsonmapper (v4.5.0)
- Locking phan/phan (6.0.1)
- Locking phan/tolerant-php-parser (v0.2.0)
- Locking phan/var_representation_polyfill (0.1.4)
- 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.4.0)
- Locking phpcsstandards/phpcsutils (1.2.2)
- Locking phpdocumentor/reflection-common (2.2.0)
- Locking phpdocumentor/reflection-docblock (5.6.6)
- Locking phpdocumentor/type-resolver (1.12.0)
- Locking phpstan/phpdoc-parser (2.3.2)
- Locking psr/container (2.0.2)
- Locking psr/log (3.0.2)
- Locking sabre/event (5.1.7)
- Locking squizlabs/php_codesniffer (3.13.5)
- Locking symfony/console (v8.0.6)
- 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/service-contracts (v3.6.1)
- Locking symfony/string (v8.0.6)
- Locking webmozart/assert (2.1.6)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 37 installs, 0 updates, 0 removals
0 [>---------------------------] 0 [->--------------------------]
- Installing squizlabs/php_codesniffer (3.13.5): Extracting archive
- Installing dealerdirect/phpcodesniffer-composer-installer (v1.2.0): Extracting archive
- Installing composer/pcre (3.3.2): Extracting archive
- Installing phpcsstandards/phpcsutils (1.2.2): Extracting archive
- Installing phpcsstandards/phpcsextra (1.4.0): 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.4): Extracting archive
- Installing mediawiki/mediawiki-codesniffer (v50.0.0): 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 (v8.0.6): 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.1): Extracting archive
- Installing symfony/console (v8.0.6): Extracting archive
- Installing sabre/event (5.1.7): Extracting archive
- Installing phan/var_representation_polyfill (0.1.4): Extracting archive
- Installing phan/tolerant-php-parser (v0.2.0): Extracting archive
- Installing netresearch/jsonmapper (v4.5.0): Extracting archive
- Installing webmozart/assert (2.1.6): Extracting archive
- Installing phpstan/phpdoc-parser (2.3.2): Extracting archive
- Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
- Installing doctrine/deprecations (1.1.6): Extracting archive
- Installing phpdocumentor/type-resolver (1.12.0): Extracting archive
- Installing phpdocumentor/reflection-docblock (5.6.6): 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 (6.0.1): Extracting archive
- Installing mediawiki/phan-taint-check-plugin (9.0.0): Extracting archive
- Installing mediawiki/mediawiki-phan-config (0.19.0): Extracting archive
- Installing mediawiki/minus-x (2.0.1): 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/35 [>---------------------------] 0%
27/35 [=====================>------] 77%
34/35 [===========================>] 97%
35/35 [============================] 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.3.4 -> 2.4.0
$ /usr/bin/npm install
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex@2.4.0',
npm WARN EBADENGINE required: { npm: '>=10.8.2', node: '>=20.19.1' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.4.0',
npm WARN EBADENGINE required: { npm: '>=10.8.2', node: '>=20.19.1' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---
added 832 packages, and audited 833 packages in 9s
148 packages are looking for funding
run `npm fund` for details
5 vulnerabilities (4 low, 1 high)
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
--- end ---
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json
--- end ---
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex@2.4.0',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.4.0',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---
added 832 packages, and audited 833 packages in 11s
148 packages are looking for funding
run `npm fund` for details
5 vulnerabilities (4 low, 1 high)
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
--- end ---
$ /usr/bin/npm test
--- stderr ---
10 sources checked
/src/repo/resources/ext.readingLists.bookmark/styles.less
/src/repo/resources/ext.readingLists.special/styles.less
/src/repo/resources/ext.readingLists.onboarding/components/OnboardingPopover.vue
/src/repo/resources/ext.readingLists.special/components/DisplayButton.vue
/src/repo/resources/ext.readingLists.special/components/EmptyList.vue
/src/repo/resources/ext.readingLists.special/components/EntryItem.vue
/src/repo/resources/ext.readingLists.special/components/ImportDialog.vue
/src/repo/resources/ext.readingLists.special/components/ListItem.vue
/src/repo/resources/ext.readingLists.special/pages/Entries.vue
/src/repo/resources/ext.readingLists.special/pages/Lists.vue
0 problems found
PASS tests/jest/ext.readingLists.api/index.test.js
setup
✓ returns inserted list (22 ms)
getLists
✓ returns array of multiple lists (2 ms)
✓ paginates with continue token (1 ms)
✓ sets up default list if missing (1 ms)
✓ throws on unhandled error (1 ms)
getList
✓ returns metadata of one list (1 ms)
✓ translates default list name/description
✓ sets up default list if missing
✓ throws on unhandled error (1 ms)
getEntries
✓ returns array of list entries (3 ms)
✓ paginates with continue token (30 ms)
✓ sets up default list if missing (1 ms)
✓ throws on unhandled error
getPagesFromManifest
✓ returns array of page metadata (2 ms)
✓ transforms language code to url (1 ms)
✓ resolves page ids to titles (1 ms)
✓ returns fallback on error (1 ms)
createEntry
✓ returns inserted entry
deleteEntry
✓ returns success message (1 ms)
fromBase64
✓ returns entries with resolved pages (2 ms)
✓ returns error message (1 ms)
PASS tests/jest/ext.readingLists.onboarding/OnboardingPopover.test.js
OnboardingPopover
rendering behavior
✓ matches the snapshot (135 ms)
✓ renders with custom title, body message keys, and banner image (21 ms)
✓ renders close button with aria-label (12 ms)
popover dismiss behavior
✓ closes popover and calls onDismiss when close button is clicked (18 ms)
✓ calls onDismiss when popover is closed externally (12 ms)
PASS tests/jest/ext.readingLists.special/Lists.test.js
Lists
✓ renders with toolbar disabled (1085 ms)
✓ renders with toolbar enabled (204 ms)
PASS tests/jest/ext.readingLists.special/Entries.test.js
Entries
✓ renders with toolbar disabled (1351 ms)
✓ renders with toolbar enabled (190 ms)
✓ renders all items from all lists on special page (78 ms)
Test Suites: 4 passed, 4 total
Tests: 31 passed, 31 total
Snapshots: 6 passed, 6 total
Time: 5.32 s
Ran all test suites.
--- stdout ---
> test
> npm run lint && npm run test:unit
> lint
> npm run lint:i18n && npm run lint:scripts && npm run lint:scripts:tests && npm run lint:styles
> lint:i18n
> banana-checker i18n/ i18n/api/
Checked 2 message directories.
> lint:scripts
> eslint --cache --ignore-pattern tests/api-testing .
> lint:scripts:tests
> eslint --cache --no-ignore --config tests/api-testing/.eslintrc.json tests/api-testing
> lint:styles
> stylelint --cache -f verbose "resources/**/*.{css,less,vue}"
> test:unit
> jest --verbose
----------------------------------------|---------|----------|---------|---------|------------------------------------------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------------------------------------|---------|----------|---------|---------|------------------------------------------------------
All files | 58.11 | 46.54 | 55.75 | 57.83 |
ext.readingLists.api | 98.98 | 90.9 | 100 | 98.91 |
index.js | 98.98 | 90.9 | 100 | 98.91 | 252
ext.readingLists.bookmark | 0 | 0 | 0 | 0 |
bookmark.js | 0 | 0 | 0 | 0 | 1-253
ext.readingLists.onboarding | 0 | 0 | 0 | 0 |
index.js | 0 | 100 | 100 | 0 | 1-4
mountApp.js | 0 | 0 | 0 | 0 | 1-183
ext.readingLists.onboarding/components | 96.96 | 75 | 90 | 96.77 |
OnboardingPopover.vue | 96.96 | 75 | 90 | 96.77 | 97
ext.readingLists.special/components | 66.66 | 36.84 | 50 | 68.08 |
DisplayButton.vue | 51.51 | 25 | 62.5 | 54.83 | 73-89,110
EmptyList.vue | 81.81 | 100 | 0 | 81.81 | 4,27
EntryItem.vue | 91.66 | 100 | 75 | 91.66 | 13
ImportDialog.vue | 45.83 | 0 | 0 | 45.83 | 19-41,56-77
ListItem.vue | 100 | 66.66 | 100 | 100 | 34,36-58,70
ext.readingLists.special/pages | 71.25 | 54.95 | 63.33 | 71.69 |
Entries.vue | 65.68 | 57.14 | 63.15 | 66.33 | 70-87,96,106,120-128,137,144-145,155-158,170-180,231
Lists.vue | 81.03 | 50 | 63.63 | 81.03 | 42-47,73,79,89-90,99-100,131
----------------------------------------|---------|----------|---------|---------|------------------------------------------------------
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {
"@tootallnate/once": {
"name": "@tootallnate/once",
"severity": "low",
"isDirect": false,
"via": [
{
"source": 1113977,
"name": "@tootallnate/once",
"dependency": "@tootallnate/once",
"title": "@tootallnate/once vulnerable to Incorrect Control Flow Scoping",
"url": "https://github.com/advisories/GHSA-vpq2-c234-7xj6",
"severity": "low",
"cwe": [
"CWE-705"
],
"cvss": {
"score": 3.3,
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"
},
"range": "<3.0.1"
}
],
"effects": [
"http-proxy-agent"
],
"range": "<3.0.1",
"nodes": [
"node_modules/@tootallnate/once"
],
"fixAvailable": {
"name": "jest-environment-jsdom",
"version": "30.2.0",
"isSemVerMajor": true
}
},
"http-proxy-agent": {
"name": "http-proxy-agent",
"severity": "low",
"isDirect": false,
"via": [
"@tootallnate/once"
],
"effects": [
"jsdom"
],
"range": "4.0.1 - 5.0.0",
"nodes": [
"node_modules/http-proxy-agent"
],
"fixAvailable": {
"name": "jest-environment-jsdom",
"version": "30.2.0",
"isSemVerMajor": true
}
},
"jest-environment-jsdom": {
"name": "jest-environment-jsdom",
"severity": "low",
"isDirect": true,
"via": [
"jsdom"
],
"effects": [],
"range": "27.0.1 - 30.0.0-rc.1",
"nodes": [
"node_modules/jest-environment-jsdom"
],
"fixAvailable": {
"name": "jest-environment-jsdom",
"version": "30.2.0",
"isSemVerMajor": true
}
},
"jsdom": {
"name": "jsdom",
"severity": "low",
"isDirect": false,
"via": [
"http-proxy-agent"
],
"effects": [
"jest-environment-jsdom"
],
"range": "16.6.0 - 22.1.0",
"nodes": [
"node_modules/jsdom"
],
"fixAvailable": {
"name": "jest-environment-jsdom",
"version": "30.2.0",
"isSemVerMajor": true
}
},
"svgo": {
"name": "svgo",
"severity": "high",
"isDirect": true,
"via": [
{
"source": 1113985,
"name": "svgo",
"dependency": "svgo",
"title": "SVGO DoS through entity expansion in DOCTYPE (Billion Laughs)",
"url": "https://github.com/advisories/GHSA-xpqw-6gx7-v673",
"severity": "high",
"cwe": [
"CWE-776"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": "=4.0.0"
}
],
"effects": [],
"range": "4.0.0",
"nodes": [
"node_modules/svgo"
],
"fixAvailable": {
"name": "svgo",
"version": "4.0.1",
"isSemVerMajor": false
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 4,
"moderate": 0,
"high": 1,
"critical": 0,
"total": 5
},
"dependencies": {
"prod": 1,
"dev": 833,
"optional": 3,
"peer": 0,
"peerOptional": 0,
"total": 833
}
}
}
--- 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.4.0',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.4.0',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---
{
"added": 1,
"removed": 0,
"changed": 0,
"audited": 834,
"funding": 148,
"audit": {
"auditReportVersion": 2,
"vulnerabilities": {
"@tootallnate/once": {
"name": "@tootallnate/once",
"severity": "low",
"isDirect": false,
"via": [
{
"source": 1113977,
"name": "@tootallnate/once",
"dependency": "@tootallnate/once",
"title": "@tootallnate/once vulnerable to Incorrect Control Flow Scoping",
"url": "https://github.com/advisories/GHSA-vpq2-c234-7xj6",
"severity": "low",
"cwe": [
"CWE-705"
],
"cvss": {
"score": 3.3,
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"
},
"range": "<3.0.1"
}
],
"effects": [
"http-proxy-agent"
],
"range": "<3.0.1",
"nodes": [
"node_modules/@tootallnate/once"
],
"fixAvailable": {
"name": "jest-environment-jsdom",
"version": "30.2.0",
"isSemVerMajor": true
}
},
"http-proxy-agent": {
"name": "http-proxy-agent",
"severity": "low",
"isDirect": false,
"via": [
"@tootallnate/once"
],
"effects": [
"jsdom"
],
"range": "4.0.1 - 5.0.0",
"nodes": [
"node_modules/http-proxy-agent"
],
"fixAvailable": {
"name": "jest-environment-jsdom",
"version": "30.2.0",
"isSemVerMajor": true
}
},
"jest-environment-jsdom": {
"name": "jest-environment-jsdom",
"severity": "low",
"isDirect": true,
"via": [
"jsdom"
],
"effects": [],
"range": "27.0.1 - 30.0.0-rc.1",
"nodes": [
"node_modules/jest-environment-jsdom"
],
"fixAvailable": {
"name": "jest-environment-jsdom",
"version": "30.2.0",
"isSemVerMajor": true
}
},
"jsdom": {
"name": "jsdom",
"severity": "low",
"isDirect": false,
"via": [
"http-proxy-agent"
],
"effects": [
"jest-environment-jsdom"
],
"range": "16.6.0 - 22.1.0",
"nodes": [
"node_modules/jsdom"
],
"fixAvailable": {
"name": "jest-environment-jsdom",
"version": "30.2.0",
"isSemVerMajor": true
}
},
"svgo": {
"name": "svgo",
"severity": "high",
"isDirect": true,
"via": [
{
"source": 1113985,
"name": "svgo",
"dependency": "svgo",
"title": "SVGO DoS through entity expansion in DOCTYPE (Billion Laughs)",
"url": "https://github.com/advisories/GHSA-xpqw-6gx7-v673",
"severity": "high",
"cwe": [
"CWE-776"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": "=4.0.0"
}
],
"effects": [],
"range": "4.0.0",
"nodes": [
"node_modules/svgo"
],
"fixAvailable": {
"name": "svgo",
"version": "4.0.1",
"isSemVerMajor": false
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 4,
"moderate": 0,
"high": 1,
"critical": 0,
"total": 5
},
"dependencies": {
"prod": 1,
"dev": 833,
"optional": 3,
"peer": 0,
"peerOptional": 0,
"total": 833
}
}
}
}
--- end ---
{"added": 1, "removed": 0, "changed": 0, "audited": 834, "funding": 148, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@tootallnate/once": {"name": "@tootallnate/once", "severity": "low", "isDirect": false, "via": [{"source": 1113977, "name": "@tootallnate/once", "dependency": "@tootallnate/once", "title": "@tootallnate/once vulnerable to Incorrect Control Flow Scoping", "url": "https://github.com/advisories/GHSA-vpq2-c234-7xj6", "severity": "low", "cwe": ["CWE-705"], "cvss": {"score": 3.3, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"}, "range": "<3.0.1"}], "effects": ["http-proxy-agent"], "range": "<3.0.1", "nodes": ["node_modules/@tootallnate/once"], "fixAvailable": {"name": "jest-environment-jsdom", "version": "30.2.0", "isSemVerMajor": true}}, "http-proxy-agent": {"name": "http-proxy-agent", "severity": "low", "isDirect": false, "via": ["@tootallnate/once"], "effects": ["jsdom"], "range": "4.0.1 - 5.0.0", "nodes": ["node_modules/http-proxy-agent"], "fixAvailable": {"name": "jest-environment-jsdom", "version": "30.2.0", "isSemVerMajor": true}}, "jest-environment-jsdom": {"name": "jest-environment-jsdom", "severity": "low", "isDirect": true, "via": ["jsdom"], "effects": [], "range": "27.0.1 - 30.0.0-rc.1", "nodes": ["node_modules/jest-environment-jsdom"], "fixAvailable": {"name": "jest-environment-jsdom", "version": "30.2.0", "isSemVerMajor": true}}, "jsdom": {"name": "jsdom", "severity": "low", "isDirect": false, "via": ["http-proxy-agent"], "effects": ["jest-environment-jsdom"], "range": "16.6.0 - 22.1.0", "nodes": ["node_modules/jsdom"], "fixAvailable": {"name": "jest-environment-jsdom", "version": "30.2.0", "isSemVerMajor": true}}, "svgo": {"name": "svgo", "severity": "high", "isDirect": true, "via": [{"source": 1113985, "name": "svgo", "dependency": "svgo", "title": "SVGO DoS through entity expansion in DOCTYPE (Billion Laughs)", "url": "https://github.com/advisories/GHSA-xpqw-6gx7-v673", "severity": "high", "cwe": ["CWE-776"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "=4.0.0"}], "effects": [], "range": "4.0.0", "nodes": ["node_modules/svgo"], "fixAvailable": {"name": "svgo", "version": "4.0.1", "isSemVerMajor": false}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 4, "moderate": 0, "high": 1, "critical": 0, "total": 5}, "dependencies": {"prod": 1, "dev": 833, "optional": 3, "peer": 0, "peerOptional": 0, "total": 833}}}}
{}
Upgrading n:svgo from 4.0.0 -> 4.0.1
$ /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.4.0',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.4.0',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---
changed 2 packages, and audited 833 packages in 3s
148 packages are looking for funding
run `npm fund` for details
# npm audit report
@tootallnate/once <3.0.1
@tootallnate/once vulnerable to Incorrect Control Flow Scoping - https://github.com/advisories/GHSA-vpq2-c234-7xj6
fix available via `npm audit fix --force`
Will install jest-environment-jsdom@30.2.0, which is a breaking change
node_modules/@tootallnate/once
http-proxy-agent 4.0.1 - 5.0.0
Depends on vulnerable versions of @tootallnate/once
node_modules/http-proxy-agent
jsdom 16.6.0 - 22.1.0
Depends on vulnerable versions of http-proxy-agent
node_modules/jsdom
jest-environment-jsdom 27.0.1 - 30.0.0-rc.1
Depends on vulnerable versions of jsdom
node_modules/jest-environment-jsdom
4 low severity vulnerabilities
To address all issues (including breaking changes), run:
npm audit fix --force
--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex@2.4.0',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.4.0',
npm WARN EBADENGINE required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---
added 832 packages, and audited 833 packages in 9s
148 packages are looking for funding
run `npm fund` for details
4 low severity vulnerabilities
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
--- end ---
$ /usr/bin/npm test
--- stderr ---
0 of 10 sources checked
/src/repo/resources/ext.readingLists.bookmark/styles.less (ignored)
/src/repo/resources/ext.readingLists.special/styles.less (ignored)
/src/repo/resources/ext.readingLists.onboarding/components/OnboardingPopover.vue (ignored)
/src/repo/resources/ext.readingLists.special/components/DisplayButton.vue (ignored)
/src/repo/resources/ext.readingLists.special/components/EmptyList.vue (ignored)
/src/repo/resources/ext.readingLists.special/components/EntryItem.vue (ignored)
/src/repo/resources/ext.readingLists.special/components/ImportDialog.vue (ignored)
/src/repo/resources/ext.readingLists.special/components/ListItem.vue (ignored)
/src/repo/resources/ext.readingLists.special/pages/Entries.vue (ignored)
/src/repo/resources/ext.readingLists.special/pages/Lists.vue (ignored)
0 problems found
PASS tests/jest/ext.readingLists.onboarding/OnboardingPopover.test.js
OnboardingPopover
rendering behavior
✓ matches the snapshot (145 ms)
✓ renders with custom title, body message keys, and banner image (33 ms)
✓ renders close button with aria-label (26 ms)
popover dismiss behavior
✓ closes popover and calls onDismiss when close button is clicked (22 ms)
✓ calls onDismiss when popover is closed externally (31 ms)
PASS tests/jest/ext.readingLists.special/Entries.test.js
Entries
✓ renders with toolbar disabled (314 ms)
✓ renders with toolbar enabled (127 ms)
✓ renders all items from all lists on special page (54 ms)
PASS tests/jest/ext.readingLists.special/Lists.test.js
Lists
✓ renders with toolbar disabled (267 ms)
✓ renders with toolbar enabled (189 ms)
PASS tests/jest/ext.readingLists.api/index.test.js
setup
✓ returns inserted list (2 ms)
getLists
✓ returns array of multiple lists (1 ms)
✓ paginates with continue token (1 ms)
✓ sets up default list if missing (1 ms)
✓ throws on unhandled error (1 ms)
getList
✓ returns metadata of one list
✓ translates default list name/description (1 ms)
✓ sets up default list if missing (1 ms)
✓ throws on unhandled error
getEntries
✓ returns array of list entries (2 ms)
✓ paginates with continue token (1 ms)
✓ sets up default list if missing (2 ms)
✓ throws on unhandled error
getPagesFromManifest
✓ returns array of page metadata (1 ms)
✓ transforms language code to url (1 ms)
✓ resolves page ids to titles (1 ms)
✓ returns fallback on error (1 ms)
createEntry
✓ returns inserted entry
deleteEntry
✓ returns success message
fromBase64
✓ returns entries with resolved pages (2 ms)
✓ returns error message (1 ms)
Test Suites: 4 passed, 4 total
Tests: 31 passed, 31 total
Snapshots: 6 passed, 6 total
Time: 4.719 s
Ran all test suites.
--- stdout ---
> test
> npm run lint && npm run test:unit
> lint
> npm run lint:i18n && npm run lint:scripts && npm run lint:scripts:tests && npm run lint:styles
> lint:i18n
> banana-checker i18n/ i18n/api/
Checked 2 message directories.
> lint:scripts
> eslint --cache --ignore-pattern tests/api-testing .
> lint:scripts:tests
> eslint --cache --no-ignore --config tests/api-testing/.eslintrc.json tests/api-testing
> lint:styles
> stylelint --cache -f verbose "resources/**/*.{css,less,vue}"
> test:unit
> jest --verbose
----------------------------------------|---------|----------|---------|---------|------------------------------------------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------------------------------------|---------|----------|---------|---------|------------------------------------------------------
All files | 58.11 | 46.54 | 55.75 | 57.83 |
ext.readingLists.api | 98.98 | 90.9 | 100 | 98.91 |
index.js | 98.98 | 90.9 | 100 | 98.91 | 252
ext.readingLists.bookmark | 0 | 0 | 0 | 0 |
bookmark.js | 0 | 0 | 0 | 0 | 1-253
ext.readingLists.onboarding | 0 | 0 | 0 | 0 |
index.js | 0 | 100 | 100 | 0 | 1-4
mountApp.js | 0 | 0 | 0 | 0 | 1-183
ext.readingLists.onboarding/components | 96.96 | 75 | 90 | 96.77 |
OnboardingPopover.vue | 96.96 | 75 | 90 | 96.77 | 97
ext.readingLists.special/components | 66.66 | 36.84 | 50 | 68.08 |
DisplayButton.vue | 51.51 | 25 | 62.5 | 54.83 | 73-89,110
EmptyList.vue | 81.81 | 100 | 0 | 81.81 | 4,27
EntryItem.vue | 91.66 | 100 | 75 | 91.66 | 13
ImportDialog.vue | 45.83 | 0 | 0 | 45.83 | 19-41,56-77
ListItem.vue | 100 | 66.66 | 100 | 100 | 34,36-58,70
ext.readingLists.special/pages | 71.25 | 54.95 | 63.33 | 71.69 |
Entries.vue | 65.68 | 57.14 | 63.15 | 66.33 | 70-87,96,106,120-128,137,144-145,155-158,170-180,231
Lists.vue | 81.03 | 50 | 63.63 | 81.03 | 42-47,73,79,89-90,99-100,131
----------------------------------------|---------|----------|---------|---------|------------------------------------------------------
--- end ---
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json
--- end ---
build: Updating npm dependencies
* @wikimedia/codex: 2.3.4 → 2.4.0
* svgo: 4.0.0 → 4.0.1
$ git add .
--- stdout ---
--- end ---
$ git commit -F /tmp/tmpt9qha0yp
--- stdout ---
[master bca54a5] build: Updating npm dependencies
2 files changed, 21 insertions(+), 20 deletions(-)
--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From bca54a5c210cdccd237537c22252d69777e6f14f Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Thu, 5 Mar 2026 23:13:48 +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.3.4 → 2.4.0
* svgo: 4.0.0 → 4.0.1
Change-Id: I11f2accf5d4fca1abc6ca2b1b401b2610ea49646
---
package-lock.json | 37 +++++++++++++++++++------------------
package.json | 4 ++--
2 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index e258a50..4d28276 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,7 @@
"@babel/preset-env": "7.28.5",
"@vue/test-utils": "2.4.6",
"@vue/vue3-jest": "29.2.6",
- "@wikimedia/codex": "2.3.4",
+ "@wikimedia/codex": "2.4.0",
"@wikimedia/types-wikimedia": "0.5.0",
"api-testing": "1.7.3",
"eslint-config-wikimedia": "0.32.3",
@@ -17,7 +17,7 @@
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"stylelint-config-wikimedia": "0.18.0",
- "svgo": "4.0.0",
+ "svgo": "4.0.1",
"typescript": "5.9.3",
"vue": "3.5.13"
}
@@ -3729,13 +3729,13 @@
}
},
"node_modules/@wikimedia/codex": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.3.4.tgz",
- "integrity": "sha512-Dn2R/LwRZedbgT98XyHEm02IAFXDNoLu8AvD6PFNX8Itk3H1Fdn9O4bUZWtcQGy9Y7dkmXnHUFswUH8QlXLn9g==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.4.0.tgz",
+ "integrity": "sha512-j/I1gGbTo6pttjmwyYw9/3CeInK6mpBm2FVfABJk+B1Ylw5DskX+TqeCdKghwxSkxBt0ODbUTBYdFyafk+7ajg==",
"dev": true,
"dependencies": {
"@floating-ui/vue": "1.0.6",
- "@wikimedia/codex-icons": "2.3.4"
+ "@wikimedia/codex-icons": "2.4.0"
},
"engines": {
"node": ">=20.19.1",
@@ -3746,9 +3746,9 @@
}
},
"node_modules/@wikimedia/codex-icons": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.3.4.tgz",
- "integrity": "sha512-eRRYmqIyIbbiaDhiw+qdNNqQ4Npz04k6crSaqyWFS6Y4vh5Lrd3kbjk2uNZK3Tu0h+yz0mQmlMlBEOtb/r3dPw==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.4.0.tgz",
+ "integrity": "sha512-BBtrzLR7r9ShxCMYfsx9XaKJu/peqt5Y/jtvWx3E2G5aL/Y/pIWAkv8NIvU+ztKklbHySLH5jSvVZVKxxvU0Ew==",
"dev": true,
"engines": {
"node": ">=20.19.1",
@@ -9510,11 +9510,13 @@
"license": "MIT"
},
"node_modules/sax": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz",
- "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz",
+ "integrity": "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==",
"dev": true,
- "license": "BlueOak-1.0.0"
+ "engines": {
+ "node": ">=11.0.0"
+ }
},
"node_modules/saxes": {
"version": "6.0.0",
@@ -10586,11 +10588,10 @@
"dev": true
},
"node_modules/svgo": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.0.tgz",
- "integrity": "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz",
+ "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"commander": "^11.1.0",
"css-select": "^5.1.0",
@@ -10598,7 +10599,7 @@
"css-what": "^6.1.0",
"csso": "^5.0.5",
"picocolors": "^1.1.1",
- "sax": "^1.4.1"
+ "sax": "^1.5.0"
},
"bin": {
"svgo": "bin/svgo.js"
diff --git a/package.json b/package.json
index 0c777a1..27f3b3b 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,7 @@
"@babel/preset-env": "7.28.5",
"@vue/test-utils": "2.4.6",
"@vue/vue3-jest": "29.2.6",
- "@wikimedia/codex": "2.3.4",
+ "@wikimedia/codex": "2.4.0",
"@wikimedia/types-wikimedia": "0.5.0",
"api-testing": "1.7.3",
"eslint-config-wikimedia": "0.32.3",
@@ -25,7 +25,7 @@
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"stylelint-config-wikimedia": "0.18.0",
- "svgo": "4.0.0",
+ "svgo": "4.0.1",
"typescript": "5.9.3",
"vue": "3.5.13"
}
--
2.47.3
--- end ---