mediawiki/extensions/MediaSearch: main (log #1938767)

sourcepatches

This run took 87 seconds.

From c6da46079d6d1b9aef339159adfe8769915b0cf7 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Wed, 11 Jun 2025 04:34:26 +0000
Subject: [PATCH] [DNM] there are no updates

Change-Id: I4a6bb4700df50987b5f404cc4cfff7ee23d5fcad
---
 package-lock.json | 191 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 187 insertions(+), 4 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 73b2103..2682fc6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5970,19 +5970,21 @@
 			}
 		},
 		"node_modules/eslint-plugin-n": {
-			"version": "17.18.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.18.0.tgz",
-			"integrity": "sha512-hvZ/HusueqTJ7VDLoCpjN0hx4N4+jHIWTXD4TMLHy9F23XkDagR9v+xQWRWR57yY55GPF8NnD4ox9iGTxirY8A==",
+			"version": "17.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.19.0.tgz",
+			"integrity": "sha512-qxn1NaDHtizbhVAPpbMT8wWFaLtPnwhfN/e+chdu2i6Vgzmo/tGM62tcJ1Hf7J5Ie4dhse3DOPMmDxduzfifzw==",
 			"dev": true,
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.5.0",
+				"@typescript-eslint/utils": "^8.26.1",
 				"enhanced-resolve": "^5.17.1",
 				"eslint-plugin-es-x": "^7.8.0",
 				"get-tsconfig": "^4.8.1",
 				"globals": "^15.11.0",
 				"ignore": "^5.3.2",
 				"minimatch": "^9.0.5",
-				"semver": "^7.6.3"
+				"semver": "^7.6.3",
+				"ts-declaration-location": "^1.0.6"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5994,6 +5996,141 @@
 				"eslint": ">=8.23.0"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/project-service": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
+			"integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/tsconfig-utils": "^8.34.0",
+				"@typescript-eslint/types": "^8.34.0",
+				"debug": "^4.3.4"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/scope-manager": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
+			"integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/visitor-keys": "8.34.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/tsconfig-utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
+			"integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/types": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+			"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/typescript-estree": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
+			"integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/project-service": "8.34.0",
+				"@typescript-eslint/tsconfig-utils": "8.34.0",
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/visitor-keys": "8.34.0",
+				"debug": "^4.3.4",
+				"fast-glob": "^3.3.2",
+				"is-glob": "^4.0.3",
+				"minimatch": "^9.0.4",
+				"semver": "^7.6.0",
+				"ts-api-utils": "^2.1.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
+			"integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
+			"dev": true,
+			"dependencies": {
+				"@eslint-community/eslint-utils": "^4.7.0",
+				"@typescript-eslint/scope-manager": "8.34.0",
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/typescript-estree": "8.34.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"eslint": "^8.57.0 || ^9.0.0",
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/visitor-keys": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
+			"integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/types": "8.34.0",
+				"eslint-visitor-keys": "^4.2.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
 		"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",
@@ -6003,6 +6140,18 @@
 				"balanced-match": "^1.0.0"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/eslint-visitor-keys": {
+			"version": "4.2.1",
+			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+			"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"url": "https://opencollective.com/eslint"
+			}
+		},
 		"node_modules/eslint-plugin-n/node_modules/globals": {
 			"version": "15.15.0",
 			"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
@@ -12835,6 +12984,40 @@
 				"typescript": ">=4.8.4"
 			}
 		},
+		"node_modules/ts-declaration-location": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz",
+			"integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "ko-fi",
+					"url": "https://ko-fi.com/rebeccastevens"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/ts-declaration-location"
+				}
+			],
+			"dependencies": {
+				"picomatch": "^4.0.2"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.0.0"
+			}
+		},
+		"node_modules/ts-declaration-location/node_modules/picomatch": {
+			"version": "4.0.2",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+			"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+			"dev": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/jonschlinkert"
+			}
+		},
 		"node_modules/tsconfig": {
 			"version": "7.0.0",
 			"resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz",
-- 
2.39.5

$ date
--- stdout ---
Wed Jun 11 04:33:03 UTC 2025

--- end ---
$ git clone file:///srv/git/mediawiki-extensions-MediaSearch.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 ---
0ae30c6dad77a08a5f44e7040800cb7a91c2f94d refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/utils"
      ],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/typescript-estree"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/utils": {
      "name": "@typescript-eslint/utils",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree"
      ],
      "effects": [],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": true
    },
    "@vue/test-utils": {
      "name": "@vue/test-utils",
      "severity": "low",
      "isDirect": true,
      "via": [
        "js-beautify"
      ],
      "effects": [],
      "range": ">=2.2.8",
      "nodes": [
        "node_modules/@vue/test-utils"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.2.7",
        "isSemVerMajor": true
      }
    },
    "babel-core": {
      "name": "babel-core",
      "severity": "critical",
      "isDirect": true,
      "via": [
        "babel-helpers",
        "babel-register",
        "babel-template",
        "babel-traverse",
        "json5"
      ],
      "effects": [
        "babel-register"
      ],
      "range": "5.8.20 - 7.0.0-beta.3",
      "nodes": [
        "node_modules/babel-core"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "babel-helpers": {
      "name": "babel-helpers",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "babel-template"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/babel-helpers"
      ],
      "fixAvailable": true
    },
    "babel-register": {
      "name": "babel-register",
      "severity": "high",
      "isDirect": false,
      "via": [
        "babel-core"
      ],
      "effects": [
        "babel-core"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-register"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "babel-template": {
      "name": "babel-template",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "babel-traverse"
      ],
      "effects": [
        "babel-helpers"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-template"
      ],
      "fixAvailable": true
    },
    "babel-traverse": {
      "name": "babel-traverse",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096879,
          "name": "babel-traverse",
          "dependency": "babel-traverse",
          "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code",
          "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92",
          "severity": "critical",
          "cwe": [
            "CWE-184",
            "CWE-697"
          ],
          "cvss": {
            "score": 9.4,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
          },
          "range": "<7.23.2"
        }
      ],
      "effects": [
        "babel-core",
        "babel-template"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-traverse"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "brace-expansion": {
      "name": "brace-expansion",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1105422,
          "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.1 <=4.0.0"
        }
      ],
      "effects": [
        "minimatch"
      ],
      "range": ">=2.0.1",
      "nodes": [
        "node_modules/editorconfig/node_modules/brace-expansion",
        "node_modules/eslint-config-wikimedia/node_modules/brace-expansion",
        "node_modules/eslint-plugin-n/node_modules/brace-expansion",
        "node_modules/js-beautify/node_modules/brace-expansion"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "editorconfig": {
      "name": "editorconfig",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "js-beautify"
      ],
      "range": ">=1.0.0",
      "nodes": [
        "node_modules/editorconfig"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.2.7",
        "isSemVerMajor": true
      }
    },
    "eslint-config-wikimedia": {
      "name": "eslint-config-wikimedia",
      "severity": "low",
      "isDirect": true,
      "via": [
        "eslint-plugin-n"
      ],
      "effects": [],
      "range": ">=0.28.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-n": {
      "name": "eslint-plugin-n",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": ">=17.0.0-0",
      "nodes": [
        "node_modules/eslint-plugin-n"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "glob": {
      "name": "glob",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "js-beautify"
      ],
      "range": ">=8.0.1",
      "nodes": [
        "node_modules/js-beautify/node_modules/glob"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.2.7",
        "isSemVerMajor": true
      }
    },
    "js-beautify": {
      "name": "js-beautify",
      "severity": "low",
      "isDirect": false,
      "via": [
        "editorconfig",
        "glob"
      ],
      "effects": [
        "@vue/test-utils"
      ],
      "range": ">=1.14.5",
      "nodes": [
        "node_modules/js-beautify"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.2.7",
        "isSemVerMajor": true
      }
    },
    "json5": {
      "name": "json5",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1096543,
          "name": "json5",
          "dependency": "json5",
          "title": "Prototype Pollution in JSON5 via Parse Method",
          "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h",
          "severity": "high",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 7.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"
          },
          "range": "<1.0.2"
        }
      ],
      "effects": [
        "babel-core"
      ],
      "range": "<1.0.2",
      "nodes": [
        "node_modules/babel-core/node_modules/json5"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "low",
      "isDirect": false,
      "via": [
        "brace-expansion"
      ],
      "effects": [
        "@typescript-eslint/typescript-estree",
        "editorconfig",
        "eslint-plugin-n",
        "glob"
      ],
      "range": ">=5.0.0",
      "nodes": [
        "node_modules/editorconfig/node_modules/minimatch",
        "node_modules/eslint-config-wikimedia/node_modules/minimatch",
        "node_modules/eslint-plugin-n/node_modules/minimatch",
        "node_modules/js-beautify/node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 10,
      "moderate": 0,
      "high": 2,
      "critical": 4,
      "total": 16
    },
    "dependencies": {
      "prod": 1,
      "dev": 1082,
      "optional": 3,
      "peer": 1,
      "peerOptional": 0,
      "total": 1082
    }
  }
}

--- 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%
 33/36 [=========================>--]  91%
 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 ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@typescript-eslint/typescript-estree": {
      "name": "@typescript-eslint/typescript-estree",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "@typescript-eslint/utils"
      ],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/typescript-estree"
      ],
      "fixAvailable": true
    },
    "@typescript-eslint/utils": {
      "name": "@typescript-eslint/utils",
      "severity": "low",
      "isDirect": false,
      "via": [
        "@typescript-eslint/typescript-estree"
      ],
      "effects": [],
      "range": ">=6.16.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils"
      ],
      "fixAvailable": true
    },
    "@vue/test-utils": {
      "name": "@vue/test-utils",
      "severity": "low",
      "isDirect": true,
      "via": [
        "js-beautify"
      ],
      "effects": [],
      "range": ">=2.2.8",
      "nodes": [
        "node_modules/@vue/test-utils"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.2.7",
        "isSemVerMajor": true
      }
    },
    "babel-core": {
      "name": "babel-core",
      "severity": "critical",
      "isDirect": true,
      "via": [
        "babel-helpers",
        "babel-register",
        "babel-template",
        "babel-traverse",
        "json5"
      ],
      "effects": [
        "babel-register"
      ],
      "range": "5.8.20 - 7.0.0-beta.3",
      "nodes": [
        "node_modules/babel-core"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "babel-helpers": {
      "name": "babel-helpers",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "babel-template"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/babel-helpers"
      ],
      "fixAvailable": true
    },
    "babel-register": {
      "name": "babel-register",
      "severity": "high",
      "isDirect": false,
      "via": [
        "babel-core"
      ],
      "effects": [
        "babel-core"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-register"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "babel-template": {
      "name": "babel-template",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "babel-traverse"
      ],
      "effects": [
        "babel-helpers"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-template"
      ],
      "fixAvailable": true
    },
    "babel-traverse": {
      "name": "babel-traverse",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096879,
          "name": "babel-traverse",
          "dependency": "babel-traverse",
          "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code",
          "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92",
          "severity": "critical",
          "cwe": [
            "CWE-184",
            "CWE-697"
          ],
          "cvss": {
            "score": 9.4,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
          },
          "range": "<7.23.2"
        }
      ],
      "effects": [
        "babel-core",
        "babel-template"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-traverse"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "brace-expansion": {
      "name": "brace-expansion",
      "severity": "low",
      "isDirect": false,
      "via": [
        {
          "source": 1105422,
          "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.1 <=4.0.0"
        }
      ],
      "effects": [
        "minimatch"
      ],
      "range": ">=2.0.1",
      "nodes": [
        "node_modules/editorconfig/node_modules/brace-expansion",
        "node_modules/eslint-config-wikimedia/node_modules/brace-expansion",
        "node_modules/eslint-plugin-n/node_modules/brace-expansion",
        "node_modules/js-beautify/node_modules/brace-expansion"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "editorconfig": {
      "name": "editorconfig",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "js-beautify"
      ],
      "range": ">=1.0.0",
      "nodes": [
        "node_modules/editorconfig"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.2.7",
        "isSemVerMajor": true
      }
    },
    "eslint-config-wikimedia": {
      "name": "eslint-config-wikimedia",
      "severity": "low",
      "isDirect": true,
      "via": [
        "eslint-plugin-n"
      ],
      "effects": [],
      "range": ">=0.28.0",
      "nodes": [
        "node_modules/eslint-config-wikimedia"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "eslint-plugin-n": {
      "name": "eslint-plugin-n",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "eslint-config-wikimedia"
      ],
      "range": ">=17.0.0-0",
      "nodes": [
        "node_modules/eslint-plugin-n"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    },
    "glob": {
      "name": "glob",
      "severity": "low",
      "isDirect": false,
      "via": [
        "minimatch"
      ],
      "effects": [
        "js-beautify"
      ],
      "range": ">=8.0.1",
      "nodes": [
        "node_modules/js-beautify/node_modules/glob"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.2.7",
        "isSemVerMajor": true
      }
    },
    "js-beautify": {
      "name": "js-beautify",
      "severity": "low",
      "isDirect": false,
      "via": [
        "editorconfig",
        "glob"
      ],
      "effects": [
        "@vue/test-utils"
      ],
      "range": ">=1.14.5",
      "nodes": [
        "node_modules/js-beautify"
      ],
      "fixAvailable": {
        "name": "@vue/test-utils",
        "version": "2.2.7",
        "isSemVerMajor": true
      }
    },
    "json5": {
      "name": "json5",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1096543,
          "name": "json5",
          "dependency": "json5",
          "title": "Prototype Pollution in JSON5 via Parse Method",
          "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h",
          "severity": "high",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 7.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"
          },
          "range": "<1.0.2"
        }
      ],
      "effects": [
        "babel-core"
      ],
      "range": "<1.0.2",
      "nodes": [
        "node_modules/babel-core/node_modules/json5"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "minimatch": {
      "name": "minimatch",
      "severity": "low",
      "isDirect": false,
      "via": [
        "brace-expansion"
      ],
      "effects": [
        "@typescript-eslint/typescript-estree",
        "editorconfig",
        "eslint-plugin-n",
        "glob"
      ],
      "range": ">=5.0.0",
      "nodes": [
        "node_modules/editorconfig/node_modules/minimatch",
        "node_modules/eslint-config-wikimedia/node_modules/minimatch",
        "node_modules/eslint-plugin-n/node_modules/minimatch",
        "node_modules/js-beautify/node_modules/minimatch"
      ],
      "fixAvailable": {
        "name": "eslint-config-wikimedia",
        "version": "0.27.0",
        "isSemVerMajor": true
      }
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 10,
      "moderate": 0,
      "high": 2,
      "critical": 4,
      "total": 16
    },
    "dependencies": {
      "prod": 1,
      "dev": 1082,
      "optional": 3,
      "peer": 1,
      "peerOptional": 0,
      "total": 1082
    }
  }
}

--- 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 ERESOLVE overriding peer dependency
npm WARN While resolving: eslint-plugin-jest@28.11.1
npm WARN Found: peer eslint@"^7.0.0 || ^8.0.0" from the root project
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer eslint@"^7.0.0 || ^8.0.0" from the root project
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.0.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.0.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": 1092,
  "removed": 0,
  "changed": 0,
  "audited": 1093,
  "funding": 149,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "@typescript-eslint/typescript-estree": {
        "name": "@typescript-eslint/typescript-estree",
        "severity": "low",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "@typescript-eslint/utils"
        ],
        "range": ">=6.16.0",
        "nodes": [
          "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/typescript-estree"
        ],
        "fixAvailable": true
      },
      "@typescript-eslint/utils": {
        "name": "@typescript-eslint/utils",
        "severity": "low",
        "isDirect": false,
        "via": [
          "@typescript-eslint/typescript-estree"
        ],
        "effects": [],
        "range": ">=6.16.0",
        "nodes": [
          "node_modules/eslint-config-wikimedia/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils"
        ],
        "fixAvailable": true
      },
      "@vue/test-utils": {
        "name": "@vue/test-utils",
        "severity": "low",
        "isDirect": true,
        "via": [
          "js-beautify"
        ],
        "effects": [],
        "range": ">=2.4.1",
        "nodes": [
          "node_modules/@vue/test-utils"
        ],
        "fixAvailable": {
          "name": "@vue/test-utils",
          "version": "2.4.0",
          "isSemVerMajor": true
        }
      },
      "babel-core": {
        "name": "babel-core",
        "severity": "critical",
        "isDirect": true,
        "via": [
          "babel-helpers",
          "babel-register",
          "babel-template",
          "babel-traverse",
          "json5"
        ],
        "effects": [
          "babel-register"
        ],
        "range": "5.8.20 - 7.0.0-beta.3",
        "nodes": [
          "node_modules/babel-core"
        ],
        "fixAvailable": {
          "name": "babel-core",
          "version": "4.7.16",
          "isSemVerMajor": true
        }
      },
      "babel-helpers": {
        "name": "babel-helpers",
        "severity": "critical",
        "isDirect": false,
        "via": [
          "babel-template"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/babel-helpers"
        ],
        "fixAvailable": true
      },
      "babel-register": {
        "name": "babel-register",
        "severity": "high",
        "isDirect": false,
        "via": [
          "babel-core"
        ],
        "effects": [
          "babel-core"
        ],
        "range": "*",
        "nodes": [
          "node_modules/babel-register"
        ],
        "fixAvailable": {
          "name": "babel-core",
          "version": "4.7.16",
          "isSemVerMajor": true
        }
      },
      "babel-template": {
        "name": "babel-template",
        "severity": "critical",
        "isDirect": false,
        "via": [
          "babel-traverse"
        ],
        "effects": [
          "babel-helpers"
        ],
        "range": "*",
        "nodes": [
          "node_modules/babel-template"
        ],
        "fixAvailable": true
      },
      "babel-traverse": {
        "name": "babel-traverse",
        "severity": "critical",
        "isDirect": false,
        "via": [
          {
            "source": 1096879,
            "name": "babel-traverse",
            "dependency": "babel-traverse",
            "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code",
            "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92",
            "severity": "critical",
            "cwe": [
              "CWE-184",
              "CWE-697"
            ],
            "cvss": {
              "score": 9.4,
              "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
            },
            "range": "<7.23.2"
          }
        ],
        "effects": [
          "babel-core",
          "babel-template"
        ],
        "range": "*",
        "nodes": [
          "node_modules/babel-traverse"
        ],
        "fixAvailable": {
          "name": "babel-core",
          "version": "4.7.16",
          "isSemVerMajor": true
        }
      },
      "brace-expansion": {
        "name": "brace-expansion",
        "severity": "low",
        "isDirect": false,
        "via": [
          {
            "source": 1105422,
            "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.1 <=4.0.0"
          }
        ],
        "effects": [
          "minimatch"
        ],
        "range": ">=2.0.1",
        "nodes": [
          "node_modules/editorconfig/node_modules/brace-expansion",
          "node_modules/eslint-config-wikimedia/node_modules/brace-expansion",
          "node_modules/eslint-plugin-n/node_modules/brace-expansion",
          "node_modules/js-beautify/node_modules/brace-expansion"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.27.0",
          "isSemVerMajor": true
        }
      },
      "editorconfig": {
        "name": "editorconfig",
        "severity": "low",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "js-beautify"
        ],
        "range": ">=1.0.0",
        "nodes": [
          "node_modules/editorconfig"
        ],
        "fixAvailable": {
          "name": "@vue/test-utils",
          "version": "2.4.0",
          "isSemVerMajor": true
        }
      },
      "eslint-config-wikimedia": {
        "name": "eslint-config-wikimedia",
        "severity": "low",
        "isDirect": true,
        "via": [
          "eslint-plugin-n"
        ],
        "effects": [],
        "range": ">=0.28.0",
        "nodes": [
          "node_modules/eslint-config-wikimedia"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.27.0",
          "isSemVerMajor": true
        }
      },
      "eslint-plugin-n": {
        "name": "eslint-plugin-n",
        "severity": "low",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "eslint-config-wikimedia"
        ],
        "range": ">=17.0.0-0",
        "nodes": [
          ""
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.27.0",
          "isSemVerMajor": true
        }
      },
      "glob": {
        "name": "glob",
        "severity": "low",
        "isDirect": false,
        "via": [
          "minimatch"
        ],
        "effects": [
          "js-beautify"
        ],
        "range": ">=8.0.1",
        "nodes": [
          "node_modules/js-beautify/node_modules/glob"
        ],
        "fixAvailable": {
          "name": "@vue/test-utils",
          "version": "2.4.0",
          "isSemVerMajor": true
        }
      },
      "js-beautify": {
        "name": "js-beautify",
        "severity": "low",
        "isDirect": false,
        "via": [
          "editorconfig",
          "glob"
        ],
        "effects": [
          "@vue/test-utils"
        ],
        "range": ">=1.14.5",
        "nodes": [
          "node_modules/js-beautify"
        ],
        "fixAvailable": {
          "name": "@vue/test-utils",
          "version": "2.4.0",
          "isSemVerMajor": true
        }
      },
      "json5": {
        "name": "json5",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1096543,
            "name": "json5",
            "dependency": "json5",
            "title": "Prototype Pollution in JSON5 via Parse Method",
            "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h",
            "severity": "high",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 7.1,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"
            },
            "range": "<1.0.2"
          }
        ],
        "effects": [
          "babel-core"
        ],
        "range": "<1.0.2",
        "nodes": [
          "node_modules/babel-core/node_modules/json5"
        ],
        "fixAvailable": {
          "name": "babel-core",
          "version": "4.7.16",
          "isSemVerMajor": true
        }
      },
      "minimatch": {
        "name": "minimatch",
        "severity": "low",
        "isDirect": false,
        "via": [
          "brace-expansion"
        ],
        "effects": [
          "@typescript-eslint/typescript-estree",
          "editorconfig",
          "eslint-plugin-n",
          "glob"
        ],
        "range": ">=5.0.0",
        "nodes": [
          "node_modules/editorconfig/node_modules/minimatch",
          "node_modules/eslint-config-wikimedia/node_modules/minimatch",
          "node_modules/eslint-plugin-n/node_modules/minimatch",
          "node_modules/js-beautify/node_modules/minimatch"
        ],
        "fixAvailable": {
          "name": "eslint-config-wikimedia",
          "version": "0.27.0",
          "isSemVerMajor": true
        }
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 10,
        "moderate": 0,
        "high": 2,
        "critical": 4,
        "total": 16
      },
      "dependencies": {
        "prod": 1,
        "dev": 1092,
        "optional": 3,
        "peer": 1,
        "peerOptional": 0,
        "total": 1092
      }
    }
  }
}

--- end ---
{"added": 1092, "removed": 0, "changed": 0, "audited": 1093, "funding": 149, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@typescript-eslint/typescript-estree": {"name": "@typescript-eslint/typescript-estree", "severity": "low", "isDirect": false, "via": ["minimatch"], "effects": ["@typescript-eslint/utils"], "range": ">=6.16.0", "nodes": ["node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/typescript-estree"], "fixAvailable": true}, "@typescript-eslint/utils": {"name": "@typescript-eslint/utils", "severity": "low", "isDirect": false, "via": ["@typescript-eslint/typescript-estree"], "effects": [], "range": ">=6.16.0", "nodes": ["node_modules/eslint-config-wikimedia/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils"], "fixAvailable": true}, "@vue/test-utils": {"name": "@vue/test-utils", "severity": "low", "isDirect": true, "via": ["js-beautify"], "effects": [], "range": ">=2.4.1", "nodes": ["node_modules/@vue/test-utils"], "fixAvailable": {"name": "@vue/test-utils", "version": "2.4.0", "isSemVerMajor": true}}, "babel-core": {"name": "babel-core", "severity": "critical", "isDirect": true, "via": ["babel-helpers", "babel-register", "babel-template", "babel-traverse", "json5"], "effects": ["babel-register"], "range": "5.8.20 - 7.0.0-beta.3", "nodes": ["node_modules/babel-core"], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}, "babel-helpers": {"name": "babel-helpers", "severity": "critical", "isDirect": false, "via": ["babel-template"], "effects": [], "range": "*", "nodes": ["node_modules/babel-helpers"], "fixAvailable": true}, "babel-register": {"name": "babel-register", "severity": "high", "isDirect": false, "via": ["babel-core"], "effects": ["babel-core"], "range": "*", "nodes": ["node_modules/babel-register"], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}, "babel-template": {"name": "babel-template", "severity": "critical", "isDirect": false, "via": ["babel-traverse"], "effects": ["babel-helpers"], "range": "*", "nodes": ["node_modules/babel-template"], "fixAvailable": true}, "babel-traverse": {"name": "babel-traverse", "severity": "critical", "isDirect": false, "via": [{"source": 1096879, "name": "babel-traverse", "dependency": "babel-traverse", "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code", "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92", "severity": "critical", "cwe": ["CWE-184", "CWE-697"], "cvss": {"score": 9.4, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"}, "range": "<7.23.2"}], "effects": ["babel-core", "babel-template"], "range": "*", "nodes": ["node_modules/babel-traverse"], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}, "brace-expansion": {"name": "brace-expansion", "severity": "low", "isDirect": false, "via": [{"source": 1105422, "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.1 <=4.0.0"}], "effects": ["minimatch"], "range": ">=2.0.1", "nodes": ["node_modules/editorconfig/node_modules/brace-expansion", "node_modules/eslint-config-wikimedia/node_modules/brace-expansion", "node_modules/eslint-plugin-n/node_modules/brace-expansion", "node_modules/js-beautify/node_modules/brace-expansion"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.27.0", "isSemVerMajor": true}}, "editorconfig": {"name": "editorconfig", "severity": "low", "isDirect": false, "via": ["minimatch"], "effects": ["js-beautify"], "range": ">=1.0.0", "nodes": ["node_modules/editorconfig"], "fixAvailable": {"name": "@vue/test-utils", "version": "2.4.0", "isSemVerMajor": true}}, "eslint-config-wikimedia": {"name": "eslint-config-wikimedia", "severity": "low", "isDirect": true, "via": ["eslint-plugin-n"], "effects": [], "range": ">=0.28.0", "nodes": ["node_modules/eslint-config-wikimedia"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.27.0", "isSemVerMajor": true}}, "eslint-plugin-n": {"name": "eslint-plugin-n", "severity": "low", "isDirect": false, "via": ["minimatch"], "effects": ["eslint-config-wikimedia"], "range": ">=17.0.0-0", "nodes": [""], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.27.0", "isSemVerMajor": true}}, "glob": {"name": "glob", "severity": "low", "isDirect": false, "via": ["minimatch"], "effects": ["js-beautify"], "range": ">=8.0.1", "nodes": ["node_modules/js-beautify/node_modules/glob"], "fixAvailable": {"name": "@vue/test-utils", "version": "2.4.0", "isSemVerMajor": true}}, "js-beautify": {"name": "js-beautify", "severity": "low", "isDirect": false, "via": ["editorconfig", "glob"], "effects": ["@vue/test-utils"], "range": ">=1.14.5", "nodes": ["node_modules/js-beautify"], "fixAvailable": {"name": "@vue/test-utils", "version": "2.4.0", "isSemVerMajor": true}}, "json5": {"name": "json5", "severity": "high", "isDirect": false, "via": [{"source": 1096543, "name": "json5", "dependency": "json5", "title": "Prototype Pollution in JSON5 via Parse Method", "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h", "severity": "high", "cwe": ["CWE-1321"], "cvss": {"score": 7.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"}, "range": "<1.0.2"}], "effects": ["babel-core"], "range": "<1.0.2", "nodes": ["node_modules/babel-core/node_modules/json5"], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}, "minimatch": {"name": "minimatch", "severity": "low", "isDirect": false, "via": ["brace-expansion"], "effects": ["@typescript-eslint/typescript-estree", "editorconfig", "eslint-plugin-n", "glob"], "range": ">=5.0.0", "nodes": ["node_modules/editorconfig/node_modules/minimatch", "node_modules/eslint-config-wikimedia/node_modules/minimatch", "node_modules/eslint-plugin-n/node_modules/minimatch", "node_modules/js-beautify/node_modules/minimatch"], "fixAvailable": {"name": "eslint-config-wikimedia", "version": "0.27.0", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 10, "moderate": 0, "high": 2, "critical": 4, "total": 16}, "dependencies": {"prod": 1, "dev": 1092, "optional": 3, "peer": 1, "peerOptional": 0, "total": 1092}}}}
$ /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 ERESOLVE overriding peer dependency
npm WARN While resolving: eslint-plugin-jest@28.11.1
npm WARN Found: peer eslint@"^7.0.0 || ^8.0.0" from the root project
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer eslint@"^7.0.0 || ^8.0.0" from the root project
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.0.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.0.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.
npm WARN deprecated core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
--- stdout ---

added 1091 packages, and audited 1092 packages in 14s

149 packages are looking for funding
  run `npm fund` for details

# npm audit report

babel-traverse  *
Severity: critical
Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code - https://github.com/advisories/GHSA-67hx-6x53-jw92
fix available via `npm audit fix --force`
Will install babel-core@4.7.16, which is a breaking change
node_modules/babel-traverse
  babel-core  5.8.20 - 7.0.0-beta.3
  Depends on vulnerable versions of babel-helpers
  Depends on vulnerable versions of babel-register
  Depends on vulnerable versions of babel-template
  Depends on vulnerable versions of babel-traverse
  Depends on vulnerable versions of json5
  node_modules/babel-core
    babel-register  *
    Depends on vulnerable versions of babel-core
    node_modules/babel-register
  babel-template  *
  Depends on vulnerable versions of babel-traverse
  node_modules/babel-template
    babel-helpers  *
    Depends on vulnerable versions of babel-template
    node_modules/babel-helpers

brace-expansion  >=2.0.1
brace-expansion Regular Expression Denial of Service vulnerability - https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
fix available via `npm audit fix --force`
Will install eslint-config-wikimedia@0.27.0, which is a breaking change
node_modules/editorconfig/node_modules/brace-expansion
node_modules/eslint-config-wikimedia/node_modules/brace-expansion
node_modules/eslint-plugin-n/node_modules/brace-expansion
node_modules/js-beautify/node_modules/brace-expansion
  minimatch  >=5.0.0
  Depends on vulnerable versions of brace-expansion
  node_modules/editorconfig/node_modules/minimatch
  node_modules/eslint-config-wikimedia/node_modules/minimatch
  node_modules/eslint-plugin-n/node_modules/minimatch
  node_modules/js-beautify/node_modules/minimatch
    @typescript-eslint/typescript-estree  >=6.16.0
    Depends on vulnerable versions of minimatch
    node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/typescript-estree
    node_modules/eslint-plugin-n/node_modules/@typescript-eslint/typescript-estree
      @typescript-eslint/utils  >=6.16.0
      Depends on vulnerable versions of @typescript-eslint/typescript-estree
      node_modules/eslint-config-wikimedia/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils
      node_modules/eslint-plugin-n/node_modules/@typescript-eslint/utils
        eslint-plugin-n  >=17.0.0-0
        Depends on vulnerable versions of @typescript-eslint/utils
        Depends on vulnerable versions of minimatch
        node_modules/eslint-plugin-n
          eslint-config-wikimedia  >=0.28.0
          Depends on vulnerable versions of eslint-plugin-n
          node_modules/eslint-config-wikimedia
    editorconfig  >=1.0.0
    Depends on vulnerable versions of minimatch
    node_modules/editorconfig
      js-beautify  >=1.14.5
      Depends on vulnerable versions of editorconfig
      Depends on vulnerable versions of glob
      node_modules/js-beautify
        @vue/test-utils  >=2.4.1
        Depends on vulnerable versions of js-beautify
        node_modules/@vue/test-utils
    glob  >=8.0.1
    Depends on vulnerable versions of minimatch
    node_modules/js-beautify/node_modules/glob

json5  <1.0.2
Severity: high
Prototype Pollution in JSON5 via Parse Method - https://github.com/advisories/GHSA-9c47-m6qq-7p4h
fix available via `npm audit fix --force`
Will install babel-core@4.7.16, which is a breaking change
node_modules/babel-core/node_modules/json5

16 vulnerabilities (10 low, 2 high, 4 critical)

To address issues that do not require attention, run:
  npm audit fix

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.0.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.0.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.
npm WARN deprecated core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
--- stdout ---

added 1091 packages, and audited 1092 packages in 17s

149 packages are looking for funding
  run `npm fund` for details

16 vulnerabilities (10 low, 2 high, 4 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS tests/jest/store/mutations.test.js
PASS tests/jest/store/actions.test.js
  ● Console

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

    console.warn
      jQuery.Deferred exception: mw.track is not a function TypeError: mw.track is not a function
          at track (/src/repo/resources/store/actions.js:325:7)
          at fire (/src/repo/node_modules/jquery/dist/jquery.js:3223:31)
          at fireWith (/src/repo/node_modules/jquery/dist/jquery.js:3353:7)
          at mightThrow (/src/repo/node_modules/jquery/dist/jquery.js:3548:46)
          at process (/src/repo/node_modules/jquery/dist/jquery.js:3557:12)
          at Timeout.task [as _onTimeout] (/src/repo/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
          at listOnTimeout (node:internal/timers:569:17)
          at processTimers (node:internal/timers:512:7) undefined

      at Function.jQuery.Deferred.exceptionHook (node_modules/jquery/dist/jquery.js:3783:18)
      at process (node_modules/jquery/dist/jquery.js:3561:29)
      at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)

PASS tests/jest/components/QuickView.test.js
  ● Console

    console.warn
      [Vue warn]: Property "rootClasses" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      592 | 			}
      593 | 		},
    > 594 |
          | ^
      595 | 		mimeType: function () {
      596 | 			return this.imageinfo[ 0 ].mime;
      597 | 		},

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Object.get (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3117:9)
      at Proxy.rootClasses (resources/components/QuickView.vue:594:64)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6445:16)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5262:46)
      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 shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12)
      at Object.<anonymous> (tests/jest/components/QuickView.test.js:224:20)

    console.warn
      [Vue warn]: Property "isImage" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      600 | 			if ( this.isVideo || this.isAudio ) {
      601 | 				return {
    > 602 | 					autoplay: false,
          | 					                ^
      603 | 					controls: true,
      604 | 					fluid: true,
      605 | 					poster: this.videoinfo[ 0 ].thumburl,

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Object.get (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3117:9)
      at Proxy.isImage (resources/components/QuickView.vue:602:64)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6445:16)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5262:46)
      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 shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12)
      at Object.<anonymous> (tests/jest/components/QuickView.test.js:224:20)

    console.warn
      [Vue warn]: Property "isVideo" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      616 | 		 * Emit a close event. If the user triggered this from the keyboard instead
      617 | 		 * of by clicking, add an additional parameter so that the parent knows to
    > 618 | 		 * restore focus to the originating search result.
          | 		                                                  ^
      619 | 		 *
      620 | 		 * @param {Event} event
      621 | 		 * @fires close

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Object.get (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3117:9)
      at Proxy.isVideo (resources/components/QuickView.vue:618:88)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6445:16)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5262:46)
      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 shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12)
      at Object.<anonymous> (tests/jest/components/QuickView.test.js:224:20)

    console.warn
      [Vue warn]: Property "isAudio" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      616 | 		 * Emit a close event. If the user triggered this from the keyboard instead
      617 | 		 * of by clicking, add an additional parameter so that the parent knows to
    > 618 | 		 * restore focus to the originating search result.
          | 		                                                  ^
      619 | 		 *
      620 | 		 * @param {Event} event
      621 | 		 * @fires close

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Object.get (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3117:9)
      at Proxy.isAudio (resources/components/QuickView.vue:618:104)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6445:16)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5262:46)
      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 shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12)
      at Object.<anonymous> (tests/jest/components/QuickView.test.js:224:20)

    console.warn
      [Vue warn]: Property "displayName" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      654 |
      655 | 		/**
    > 656 | 		 * Set the height of the div wrapping the thumbnail image to the display
          | 		                                                                        ^
      657 | 		 * height of that image to avoid a layout jump when the image loads.
      658 | 		 */
      659 | 		getThumbnailWrapperStyle: function () {

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Object.get (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3117:9)
      at Proxy.displayName (resources/components/QuickView.vue:656:503)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6445:16)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5262:46)
      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 shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12)
      at Object.<anonymous> (tests/jest/components/QuickView.test.js:224:20)

    console.warn
      [Vue warn]: Property "description" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      658 | 		 */
      659 | 		getThumbnailWrapperStyle: function () {
    > 660 | 			if ( !this.imageinfo ) {
          | 			                        ^
      661 | 				return;
      662 | 			}
      663 |

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Object.get (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3117:9)
      at Proxy.description (resources/components/QuickView.vue:660:139)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6445:16)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5262:46)
      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 shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12)
      at Object.<anonymous> (tests/jest/components/QuickView.test.js:224:20)

    console.warn
      [Vue warn]: Property "artist" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      660 | 			if ( !this.imageinfo ) {
      661 | 				return;
    > 662 | 			}
          | 			 ^
      663 |
      664 | 			const imgWidth = this.imageinfo[ 0 ].width;
      665 | 			const imgHeight = this.imageinfo[ 0 ].height;

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Object.get (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3117:9)
      at Proxy.artist (resources/components/QuickView.vue:662:94)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6445:16)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5262:46)
      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 shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12)
      at Object.<anonymous> (tests/jest/components/QuickView.test.js:224:20)

    console.warn
      [Vue warn]: Property "licenseText" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      664 | 			const imgWidth = this.imageinfo[ 0 ].width;
      665 | 			const imgHeight = this.imageinfo[ 0 ].height;
    > 666 | 			const elWidth = this.$refs.header.offsetWidth;
          | 			                                              ^
      667 | 			let height;
      668 | 			if ( imgWidth >= imgHeight ) {
      669 | 				// For landscape-oriented images, calculate the height

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Object.get (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3117:9)
      at Proxy.licenseText (resources/components/QuickView.vue:666:234)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6445:16)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5262:46)
      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 shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12)
      at Object.<anonymous> (tests/jest/components/QuickView.test.js:224:20)

    console.warn
      [Vue warn]: Property "displayName" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      678 | 				// A portrait-oriented image could be limited by several
      679 | 				// constraints: the natural image height (e.g. an original file
    > 680 | 				// that's only 200px tall), the CSS-enforced max-height of the
          | 				                                                              ^
      681 | 				// image (60vh), or the max-width of the container.
      682 | 				height = Math.min(
      683 | 					imgHeight,

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Object.get (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3117:9)
      at Proxy.displayName (resources/components/QuickView.vue:680:197)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6445:16)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5262:46)
      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 shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12)
      at Object.<anonymous> (tests/jest/components/QuickView.test.js:224:20)

    console.warn
      [Vue warn]: Property "displayNameWithoutExtension" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      684 | 					window.innerHeight * 0.6,
      685 | 					( imgHeight * elWidth ) / imgWidth
    > 686 | 				);
          | 				  ^
      687 | 			}
      688 |
      689 | 			// For very short images, we need to add some vertical padding so

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Object.get (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3117:9)
      at Proxy.displayNameWithoutExtension (resources/components/QuickView.vue:686:106)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6445:16)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5262:46)
      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 shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12)
      at Object.<anonymous> (tests/jest/components/QuickView.test.js:224:20)

    console.warn
      [Vue warn]: Property "creationDate" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      691 | 			// positioned controls.
      692 | 			if ( height < 100 ) {
    > 693 | 				height += 30;
          | 				             ^
      694 | 				// We'll use this to add a class to the image to add 15px of
      695 | 				// top and bottom padding.
      696 | 				this.isExtraSmall = true;

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Object.get (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3117:9)
      at Proxy.creationDate (resources/components/QuickView.vue:693:240)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6445:16)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5262:46)
      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 shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12)
      at Object.<anonymous> (tests/jest/components/QuickView.test.js:224:20)

    console.warn
      [Vue warn]: Property "resolution" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      695 | 				// top and bottom padding.
      696 | 				this.isExtraSmall = true;
    > 697 | 			}
          | 			 ^
      698 |
      699 | 			this.thumbnailWrapperStyle = {
      700 | 				height: height + 'px',

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Object.get (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3117:9)
      at Proxy.resolution (resources/components/QuickView.vue:697:94)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6445:16)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5262:46)
      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 shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12)
      at Object.<anonymous> (tests/jest/components/QuickView.test.js:224:20)

    console.warn
      [Vue warn]: Property "mimeType" was accessed during render but is not defined on instance. 
        at <QuickView title="File:Tired 20-year-old cat.jpg" canonicalurl="https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg" imageinfo= [
        {
          size: 3017217,
          width: 2484,
          height: 1870,
          thumburl: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/239px-Tired_20-year-old_cat.jpg',
          thumbwidth: 239,
          thumbheight: 180,
          responsiveUrls: {
            '2': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/478px-Tired_20-year-old_cat.jpg',
            '1.5': 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Tired_20-year-old_cat.jpg/359px-Tired_20-year-old_cat.jpg'
          },
          url: 'https://upload.wikimedia.org/wikipedia/commons/3/32/Tired_20-year-old_cat.jpg',
          descriptionurl: 'https://commons.wikimedia.org/wiki/File:Tired_20-year-old_cat.jpg',
          descriptionshorturl: 'https://commons.wikimedia.org/w/index.php?curid=9809267',
          extmetadata: {
            DateTime: [Object],
            ObjectName: [Object],
            CommonsMetadataExtension: [Object],
            Categories: [Object],
            Assessments: [Object],
            ImageDescription: [Object],
            DateTimeOriginal: [Object],
            Credit: [Object],
            Artist: [Object],
            Permission: [Object],
            LicenseShortName: [Object],
            UsageTerms: [Object],
            AttributionRequired: [Object],
            Attribution: [Object],
            LicenseUrl: [Object],
            Copyrighted: [Object],
            Restrictions: [Object],
            License: [Object]
          },
          mime: 'image/jpeg'
        }
      ]  ... > 
        at <VTUROOT>

      697 | 			}
      698 |
    > 699 | 			this.thumbnailWrapperStyle = {
          | 			                              ^
      700 | 				height: height + 'px',
      701 | 				width: '100%'
      702 | 			};

      at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Object.get (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3117:9)
      at Proxy.mimeType (resources/components/QuickView.vue:699:265)
      at renderComponentRoot (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6445:16)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5262:46)
      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 shallowMount (node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:8434:12)
      at Object.<anonymous> (tests/jest/components/QuickView.test.js:224:20)

PASS tests/jest/components/SearchResults.test.js
PASS tests/jest/mixins/autocompleteLookupHandler.test.js
PASS tests/jest/components/NamespaceFilterDialog.test.js
  ● Console

    console.warn
      [Vue warn]: CdxRadio: Inputs must have an associated label. Provide one of the following:
       - A label via the appropriate slot
       - An `aria-label` attribute set to the label text
       - An `aria-labelledby` attribute set to the ID of the label element 
        at <CdxRadio key="test" modelValue=undefined onUpdate:modelValue=fn  ... > 
        at <Transition name="sd-scale" appear="" > 
        at <SdDialog class="sdms-namespace-dialog" active=true title="mediasearch-filter-namespace-dialog-title"  ... > 
        at <NamespaceFilterDialog active=true items= [ { value: 'test' } ] namespaces= {}  ... > 
        at <VTUROOT>

      20 | 	describe( 'when items are set', () => {
      21 | 		it( 'render a cdx-radio', () => {
    > 22 | 			const wrapper = mount( Component, {
         | 			                ^
      23 | 				props: {
      24 | 					active: true,
      25 | 					items: [ { value: 'test' } ],

      at Object.warn$1 [as warn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13)
      at Je (node_modules/@wikimedia/codex/dist/codex.cjs:1:6967)
      at et (node_modules/@wikimedia/codex/dist/codex.cjs:1:20047)
      at setup (node_modules/@wikimedia/codex/dist/codex.cjs:1:112853)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:200:19)
      at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7848:25)
      at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7809:36)
      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 processFragment (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5068:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4628:9)
      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 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 mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7)
      at processFragment (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5068:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4628:9)
      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 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 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 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 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 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 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/jest/components/NamespaceFilterDialog.test.js:22:20)

PASS tests/jest/components/base/autocompleteSearchInput.test.js
  ● Console

    console.warn
      [Vue warn]: Invalid prop: type check failed for prop "modelValue". Expected String | Number, got Object  
        at <CdxTextInput id="tab__input" ref="input" modelValue= { value: 'active' }  ... > 
        at <SdAutocompleteSearchInput name="tab" label="actions" lookupResults= [ { value: 'active' } ]  ... > 
        at <VTUROOT>

      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:4363:7)
      at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5)
      at updateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4144:5)
      at updateComponentPreRender (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5404:5)
      at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5326:11)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19)
      at updateComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5201:18)
      at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5136:7)
      at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11)
      at patchBlockChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5008:7)
      at patchElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4926:7)
      at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4785: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:5349:9)
      at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19)
      at ReactiveEffect.runIfDirty (node_modules/@vue/reactivity/dist/reactivity.cjs.js:267:12)
      at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:200:33)
      at flushJobs (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:405:9)

PASS tests/jest/mixins/restoreHistoryHandler.test.js
PASS tests/jest/components/base/select.test.js
PASS tests/jest/store/store.test.js
PASS tests/jest/components/app.test.js (5.259 s)
  ● Console

    console.error
      [vuex] unknown mutation type: clearSearchWarnings

      189 | 	] ), {
      190 | 		/**
    > 191 | 		 * Keep UI state, URL, and history in sync as the user changes tabs
          | 		         ^
      192 | 		 * Filter and sort preferences are tab-specific, so they need to be
      193 | 		 * re-created every time the current tab changes.
      194 | 		 *

      at Store.commit (node_modules/vuex/dist/vuex.cjs.js:978:15)
      at Store.boundCommit [as commit] (node_modules/vuex/dist/vuex.cjs.js:919:19)
      at Proxy.mappedMutation (node_modules/vuex/dist/vuex.cjs.js:1214:18)
      at Proxy.clearSearchWarnings (resources/components/App.vue:191:12)
      at Object.<anonymous> (tests/jest/components/app.test.js:353:15)

    console.error
      [vuex] unknown mutation type: clearSearchWarnings

      189 | 	] ), {
      190 | 		/**
    > 191 | 		 * Keep UI state, URL, and history in sync as the user changes tabs
          | 		         ^
      192 | 		 * Filter and sort preferences are tab-specific, so they need to be
      193 | 		 * re-created every time the current tab changes.
      194 | 		 *

      at Store.commit (node_modules/vuex/dist/vuex.cjs.js:978:15)
      at Store.boundCommit [as commit] (node_modules/vuex/dist/vuex.cjs.js:919:19)
      at Proxy.mappedMutation (node_modules/vuex/dist/vuex.cjs.js:1214:18)
      at Proxy.clearSearchWarnings (resources/components/App.vue:191:12)
      at Object.<anonymous> (tests/jest/components/app.test.js:353:15)

    console.error
      [vuex] unknown mutation type: clearSearchWarnings

      189 | 	] ), {
      190 | 		/**
    > 191 | 		 * Keep UI state, URL, and history in sync as the user changes tabs
          | 		         ^
      192 | 		 * Filter and sort preferences are tab-specific, so they need to be
      193 | 		 * re-created every time the current tab changes.
      194 | 		 *

      at Store.commit (node_modules/vuex/dist/vuex.cjs.js:978:15)
      at Store.boundCommit [as commit] (node_modules/vuex/dist/vuex.cjs.js:919:19)
      at Proxy.mappedMutation (node_modules/vuex/dist/vuex.cjs.js:1214:18)
      at Proxy.clearSearchWarnings (resources/components/App.vue:191:12)
      at Object.<anonymous> (tests/jest/components/app.test.js:353:15)

    console.error
      [vuex] unknown mutation type: clearSearchWarnings

      189 | 	] ), {
      190 | 		/**
    > 191 | 		 * Keep UI state, URL, and history in sync as the user changes tabs
          | 		         ^
      192 | 		 * Filter and sort preferences are tab-specific, so they need to be
      193 | 		 * re-created every time the current tab changes.
      194 | 		 *

      at Store.commit (node_modules/vuex/dist/vuex.cjs.js:978:15)
      at Store.boundCommit [as commit] (node_modules/vuex/dist/vuex.cjs.js:919:19)
      at Proxy.mappedMutation (node_modules/vuex/dist/vuex.cjs.js:1214:18)
      at Proxy.clearSearchWarnings (resources/components/App.vue:191:12)
      at Object.<anonymous> (tests/jest/components/app.test.js:353:15)

PASS tests/jest/components/SearchFilters.test.js
PASS tests/jest/components/results/pageResult.test.js
PASS tests/jest/components/results/ImageResult.test.js
PASS tests/jest/components/results/otherResult.test.js
PASS tests/jest/components/results/videoResult.test.js
PASS tests/jest/mixins/observer.test.js
PASS tests/jest/components/base/selectMenu.test.js
PASS tests/jest/components/base/dialog.test.js
PASS tests/jest/components/results/audioResult.test.js
PASS tests/jest/store/getters.test.js
PASS tests/jest/components/base/copyTextLayout.test.js
PASS tests/jest/components/UserNotice.test.js
PASS tests/jest/components/base/player.test.js
PASS tests/jest/components/base/image.test.js
PASS tests/jest/components/DidYouMean.test.js
PASS tests/jest/components/SearchWarnings.test.js
PASS tests/jest/components/EmptyState.test.js
PASS tests/jest/components/NoResults.test.js
PASS tests/jest/components/EndOfResults.test.js
PASS tests/jest/components/Spinner.test.js

Test Suites: 31 passed, 31 total
Tests:       6 todo, 463 passed, 469 total
Snapshots:   0 total
Time:        12.02 s
Ran all test suites.
--- stdout ---

> media-search@0.1.0 test
> grunt test && npm run test:unit

Running "eslint:all" (eslint) task

/src/repo/resources/components/SearchFilters.vue
  275:1  warning  The type 'filter-change' is undefined                                              jsdoc/no-undefined-types
  359:3  warning  JSDoc @return declaration present but return expression not available in function  jsdoc/require-returns-check

/src/repo/resources/components/base/AutocompleteSearchInput.vue
  259:1  warning  The type 'input' is undefined   jsdoc/no-undefined-types
  291:1  warning  The type 'enter' is undefined   jsdoc/no-undefined-types
  310:1  warning  The type 'submit' is undefined  jsdoc/no-undefined-types

/src/repo/resources/components/base/Dialog.vue
  193:1  warning  The type 'progress' is undefined  jsdoc/no-undefined-types
  201:1  warning  The type 'key' is undefined       jsdoc/no-undefined-types

/src/repo/resources/components/base/Select.vue
  263:1  warning  The type 'select' is undefined  jsdoc/no-undefined-types
  299:1  warning  The type 'submit' is undefined  jsdoc/no-undefined-types

/src/repo/resources/components/base/SelectMenu.vue
  107:1  warning  The type 'select' is undefined  jsdoc/no-undefined-types

/src/repo/resources/mixins/autocompleteLookupHandler.js
  148:1  warning  This line has a length of 120. Maximum allowed is 110  max-len
  202:1  warning  This line has a length of 151. Maximum allowed is 110  max-len

/src/repo/resources/mixins/searchResult.js
  99:1  warning  The type 'show-details' is undefined  jsdoc/no-undefined-types

/src/repo/resources/store/actions.js
  225:9  warning  Prefer .then to .done                                  no-jquery/no-done-fail
  226:1  warning  This line has a length of 118. Maximum allowed is 110  max-len
  318:2  warning  Prefer .then to .done                                  no-jquery/no-done-fail

✖ 16 problems (0 errors, 16 warnings)


Running "stylelint:all" (stylelint) task
>> Linted 52 files without errors

Running "banana:MediaSearch" (banana) task
>> 1 message directory checked.

Done.

> media-search@0.1.0 test:unit
> jest

----------------------------------|---------|----------|---------|---------|-------------------------------------------------------
File                              | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                                     
----------------------------------|---------|----------|---------|---------|-------------------------------------------------------
All files                         |   89.04 |    78.36 |   86.01 |   89.07 |                                                       
 resources                        |   55.55 |    33.33 |      60 |   58.82 |                                                       
  constants.js                    |     100 |      100 |     100 |     100 |                                                       
  ensureArray.js                  |       0 |        0 |       0 |       0 | 12-20                                                 
  getLocationAgnosticMwApi.js     |   81.81 |       50 |     100 |   81.81 | 11,32                                                 
 resources/components             |   88.57 |    79.04 |   82.38 |    88.5 |                                                       
  App.vue                         |      80 |    54.54 |   82.75 |    79.8 | 119-124,199,205,267-276,299-311,328-332               
  DidYouMean.vue                  |     100 |      100 |     100 |     100 |                                                       
  EmptyState.vue                  |     100 |      100 |     100 |     100 |                                                       
  EndOfResults.vue                |     100 |      100 |     100 |     100 |                                                       
  NamespaceFilterDialog.vue       |   95.12 |      100 |   89.47 |   95.12 | 204,219                                               
  NoResults.vue                   |     100 |      100 |     100 |     100 |                                                       
  QuickView.vue                   |   90.69 |    86.45 |      82 |   90.69 | 322-346,412-413,422,467,596-616,637,649,706           
  SearchError.vue                 |   83.33 |        0 |       0 |   83.33 | 12,33                                                 
  SearchFilters.vue               |    93.1 |    82.05 |   85.29 |   92.94 | 115,131,379-388,408-411                               
  SearchResults.vue               |   80.74 |    71.57 |   73.17 |   80.59 | 280-295,343-359,450-525                               
  SearchWarnings.vue              |     100 |      100 |     100 |     100 |                                                       
  Spinner.vue                     |     100 |      100 |     100 |     100 |                                                       
  UserNotice.vue                  |     100 |      100 |     100 |     100 |                                                       
 resources/components/base        |   88.63 |    80.57 |   83.62 |   88.48 |                                                       
  AutocompleteSearchInput.vue     |   81.25 |    68.29 |   79.31 |   81.25 | 142-145,207,282-297,310-311,342-374                   
  CopyTextLayout.vue              |     100 |      100 |     100 |     100 |                                                       
  Dialog.vue                      |   97.56 |    92.85 |   94.44 |   97.56 | 205                                                   
  Image.vue                       |     100 |     87.5 |     100 |     100 | 62                                                    
  Observer.vue                    |      80 |      100 |       0 |      80 | 28,45                                                 
  Player.vue                      |     100 |       50 |   88.88 |     100 | 43                                                    
  Select.vue                      |   79.51 |    75.75 |   77.41 |   79.26 | 99,235-254,273,350-358                                
  SelectMenu.vue                  |   91.89 |    96.15 |   86.66 |   91.42 | 144,177-180                                           
 resources/components/base/mixins |     100 |      100 |     100 |     100 |                                                       
  observer.js                     |     100 |      100 |     100 |     100 |                                                       
 resources/components/results     |   95.48 |    67.14 |     100 |   95.48 |                                                       
  AudioResult.vue                 |     100 |    66.66 |     100 |     100 | 64,74                                                 
  ImageResult.vue                 |   95.65 |       75 |     100 |   95.65 | 76                                                    
  OtherResult.vue                 |   94.11 |       60 |     100 |   94.11 | 29,41                                                 
  PageResult.vue                  |    90.9 |       70 |     100 |    90.9 | 53,101,105                                            
  VideoResult.vue                 |     100 |       70 |     100 |     100 | 76-79                                                 
 resources/mixins                 |   94.07 |    78.08 |   94.73 |   93.93 |                                                       
  autocompleteLookupHandler.js    |     100 |    78.94 |      95 |     100 | 69,115-133,195                                        
  restoreHistoryHandler.js        |   94.44 |     87.5 |     100 |   94.44 | 60-61                                                 
  searchResult.js                 |   88.23 |    72.22 |    87.5 |   87.87 | 57,79,104,122                                         
  searchResultTimeBased.js        |   81.81 |    66.66 |     100 |   81.81 | 17,34                                                 
 resources/models                 |     100 |      100 |     100 |     100 |                                                       
  SearchFilter.js                 |     100 |      100 |     100 |     100 |                                                       
 resources/plugins                |       0 |      100 |       0 |       0 |                                                       
  eventLogger.js                  |       0 |      100 |       0 |       0 | 6-22                                                  
 resources/store                  |   89.89 |    79.16 |   92.59 |   90.14 |                                                       
  actions.js                      |   88.39 |     82.4 |   82.35 |   88.82 | 68,98,122,144,160-161,219,299,379-387,432-433,458-464 
  getters.js                      |     100 |      100 |     100 |     100 |                                                       
  index.js                        |       0 |      100 |     100 |       0 | 1-10                                                  
  mutations.js                    |     100 |      100 |     100 |     100 |                                                       
  state.js                        |    92.3 |    63.63 |     100 |   91.66 | 11                                                    
----------------------------------|---------|----------|---------|---------|-------------------------------------------------------

--- end ---
{}
{}
{}
{}
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

--- end ---
[DNM] there are no updates
$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmpmr8ckho6
--- stdout ---
[master c6da460] [DNM] there are no updates
 1 file changed, 187 insertions(+), 4 deletions(-)

--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From c6da46079d6d1b9aef339159adfe8769915b0cf7 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Wed, 11 Jun 2025 04:34:26 +0000
Subject: [PATCH] [DNM] there are no updates

Change-Id: I4a6bb4700df50987b5f404cc4cfff7ee23d5fcad
---
 package-lock.json | 191 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 187 insertions(+), 4 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 73b2103..2682fc6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5970,19 +5970,21 @@
 			}
 		},
 		"node_modules/eslint-plugin-n": {
-			"version": "17.18.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.18.0.tgz",
-			"integrity": "sha512-hvZ/HusueqTJ7VDLoCpjN0hx4N4+jHIWTXD4TMLHy9F23XkDagR9v+xQWRWR57yY55GPF8NnD4ox9iGTxirY8A==",
+			"version": "17.19.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.19.0.tgz",
+			"integrity": "sha512-qxn1NaDHtizbhVAPpbMT8wWFaLtPnwhfN/e+chdu2i6Vgzmo/tGM62tcJ1Hf7J5Ie4dhse3DOPMmDxduzfifzw==",
 			"dev": true,
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.5.0",
+				"@typescript-eslint/utils": "^8.26.1",
 				"enhanced-resolve": "^5.17.1",
 				"eslint-plugin-es-x": "^7.8.0",
 				"get-tsconfig": "^4.8.1",
 				"globals": "^15.11.0",
 				"ignore": "^5.3.2",
 				"minimatch": "^9.0.5",
-				"semver": "^7.6.3"
+				"semver": "^7.6.3",
+				"ts-declaration-location": "^1.0.6"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5994,6 +5996,141 @@
 				"eslint": ">=8.23.0"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/project-service": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
+			"integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/tsconfig-utils": "^8.34.0",
+				"@typescript-eslint/types": "^8.34.0",
+				"debug": "^4.3.4"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/scope-manager": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
+			"integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/visitor-keys": "8.34.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/tsconfig-utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
+			"integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/types": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+			"integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/typescript-estree": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
+			"integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/project-service": "8.34.0",
+				"@typescript-eslint/tsconfig-utils": "8.34.0",
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/visitor-keys": "8.34.0",
+				"debug": "^4.3.4",
+				"fast-glob": "^3.3.2",
+				"is-glob": "^4.0.3",
+				"minimatch": "^9.0.4",
+				"semver": "^7.6.0",
+				"ts-api-utils": "^2.1.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/utils": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
+			"integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
+			"dev": true,
+			"dependencies": {
+				"@eslint-community/eslint-utils": "^4.7.0",
+				"@typescript-eslint/scope-manager": "8.34.0",
+				"@typescript-eslint/types": "8.34.0",
+				"@typescript-eslint/typescript-estree": "8.34.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			},
+			"peerDependencies": {
+				"eslint": "^8.57.0 || ^9.0.0",
+				"typescript": ">=4.8.4 <5.9.0"
+			}
+		},
+		"node_modules/eslint-plugin-n/node_modules/@typescript-eslint/visitor-keys": {
+			"version": "8.34.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
+			"integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
+			"dev": true,
+			"dependencies": {
+				"@typescript-eslint/types": "8.34.0",
+				"eslint-visitor-keys": "^4.2.0"
+			},
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
 		"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",
@@ -6003,6 +6140,18 @@
 				"balanced-match": "^1.0.0"
 			}
 		},
+		"node_modules/eslint-plugin-n/node_modules/eslint-visitor-keys": {
+			"version": "4.2.1",
+			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+			"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+			"dev": true,
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"url": "https://opencollective.com/eslint"
+			}
+		},
 		"node_modules/eslint-plugin-n/node_modules/globals": {
 			"version": "15.15.0",
 			"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
@@ -12835,6 +12984,40 @@
 				"typescript": ">=4.8.4"
 			}
 		},
+		"node_modules/ts-declaration-location": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz",
+			"integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "ko-fi",
+					"url": "https://ko-fi.com/rebeccastevens"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/ts-declaration-location"
+				}
+			],
+			"dependencies": {
+				"picomatch": "^4.0.2"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.0.0"
+			}
+		},
+		"node_modules/ts-declaration-location/node_modules/picomatch": {
+			"version": "4.0.2",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+			"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+			"dev": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/jonschlinkert"
+			}
+		},
 		"node_modules/tsconfig": {
 			"version": "7.0.0",
 			"resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz",
-- 
2.39.5


--- end ---
Source code is licensed under the AGPL.