This run took 151 seconds.
From cf4588fbd62fe53009acd1df828d4f6014281e19 Mon Sep 17 00:00:00 2001 From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org> Date: Wed, 30 Jul 2025 03:27:19 +0000 Subject: [PATCH] build: Updating npm dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * eslint-config-wikimedia: 0.30.0 → 0.31.0 * @wikimedia/codex: 2.2.0 → 2.2.1 * @wikimedia/codex-icons: 2.2.0 → 2.2.1 Change-Id: I8973fb8500d40dfe7d49adfd21ab9225397f1365 --- package-lock.json | 722 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 6 +- 2 files changed, 705 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index 958b5ae..8f19127 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,10 +12,10 @@ "@vue/compiler-sfc": "3.5.13", "@vue/test-utils": "2.4.6", "@vue/vue3-jest": "29.2.6", - "@wikimedia/codex": "2.2.0", - "@wikimedia/codex-icons": "2.2.0", + "@wikimedia/codex": "2.2.1", + "@wikimedia/codex-icons": "2.2.1", "babel-core": "^6.26.3", - "eslint-config-wikimedia": "0.30.0", + "eslint-config-wikimedia": "0.31.0", "eslint-plugin-jest": "27.2.1", "grunt": "1.6.1", "grunt-banana-checker": "0.13.0", @@ -2933,6 +2933,237 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@stylistic/eslint-plugin": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-3.1.0.tgz", + "integrity": "sha512-pA6VOrOqk0+S8toJYhQGv2MWpQQR0QpeUo9AhNkC49Y26nxBQ/nH1rta9bUU1rPw2fJ1zZEMV5oCX5AazT7J2g==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^8.13.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "estraverse": "^5.3.0", + "picomatch": "^4.0.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": ">=8.40.0" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/project-service": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz", + "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==", + "dev": true, + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.38.0", + "@typescript-eslint/types": "^8.38.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/@stylistic/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.38.0.tgz", + "integrity": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz", + "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==", + "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/@stylistic/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.38.0.tgz", + "integrity": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz", + "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/project-service": "8.38.0", + "@typescript-eslint/tsconfig-utils": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.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/@stylistic/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.38.0.tgz", + "integrity": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.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/@stylistic/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.38.0.tgz", + "integrity": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@stylistic/eslint-plugin/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/@stylistic/eslint-plugin/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@stylistic/stylelint-config": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-2.0.0.tgz", @@ -3184,6 +3415,85 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/project-service": { "version": "8.33.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.33.0.tgz", @@ -3248,6 +3558,35 @@ "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/types": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", @@ -3535,13 +3874,13 @@ "dev": true }, "node_modules/@wikimedia/codex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.2.0.tgz", - "integrity": "sha512-r9PEWC45ouWYviufzm7NqVFDPQExzdr8jEhCY3gJq0ZCqN0G2mn/LfucbtaAcpMWgWy5x7VLqR09hGb00Dh8bA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.2.1.tgz", + "integrity": "sha512-EJggU6gsvUZApNyASm8x/aYnqZqeagj0NhpiQIJg4pNBx16OconVSLPoGIYiQ/KIsUz8K7Osxt6IFw1rESMS4w==", "dev": true, "dependencies": { "@floating-ui/vue": "1.0.6", - "@wikimedia/codex-icons": "2.2.0" + "@wikimedia/codex-icons": "2.2.1" }, "engines": { "node": ">=20", @@ -3552,9 +3891,9 @@ } }, "node_modules/@wikimedia/codex-icons": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.2.0.tgz", - "integrity": "sha512-VTDS3vZULIGN/ESVyJTl1FY5he/MtU+cEa6j+dJXEVKRP8ECrj/rBW9/BwloMm/I9jyLTHT0QWLBkHBZESN9uA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.2.1.tgz", + "integrity": "sha512-PX3QqC0bfXGz2sM9hOoRYIsOKnaDuXdpe09VuT52ngQQg2xlmwrT/icx0lF8fK0Is6/rENx7mwIHbjEDRMuMwA==", "dev": true, "engines": { "node": ">=20", @@ -3575,9 +3914,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -5530,11 +5869,14 @@ } }, "node_modules/eslint-config-wikimedia": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.30.0.tgz", - "integrity": "sha512-i8ESzSoo0x3Jur/0JhAgCVPxbV51zfdI3MN3MVQPnjiFdmo21CNKmiBBmw8JnJ3fx/d5zHDrBa+yDjxSLpnDlA==", + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.31.0.tgz", + "integrity": "sha512-Z/t/zGPdxs/ehxb0EM6THNWAzueT7GtuqzjUvmBpkxcTKzZPJEXWnnpswdj/hgv8Ce8PIeDp0zwQxR4e3c9CIw==", "dev": true, "dependencies": { + "@stylistic/eslint-plugin": "^3.1.0", + "@typescript-eslint/eslint-plugin": "8.35.1", + "@typescript-eslint/parser": "8.35.1", "browserslist-config-wikimedia": "^0.7.0", "eslint": "^8.57.0", "eslint-plugin-compat": "^4.2.0", @@ -5554,7 +5896,330 @@ "eslint-plugin-yml": "^1.14.0" }, "engines": { - "node": ">=18 <23" + "node": ">=18 <25" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.35.1.tgz", + "integrity": "sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.35.1", + "@typescript-eslint/type-utils": "8.35.1", + "@typescript-eslint/utils": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.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-eslint/parser": "^8.35.1", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/project-service": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz", + "integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.35.1", + "@typescript-eslint/types": "^8.35.1", + "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-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz", + "integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz", + "integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==", + "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-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.35.1.tgz", + "integrity": "sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "8.35.1", + "@typescript-eslint/utils": "8.35.1", + "debug": "^4.3.4", + "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": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz", + "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==", + "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-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz", + "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==", + "dev": true, + "dependencies": { + "@typescript-eslint/project-service": "8.35.1", + "@typescript-eslint/tsconfig-utils": "8.35.1", + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1", + "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-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.35.1.tgz", + "integrity": "sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.35.1", + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/typescript-estree": "8.35.1" + }, + "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-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz", + "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.35.1", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.35.1.tgz", + "integrity": "sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.35.1", + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/typescript-estree": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1", + "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": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/project-service": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz", + "integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.35.1", + "@typescript-eslint/types": "^8.35.1", + "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-config-wikimedia/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz", + "integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz", + "integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==", + "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-config-wikimedia/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz", + "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==", + "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-config-wikimedia/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz", + "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==", + "dev": true, + "dependencies": { + "@typescript-eslint/project-service": "8.35.1", + "@typescript-eslint/tsconfig-utils": "8.35.1", + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1", + "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-config-wikimedia/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz", + "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.35.1", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/scope-manager": { @@ -5690,9 +6355,9 @@ } }, "node_modules/eslint-config-wikimedia/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "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" @@ -5701,6 +6366,15 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-config-wikimedia/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/eslint-config-wikimedia/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -10668,6 +11342,14 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", diff --git a/package.json b/package.json index cdc8157..ba66d67 100644 --- a/package.json +++ b/package.json @@ -13,10 +13,10 @@ "@vue/compiler-sfc": "3.5.13", "@vue/test-utils": "2.4.6", "@vue/vue3-jest": "29.2.6", - "@wikimedia/codex": "2.2.0", - "@wikimedia/codex-icons": "2.2.0", + "@wikimedia/codex": "2.2.1", + "@wikimedia/codex-icons": "2.2.1", "babel-core": "^6.26.3", - "eslint-config-wikimedia": "0.30.0", + "eslint-config-wikimedia": "0.31.0", "eslint-plugin-jest": "27.2.1", "grunt": "1.6.1", "grunt-banana-checker": "0.13.0", -- 2.39.5
$ date --- stdout --- Wed Jul 30 03:24:53 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 --- c9e8cd092b56786923dfd6d953d50db024b5e06a refs/heads/master --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "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 } }, "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 } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 0, "high": 2, "critical": 4, "total": 6 }, "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.1.2) - Locking doctrine/deprecations (1.1.5) - Locking felixfbecker/advanced-json-rpc (v3.2.1) - Locking mediawiki/mediawiki-codesniffer (v47.0.0) - Locking mediawiki/mediawiki-phan-config (0.16.0) - Locking mediawiki/minus-x (1.1.3) - Locking mediawiki/phan-taint-check-plugin (6.2.1) - Locking microsoft/tolerant-php-parser (v0.1.2) - Locking netresearch/jsonmapper (v4.5.0) - Locking phan/phan (5.5.0) - 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.2.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.1) - 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.1.2): 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.1): 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.2.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.5.0): Extracting archive - Installing mediawiki/phan-taint-check-plugin (6.2.1): Extracting archive - Installing mediawiki/mediawiki-phan-config (0.16.0): Extracting archive - Installing mediawiki/minus-x (1.1.3): Extracting archive - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive 0/36 [>---------------------------] 0% 21/36 [================>-----------] 58% 35/36 [===========================>] 97% 36/36 [============================] 100% 1 package suggestions were added by new dependencies, use `composer suggest` to see details. Generating autoload files 17 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils --- end --- Upgrading n:eslint-config-wikimedia from 0.30.0 -> 0.31.0 Upgrading n:@wikimedia/codex from 2.2.0 -> 2.2.1 Upgrading n:@wikimedia/codex-icons from 2.2.0 -> 2.2.1 $ /usr/bin/npm install --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex@2.2.1', npm WARN EBADENGINE required: { npm: '>=10.8.1', node: '>=20' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex-icons@2.2.1', npm WARN EBADENGINE required: { npm: '>=10.8.1', node: '>=20' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN deprecated osenv@0.1.5: This package is no longer supported. npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options. 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 1117 packages, and audited 1118 packages in 16s 162 packages are looking for funding run `npm fund` for details 6 vulnerabilities (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 --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- $ /usr/bin/npm install grunt-eslint@24.3.0 --save-exact --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex@2.2.1', 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.2.1', 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 --- up to date, audited 1118 packages in 2s 162 packages are looking for funding run `npm fund` for details 6 vulnerabilities (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 --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- $ ./node_modules/.bin/eslint . --fix --- stdout --- /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) --- end --- $ ./node_modules/.bin/eslint . -f json --- stdout --- [{"filePath":"/src/repo/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/.stylelintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/Gruntfile.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/composer.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/extension.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/i18n/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/i18n/qqq.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/package-lock.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/package.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/App.vue","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_query' is not in camel case.","line":203,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":203,"endColumn":17,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_media_type' is not in camel case.","line":204,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":204,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_query' is not in camel case.","line":259,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":259,"endColumn":18,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_media_type' is not in camel case.","line":260,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":260,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_result_count' is not in camel case.","line":261,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":261,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_query' is not in camel case.","line":272,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":272,"endColumn":18,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_media_type' is not in camel case.","line":273,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":273,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_result_count' is not in camel case.","line":274,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":274,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_query' is not in camel case.","line":310,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":310,"endColumn":18,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_media_type' is not in camel case.","line":311,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":311,"endColumn":23,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_result_count' is not in camel case.","line":312,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":312,"endColumn":25,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_query' is not in camel case.","line":364,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":364,"endColumn":17,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_media_type' is not in camel case.","line":365,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":365,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_result_count' is not in camel case.","line":366,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":366,"endColumn":24,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":387,"column":22,"nodeType":"CallExpression","endLine":387,"endColumn":38,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/DidYouMean.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/EmptyState.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/EndOfResults.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/NamespaceFilterDialog.vue","messages":[],"suppressedMessages":[{"ruleId":"vue/no-computed-properties-in-data","severity":2,"message":"The computed property cannot be used in `data()` because it is before initialization.","line":110,"column":19,"nodeType":"MemberExpression","messageId":"cannotBeUsed","endLine":110,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"vue/no-computed-properties-in-data","severity":2,"message":"The computed property cannot be used in `data()` because it is before initialization.","line":112,"column":20,"nodeType":"MemberExpression","messageId":"cannotBeUsed","endLine":112,"endColumn":38,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"vue/no-unused-properties","severity":2,"message":"'select' of method found, but never used.","line":207,"column":3,"nodeType":"Identifier","messageId":"unused","endLine":207,"endColumn":9,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"vue/no-unused-properties","severity":2,"message":"'reset' of method found, but never used.","line":224,"column":3,"nodeType":"Identifier","messageId":"unused","endLine":224,"endColumn":8,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/NoResults.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/QuickView.vue","messages":[],"suppressedMessages":[{"ruleId":"security/detect-unsafe-regex","severity":1,"message":"Unsafe Regular Expression","line":531,"column":17,"nodeType":"Literal","endLine":531,"endColumn":56,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"vue/no-unused-properties","severity":2,"message":"'focus' of method found, but never used.","line":649,"column":3,"nodeType":"Identifier","messageId":"unused","endLine":649,"endColumn":8,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_result_page_title' is not in camel case.","line":719,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":719,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_media_type' is not in camel case.","line":728,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":728,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/SearchError.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/SearchFilters.vue","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'filter-change' is undefined.","line":275,"column":1,"nodeType":"Block","endLine":275,"endColumn":1},{"ruleId":"jsdoc/require-returns-check","severity":1,"message":"JSDoc @return declaration present but return expression not available in function.","line":359,"column":3,"nodeType":"Block","endLine":362,"endColumn":6}],"suppressedMessages":[{"ruleId":"vue/no-unused-properties","severity":2,"message":"'observerOptions' of data found, but never used.","line":113,"column":4,"nodeType":"Identifier","messageId":"unused","endLine":113,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"vue/no-unused-properties","severity":2,"message":"'observerElement' of data found, but never used.","line":117,"column":4,"nodeType":"Identifier","messageId":"unused","endLine":117,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_media_type' is not in camel case.","line":295,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":295,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_filter_type' is not in camel case.","line":296,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":296,"endColumn":24,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_filter_value' is not in camel case.","line":297,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":297,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'prior_search_filter_type' is not in camel case.","line":298,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":298,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'prior_search_filter_value' is not in camel case.","line":299,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":299,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_media_type' is not in camel case.","line":315,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":315,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_filter_type' is not in camel case.","line":316,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":316,"endColumn":24,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_filter_value' is not in camel case.","line":317,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":317,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'prior_search_filter_type' is not in camel case.","line":318,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":318,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'prior_search_filter_value' is not in camel case.","line":319,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":319,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"<template>\n\t<div class=\"sdms-search-filters-wrapper\" :class=\"rootClasses\">\n\t\t<div\n\t\t\tref=\"filters\"\n\t\t\tclass=\"sdms-search-filters\"\n\t\t\trole=\"group\"\n\t\t\t:aria-label=\"filtersLabel\"\n\t\t\t:aria-describedby=\"searchCountId\"\n\t\t\ttabindex=\"0\"\n\t\t>\n\t\t\t<div v-for=\"( filter, index ) in searchFilters\" :key=\"'filter-' + index\">\n\t\t\t\t<!-- Namespace filter requires special treatment; see below. -->\n\t\t\t\t<!-- Sort filter has slightly different behavior from other\n\t\t\t\tnon-namespace filters because one of the two options\n\t\t\t\t(relevance or recency) must always be selected. For other\n\t\t\t\tfilters, a generic label must be shown whenever their value\n\t\t\t\tis un-set. See T285349 for more context. -->\n\t\t\t\t<sd-select\n\t\t\t\t\tv-if=\"filter.type !== 'namespace'\"\n\t\t\t\t\t:ref=\"filter.type\"\n\t\t\t\t\t:class=\"getFilterClasses( filter.type )\"\n\t\t\t\t\t:name=\"filter.type\"\n\t\t\t\t\t:items=\"filter.items\"\n\t\t\t\t\t:label=\"getFilterDefaultLabel( filter.type )\"\n\t\t\t\t\t:initial-selected-item-index=\"filter.type === 'sort' ? 0 : -1\"\n\t\t\t\t\t:prefix=\"getFilterPrefix( filter.type )\"\n\t\t\t\t\t@select=\"onSelect( $event, filter.type )\"\n\t\t\t\t>\n\t\t\t\t</sd-select>\n\n\t\t\t\t<!-- Namespace filter is represented as a button that\n\t\t\t\tlaunches a modal -->\n\t\t\t\t<cdx-button\n\t\t\t\t\tv-else\n\t\t\t\t\t:key=\"'filter-namespace-' + index\"\n\t\t\t\t\tclass=\"sdms-search-filters__namespace\"\n\t\t\t\t\t:class=\"namespaceFilterClasses\"\n\t\t\t\t\tweight=\"quiet\"\n\t\t\t\t\t@click=\"namespaceFilterDialogActive = true\"\n\t\t\t\t>\n\t\t\t\t\t{{ namespaceFilterLabel }}\n\t\t\t\t</cdx-button>\n\t\t\t</div>\n\n\t\t\t<div class=\"sdms-search-results-count\">\n\t\t\t\t<span v-if=\"showResultsCount\" :id=\"searchCountId\">\n\t\t\t\t\t{{ resultsCount }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<namespace-filter-dialog\n\t\t\tv-if=\"namespaceFilter\"\n\t\t\tref=\"namespace\"\n\t\t\t:items=\"namespaceFilter.items\"\n\t\t\t:namespaces=\"namespaceFilter.data.namespaceGroups.all_incl_file\"\n\t\t\t:namespace-groups=\"namespaceFilter.data.namespaceGroups\"\n\t\t\t:active=\"namespaceFilterDialogActive\"\n\t\t\t:initial-value=\"namespaceFilterValue\"\n\t\t\t@submit=\"onSelect( $event, 'namespace' )\"\n\t\t\t@close=\"namespaceFilterDialogActive = false\"\n\t\t>\n\t\t</namespace-filter-dialog>\n\t</div>\n</template>\n\n<script>\n/**\n * @file SearchFilters.vue\n *\n * Container for the search filters for a tab. Displays the filters and handles\n * change in filter value. When a filter value changes, the Vuex state is\n * updated with the new filter value, and a new-search event is emitted so the\n * parent App component can dispatch the search action.\n */\nconst mapState = require( 'vuex' ).mapState,\n\tmapMutations = require( 'vuex' ).mapMutations,\n\tSdSelect = require( './base/Select.vue' ),\n\tNamespaceFilterDialog = require( './NamespaceFilterDialog.vue' ),\n\tSearchFilter = require( '../models/SearchFilter.js' ),\n\tsearchOptions = require( './../data/searchOptions.json' ),\n\tobserver = require( './base/mixins/observer.js' );\n\nconst { CdxButton } = require( '@wikimedia/codex' );\n\n// @vue/component\nmodule.exports = exports = {\n\tname: 'SearchFilters',\n\n\tcomponents: {\n\t\t'sd-select': SdSelect,\n\t\tCdxButton,\n\t\t'namespace-filter-dialog': NamespaceFilterDialog\n\t},\n\n\tmixins: [ observer ],\n\n\tprops: {\n\t\tmediaType: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t}\n\t},\n\n\temits: [\n\t\t'filter-change'\n\t],\n\n\tdata: function () {\n\t\treturn {\n\t\t\tnamespaceFilterDialogActive: false,\n\t\t\t// eslint-disable-next-line vue/no-unused-properties\n\t\t\tobserverOptions: {\n\t\t\t\tthreshold: 1\n\t\t\t},\n\t\t\t// eslint-disable-next-line vue/no-unused-properties\n\t\t\tobserverElement: '.sdms-search-results-count'\n\t\t};\n\t},\n\n\tcomputed: Object.assign( {}, mapState( [\n\t\t'totalHits',\n\t\t'filterValues'\n\t] ), {\n\t\t/**\n\t\t * Due to this component being used multiple times,\n\t\t * we need to ensure the ID is unique\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsearchCountId: function () {\n\t\t\treturn this.mediaType + '-count';\n\t\t},\n\n\t\t/**\n\t\t * @return {string}\n\t\t */\n\t\tfiltersLabel: function () {\n\t\t\treturn this.mediaType + ' filters';\n\t\t},\n\n\t\t/**\n\t\t * @return {Object}\n\t\t */\n\t\trootClasses: function () {\n\t\t\treturn {};\n\t\t},\n\n\t\t/**\n\t\t * @return {Object}\n\t\t */\n\t\tnamespaceFilterClasses: function () {\n\t\t\tconst selected = ( 'namespace' in this.filterValues[ this.mediaType ] );\n\t\t\treturn {\n\t\t\t\t'sdms-search-filters__namespace--selected': selected\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * @return {Array} SearchFilter objects for this media type.\n\t\t */\n\t\tsearchFilters: function () {\n\t\t\tconst optionsForType = searchOptions[ this.mediaType ],\n\t\t\t\tfilters = [];\n\n\t\t\tObject.keys( optionsForType ).forEach( ( filterName ) => {\n\t\t\t\tconst filterData = optionsForType[ filterName ],\n\t\t\t\t\tfilter = new SearchFilter(\n\t\t\t\t\t\tfilterName,\n\t\t\t\t\t\tfilterData.items,\n\t\t\t\t\t\tfilterData.data\n\t\t\t\t\t);\n\t\t\t\tfilters.push( filter );\n\t\t\t} );\n\t\t\treturn filters;\n\t\t},\n\n\t\t/**\n\t\t * Key names (not values) of all active filters for the given tab;\n\t\t * Having a shorthand computed property for this makes it easier to\n\t\t * watch for changes.\n\t\t *\n\t\t * @return {Array} Empty array or [ \"imageres\", \"filemime\" ], etc\n\t\t */\n\t\tcurrentActiveFilters: function () {\n\t\t\treturn Object.keys( this.filterValues[ this.mediaType ] );\n\t\t},\n\n\t\t/**\n\t\t * Number of results should only display if results exist.\n\t\t *\n\t\t * @return {boolean} Whether to display the results count\n\t\t */\n\t\tshowResultsCount: function () {\n\t\t\treturn this.totalHits[ this.mediaType ] > 0;\n\t\t},\n\n\t\t/**\n\t\t * String representing the number of search results.\n\t\t *\n\t\t * @return {Object} Message object\n\t\t */\n\t\tresultsCount: function () {\n\t\t\treturn this.$i18n(\n\t\t\t\t'mediasearch-results-count',\n\t\t\t\tmw.language.convertNumber( this.totalHits[ this.mediaType ] )\n\t\t\t).text();\n\t\t},\n\n\t\t/**\n\t\t * Get a human-readable label for the namespace filter button.\n\t\t *\n\t\t * @return {Object}\n\t\t */\n\t\tnamespaceFilterLabel: function () {\n\t\t\tconst namespaceGroups = this.namespaceFilter.data.namespaceGroups;\n\t\t\tlet filterValue = 'all';\n\n\t\t\t// If there is a namespace filter value...\n\t\t\tif ( 'namespace' in this.filterValues[ this.mediaType ] ) {\n\t\t\t\t// If the filter value is one of the namespace groups, use that.\n\t\t\t\t// Otherwise, it's a string of custom namespaces, so use the\n\t\t\t\t// 'custom' label.\n\t\t\t\tfilterValue = namespaceGroups[ this.filterValues[ this.mediaType ].namespace ] ?\n\t\t\t\t\tthis.filterValues[ this.mediaType ].namespace : 'custom';\n\t\t\t}\n\n\t\t\tconst messageKey = 'mediasearch-filter-namespace-' + filterValue;\n\n\t\t\t// Return the label message, which takes the filter value as a\n\t\t\t// param and will return something like \"Namespace: Discussion\".\n\t\t\t// The following messages are used here:\n\t\t\t// * mediasearch-filter-namespace-all\n\t\t\t// * mediasearch-filter-namespace-discussion\n\t\t\t// * mediasearch-filter-namespace-help\n\t\t\t// * mediasearch-filter-namespace-custom\n\t\t\treturn this.$i18n(\n\t\t\t\t'mediasearch-filter-namespace-label',\n\t\t\t\tthis.$i18n( messageKey )\n\t\t\t).text();\n\t\t},\n\n\t\t/**\n\t\t * Current value of the namespace filter (defaults to 'all').\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tnamespaceFilterValue: function () {\n\t\t\treturn 'namespace' in this.filterValues[ this.mediaType ] ?\n\t\t\t\tthis.filterValues[ this.mediaType ].namespace : 'all';\n\t\t},\n\n\t\t/**\n\t\t * Get the namespace search filter, if it exists.\n\t\t *\n\t\t * @return {Object|undefined}\n\t\t */\n\t\tnamespaceFilter: function () {\n\t\t\t// Array.prototype.find is polyfilled so we can use this\n\t\t\t// ES6 array method here\n\n\t\t\treturn this.searchFilters.find( ( filter ) => filter.type === 'namespace' );\n\t\t}\n\t} ),\n\n\tmethods: Object.assign( {}, mapMutations( [\n\t\t'addFilterValue',\n\t\t'removeFilterValue'\n\t] ), {\n\t\t/**\n\t\t * Handle filter change.\n\t\t *\n\t\t * @param {string|Object} value The new filter value; namespace filter values are objects\n\t\t * @param {string} filterType\n\t\t * @fires filter-change\n\t\t */\n\t\tonSelect: function ( value, filterType ) {\n\t\t\tconst oldValue = this.filterValues[ this.mediaType ][ filterType ] || '',\n\t\t\t\tcurrentFilter = this.searchFilters.find( ( filter ) => filter.type === filterType );\n\n\t\t\t// for logging purposes, we only want a simple string value\n\t\t\tfunction normalizedValue( v ) {\n\t\t\t\treturn v.value ? v.value : v;\n\t\t\t}\n\n\t\t\tif ( value ) {\n\t\t\t\tthis.addFilterValue( {\n\t\t\t\t\tmediaType: this.mediaType,\n\t\t\t\t\tfilterType: filterType,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t\t/* eslint-disable camelcase */\n\t\t\t\tthis.$log( {\n\t\t\t\t\taction: 'filter_change',\n\t\t\t\t\tsearch_media_type: this.mediaType,\n\t\t\t\t\tsearch_filter_type: filterType,\n\t\t\t\t\tsearch_filter_value: normalizedValue( value ),\n\t\t\t\t\tprior_search_filter_type: filterType,\n\t\t\t\t\tprior_search_filter_value: normalizedValue( oldValue )\n\t\t\t\t} );\n\t\t\t\t/* eslint-enable camelcase */\n\t\t\t} else {\n\t\t\t\tthis.removeFilterValue( {\n\t\t\t\t\tmediaType: this.mediaType,\n\t\t\t\t\tfilterType: filterType\n\t\t\t\t} );\n\n\t\t\t\t// Un-set the filter so that the initial label is displayed\n\t\t\t\t// when an \"empty value\" option is selected\n\t\t\t\tthis.getRef( currentFilter ).reset();\n\n\t\t\t\t/* eslint-disable camelcase */\n\t\t\t\tthis.$log( {\n\t\t\t\t\taction: 'filter_change',\n\t\t\t\t\tsearch_media_type: this.mediaType,\n\t\t\t\t\tsearch_filter_type: filterType,\n\t\t\t\t\tsearch_filter_value: '',\n\t\t\t\t\tprior_search_filter_type: filterType,\n\t\t\t\t\tprior_search_filter_value: normalizedValue( oldValue )\n\t\t\t\t} );\n\t\t\t\t/* eslint-enable camelcase */\n\t\t\t}\n\n\t\t\t// Tell the App component to do a new search and update the URL\n\t\t\t// params\n\t\t\tthis.$emit( 'filter-change', {\n\t\t\t\tmediaType: this.mediaType,\n\t\t\t\tfilterType: filterType,\n\t\t\t\tvalue: value\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * We need a class for select lists where a non-default item is selected.\n\t\t *\n\t\t * @param {string} filterType\n\t\t * @return {Object}\n\t\t */\n\t\tgetFilterClasses: function ( filterType ) {\n\t\t\treturn {\n\t\t\t\t'sdms-search-filter--selected': this.currentActiveFilters.includes( filterType )\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Add select list prefixes per filter type.\n\t\t *\n\t\t * @param {string} filterType\n\t\t * @return {mw.Message} message object\n\t\t */\n\t\tgetFilterPrefix: function ( filterType ) {\n\t\t\tif ( filterType === 'sort' ) {\n\t\t\t\treturn this.$i18n( 'mediasearch-filter-sort-label' ).text();\n\t\t\t}\n\n\t\t\treturn '';\n\t\t},\n\n\t\t/**\n\t\t * @param {string} filterType\n\t\t * @return {mw.Message} message object\n\t\t */\n\t\tgetFilterDefaultLabel: function ( filterType ) {\n\t\t\tswitch ( filterType ) {\n\t\t\t\tcase 'filemime':\n\t\t\t\t\treturn this.$i18n( 'mediasearch-filter-file-type' ).text();\n\t\t\t\tcase 'fileres':\n\t\t\t\t\treturn this.$i18n( 'mediasearch-filter-size' ).text();\n\t\t\t\tcase 'assessment':\n\t\t\t\t\treturn this.$i18n( 'mediasearch-filter-assessment' ).text();\n\t\t\t\tcase 'haslicense':\n\t\t\t\t\treturn this.$i18n( 'mediasearch-filter-license' ).text();\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get the ref for a filter.\n\t\t *\n\t\t * Because the namespace filter is handled outside the v-for loop that\n\t\t * creates the other filter elements, we need to access its ref a little\n\t\t * differently.\n\t\t *\n\t\t * @param {Object} filter A search filter object\n\t\t * @return {Object}\n\t\t */\n\t\tgetRef: function ( filter ) {\n\t\t\treturn filter.type === 'namespace' ?\n\t\t\t\tthis.$refs[ filter.type ] :\n\t\t\t\t// VUE 3 MIGRATION: these refs are arrays in Vue 2 but not in Vue 3\n\t\t\t\tthis.$refs[ filter.type ][ 0 ] || this.$refs[ filter.type ];\n\t\t},\n\n\t\tresetAllFilters: function () {\n\t\t\tthis.searchFilters.forEach( ( filter ) => {\n\t\t\t\tthis.getRef( filter ).reset();\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Set each filter component's state to match the appropriate\n\t\t * value in Vuex\n\t\t */\n\t\tsynchronizeFilters: function () {\n\t\t\tthis.searchFilters.forEach( ( filter ) => {\n\t\t\t\tconst currentValue = this.filterValues[ this.mediaType ][ filter.type ],\n\t\t\t\t\tref = this.getRef( filter );\n\n\t\t\t\tif ( currentValue ) {\n\t\t\t\t\t// Attempt to set each filter to the specified value in\n\t\t\t\t\t// Vuex. If the value doesn't exist, remove the value from\n\t\t\t\t\t// the Vuex store and emit a filter-change event so that the\n\t\t\t\t\t// page and URL get updated.\n\t\t\t\t\ttry {\n\t\t\t\t\t\tref.select( currentValue );\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\tthis.removeFilterValue( {\n\t\t\t\t\t\t\tmediaType: this.mediaType,\n\t\t\t\t\t\t\tfilterType: filter.type\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tthis.$emit( 'filter-change', {\n\t\t\t\t\t\t\tmediaType: this.mediaType,\n\t\t\t\t\t\t\tfilterType: filter.type\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tref.reset();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t} ),\n\n\twatch: {\n\t\t/**\n\t\t * Programmatically set or reset filters if Vuex state changes for\n\t\t * reasons other than the user setting filters manually (clicking the\n\t\t * clear button, URL filter params, popstate, etc)\n\t\t */\n\t\tcurrentActiveFilters: {\n\t\t\thandler: function () {\n\t\t\t\tthis.synchronizeFilters();\n\t\t\t},\n\t\t\tdeep: true\n\t\t}\n\t},\n\n\t/**\n\t * If filters have already been set at the time of page initialization\n\t * via URL params, update the relevant Select child component with\n\t * the appropriate value\n\t */\n\tmounted: function () {\n\t\tthis.synchronizeFilters();\n\t}\n};\n</script>\n","usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/SearchResults.vue","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_media_type' is not in camel case.","line":348,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":348,"endColumn":24,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_result_page_title' is not in camel case.","line":349,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":349,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_result_position' is not in camel case.","line":350,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":350,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'search_result_has_quickview' is not in camel case.","line":351,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":351,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":2,"message":"'title' is defined but never used.","line":548,"column":29,"nodeType":"Identifier","messageId":"unusedVar","endLine":548,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":2,"message":"'index' is defined but never used.","line":548,"column":36,"nodeType":"Identifier","messageId":"unusedVar","endLine":548,"endColumn":41,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/SearchWarnings.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/Spinner.vue","messages":[],"suppressedMessages":[{"ruleId":"vue/multi-word-component-names","severity":2,"message":"Component name \"Spinner\" should always be multi-word.","line":11,"column":8,"nodeType":"Literal","messageId":"unexpected","endLine":11,"endColumn":17,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/UserNotice.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/base/AutocompleteSearchInput.vue","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'input' is undefined.","line":259,"column":1,"nodeType":"Block","endLine":259,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'enter' is undefined.","line":291,"column":1,"nodeType":"Block","endLine":291,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'submit' is undefined.","line":310,"column":1,"nodeType":"Block","endLine":310,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"<template>\n\t<div class=\"sd-input\" :class=\"rootClasses\">\n\t\t<div class=\"sd-input__wrapper\">\n\t\t\t<label\n\t\t\t\t:id=\"labelElementId\"\n\t\t\t\t:for=\"inputElementId\"\n\t\t\t\tclass=\"sd-input__label\"\n\t\t\t>\n\t\t\t\t{{ label }}\n\t\t\t</label>\n\n\t\t\t<cdx-text-input\n\t\t\t\t:id=\"inputElementId\"\n\t\t\t\tref=\"input\"\n\t\t\t\tv-model=\"value\"\n\t\t\t\tclass=\"sd-input__input\"\n\t\t\t\ttype=\"text\"\n\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t:aria-owns=\"lookupResultsElementId\"\n\t\t\t\t:aria-expanded=\"isExpanded\"\n\t\t\t\t:aria-activedescendant=\"activeLookupItemId || null\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:start-icon=\"cdxIconSearch\"\n\t\t\t\t:clearable=\"true\"\n\t\t\t\t@input=\"onInput\"\n\t\t\t\t@focus=\"onFocus\"\n\t\t\t\t@blur=\"onBlur\"\n\t\t\t\t@keydown.enter=\"onSubmit\"\n\t\t\t\t@keydown.up=\"onArrowUp\"\n\t\t\t\t@keydown.down=\"onArrowDown\"\n\t\t\t\t@clear=\"onClear\"\n\t\t\t>\n\t\t\t</cdx-text-input>\n\n\t\t\t<sd-select-menu\n\t\t\t\tv-if=\"hasLookupResults && showLookupResults\"\n\t\t\t\t:items=\"lookupResults\"\n\t\t\t\t:active-item-index=\"activeLookupItemIndex\"\n\t\t\t\t:listbox-id=\"lookupResultsElementId\"\n\t\t\t\t:labelled-by=\"labelElementId\"\n\t\t\t\t@select=\"onLookupItemSelect\"\n\t\t\t\t@active-item-change=\"onActiveItemChange\"\n\t\t\t>\n\t\t\t</sd-select-menu>\n\t\t</div>\n\n\t\t<cdx-button\n\t\t\tv-if=\"hasButton\"\n\t\t\tclass=\"sd-input__button\"\n\t\t\tweight=\"primary\"\n\t\t\taction=\"progressive\"\n\t\t\t@click=\"onSubmit\"\n\t\t>\n\t\t\t{{ $i18n( 'searchbutton' ).text() }}\n\t\t</cdx-button>\n\t</div>\n</template>\n\n<script>\nconst { CdxButton, CdxTextInput } = require( '@wikimedia/codex' );\nconst SdSelectMenu = require( './SelectMenu.vue' );\nconst { cdxIconSearch } = require( '../icons.json' );\n\n/**\n * @file AutocompleteSearchInput\n *\n * Search input that emits user-provided input to the parent, then receives and\n * displays autocomplete results. This component is fairly specific to the Media\n * Search use case: we know we'll be fetching autocomplete results, we'll always\n * have a search icon and clear indicator button, etc. This could be made more\n * general for wider usage.\n */\n// @vue/component\nmodule.exports = exports = {\n\tname: 'SdAutocompleteSearchInput',\n\n\tcomponents: {\n\t\tCdxButton,\n\t\tCdxTextInput,\n\t\t'sd-select-menu': SdSelectMenu\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Name must be provided to ensure unique aria attributes. This probably\n\t\t * isn't the best way to do it in WVUI but serves our purposes here.\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\n\t\t/**\n\t\t * Required label for input. Currently, label will always be visually\n\t\t * hidden, but this could be toggled via a prop in a future iteration.\n\t\t */\n\t\tlabel: {\n\t\t\ttype: [ String, Object ],\n\t\t\trequired: true\n\t\t},\n\n\t\tinitialValue: {\n\t\t\ttype: [ String, Number ],\n\t\t\tdefault: ''\n\t\t},\n\n\t\tplaceholder: {\n\t\t\ttype: [ String, Object ],\n\t\t\tdefault: null\n\t\t},\n\n\t\tbuttonLabel: {\n\t\t\ttype: [ String, Object ],\n\t\t\tdefault: null\n\t\t},\n\n\t\tlookupResults: {\n\t\t\ttype: Array,\n\t\t\tdefault: function () {\n\t\t\t\treturn [ ];\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This is an optional way to conditonally disable the animation shown\n\t\t * in the input while lookup results are fetched.\n\t\t *\n\t\t * For example, in the parent component, you can check to see if your\n\t\t * lookup URI exists. If not, you can pass true for this prop.\n\t\t */\n\t\tlookupDisabled: {\n\t\t\ttype: Boolean\n\t\t},\n\t\t/**\n\t\t * This property is going to be used to set focus on the input field\n\t\t */\n\t\tinitialized: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true\n\t\t}\n\t},\n\n\temits: [\n\t\t'input',\n\t\t'focus',\n\t\t'blur',\n\t\t'submit',\n\t\t'clear',\n\t\t'clear-lookup-results'\n\t],\n\n\tdata: function () {\n\t\treturn {\n\t\t\tvalue: this.initialValue,\n\t\t\tpending: false,\n\t\t\tshowLookupResults: false,\n\t\t\tactiveLookupItemIndex: -1,\n\t\t\tcdxIconSearch\n\t\t};\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * @return {Object}\n\t\t */\n\t\trootClasses: function () {\n\t\t\treturn {\n\t\t\t\t'sd-input--button': this.hasButton,\n\t\t\t\t'sd-input--pending': this.pending\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\thasButton: function () {\n\t\t\treturn !!this.buttonLabel;\n\t\t},\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\thasLookupResults: function () {\n\t\t\treturn this.lookupResults.length > 0;\n\t\t},\n\n\t\t/**\n\t\t * ID of the visually-hidden label.\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tlabelElementId: function () {\n\t\t\treturn this.name + '__label';\n\t\t},\n\n\t\t/**\n\t\t * ID of the input.\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tinputElementId: function () {\n\t\t\treturn this.name + '__input';\n\t\t},\n\n\t\t/**\n\t\t * ID of the lookup results container.\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tlookupResultsElementId: function () {\n\t\t\treturn this.name + '__lookup-results';\n\t\t},\n\n\t\t/**\n\t\t * The actual string of the active lookup result item.\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tactiveLookupItem: function () {\n\t\t\tif (\n\t\t\t\tthis.lookupResults.length < 1 ||\n\t\t\t\t!this.showLookupResults ||\n\t\t\t\tthis.activeLookupItemIndex < 0\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.lookupResults[ this.activeLookupItemIndex ];\n\t\t},\n\n\t\t/**\n\t\t * The ID of the element of the active lookup result item.\n\t\t *\n\t\t * @return {string|boolean}\n\t\t */\n\t\tactiveLookupItemId: function () {\n\t\t\treturn this.activeLookupItemIndex > -1 ?\n\t\t\t\tthis.lookupResultsElementId + '-item-' + this.activeLookupItemIndex :\n\t\t\t\tfalse;\n\t\t},\n\n\t\t/**\n\t\t * For the aria-expanded attribute of the input, we need to use strings\n\t\t * instead of booleans so that aria-expanded will be set to \"false\" when\n\t\t * appropriate rather than the attribute being omitted, which is what\n\t\t * would happen if we used a boolean false.\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tisExpanded: function () {\n\t\t\treturn this.hasLookupResults && this.showLookupResults ? 'true' : 'false';\n\t\t}\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Emit input and enable pending state.\n\t\t *\n\t\t * @fires input\n\t\t */\n\t\tonInput: function () {\n\t\t\tthis.pending = !this.lookupDisabled;\n\t\t\tthis.$emit( 'input', this.value );\n\t\t},\n\n\t\t/**\n\t\t * If there are existing lookup results, show them on focus.\n\t\t *\n\t\t * @param {Event} event\n\t\t * @fires focus\n\t\t */\n\t\tonFocus: function ( event ) {\n\t\t\tthis.toggleLookupResults( this.lookupResults.length > 0 );\n\t\t\tthis.$emit( 'focus', event );\n\t\t},\n\n\t\t/**\n\t\t * Hide, but don't delete, lookup results.\n\t\t *\n\t\t * @param {Event} event\n\t\t * @fires blur\n\t\t */\n\t\tonBlur: function ( event ) {\n\t\t\tthis.$emit( 'blur', event );\n\t\t\tthis.toggleLookupResults( false );\n\t\t},\n\n\t\t/**\n\t\t * Handle enter keypress or button click.\n\t\t *\n\t\t * @fires enter\n\t\t */\n\t\tonSubmit: function () {\n\t\t\t// If the user is highlighting an autocomplete result, emit that\n\t\t\t// result. Otherwise, emit the value of the text input.\n\t\t\tif ( this.hasLookupResults && this.activeLookupItemIndex >= 0 ) {\n\t\t\t\t// We also want to update the input text.\n\t\t\t\tthis.value = this.activeLookupItem;\n\t\t\t}\n\n\t\t\tthis.$emit( 'submit', this.value );\n\t\t\tthis.clearLookupResults();\n\t\t\tthis.$refs.input.blur();\n\t\t},\n\n\t\t/**\n\t\t * Handle lookup item click.\n\t\t *\n\t\t * @param {number} index\n\t\t * @fires submit\n\t\t */\n\t\tonLookupItemSelect: function ( index ) {\n\t\t\tthis.value = this.lookupResults[ index ];\n\t\t\tthis.$emit( 'submit', this.value );\n\t\t\tthis.clearLookupResults();\n\t\t},\n\n\t\t/**\n\t\t * Move to the next lookup result. If we're at the end, go back to the\n\t\t * first item.\n\t\t */\n\t\tonArrowDown: function () {\n\t\t\tconst index = this.activeLookupItemIndex;\n\t\t\tif ( this.hasLookupResults ) {\n\t\t\t\tthis.activeLookupItemIndex =\n\t\t\t\t\tthis.lookupResults.length > index + 1 ? index + 1 : 0;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Move to the previous lookup result. If we're at the beginning, go to\n\t\t * the last item.\n\t\t */\n\t\tonArrowUp: function () {\n\t\t\tconst index = this.activeLookupItemIndex;\n\t\t\tif ( this.hasLookupResults && index > -1 ) {\n\t\t\t\tthis.activeLookupItemIndex =\n\t\t\t\t\tindex === 0 ? this.lookupResults.length - 1 : index - 1;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Change the active item index based on mouseover or mouseleave.\n\t\t *\n\t\t * @param {number} index\n\t\t */\n\t\tonActiveItemChange: function ( index ) {\n\t\t\tthis.activeLookupItemIndex = index;\n\t\t},\n\n\t\t/**\n\t\t * Handle clear icon click.\n\t\t */\n\t\tonClear: function () {\n\t\t\tthis.$emit( 'clear' );\n\t\t\tthis.value = '';\n\t\t\tthis.clearLookupResults();\n\t\t},\n\n\t\t/**\n\t\t * Helper function to reset lookup results to an empty array.\n\t\t */\n\t\tclearLookupResults: function () {\n\t\t\tthis.$emit( 'clear-lookup-results' );\n\t\t},\n\n\t\t/**\n\t\t * Show or hide lookup results.\n\t\t *\n\t\t * @param {boolean} show\n\t\t */\n\t\ttoggleLookupResults: function ( show ) {\n\t\t\tthis.showLookupResults = show;\n\t\t}\n\t},\n\n\twatch: {\n\t\t/**\n\t\t * When new lookup results are received, remove pending state and reset\n\t\t * the active item index.\n\t\t */\n\t\tlookupResults: {\n\t\t\thandler: function () {\n\t\t\t\tthis.pending = false;\n\t\t\t\tthis.activeLookupItemIndex = -1;\n\t\t\t\tthis.toggleLookupResults( this.lookupResults.length > 0 );\n\t\t\t},\n\t\t\tdeep: true\n\t\t},\n\n\t\t/**\n\t\t * If the search term (passed down here as the \"initial value\" prop)\n\t\t * changes for a reason besides the user typing into the input here\n\t\t * (say, due to navigating forward/backward through history), make\n\t\t * sure to update the value here to reflect the new term\n\t\t *\n\t\t * @param {string} newValue\n\t\t */\n\t\tinitialValue: function ( newValue ) {\n\t\t\tthis.value = newValue;\n\t\t},\n\n\t\t/**\n\t\t * Clear lookup results if the user manually delets all characters\n\t\t *\n\t\t * @param {string} newValue\n\t\t */\n\t\tvalue: function ( newValue ) {\n\t\t\tif ( newValue === '' ) {\n\t\t\t\tthis.clearLookupResults();\n\t\t\t}\n\t\t},\n\n\t\tinitialized: function ( isInitalized ) {\n\t\t\tif ( isInitalized && !this.initialValue.trim() ) {\n\t\t\t\tthis.$refs.input.focus();\n\t\t\t}\n\t\t}\n\t}\n};\n</script>\n","usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/base/CopyTextLayout.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/base/Dialog.vue","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'progress' is undefined.","line":193,"column":1,"nodeType":"Block","endLine":193,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'key' is undefined.","line":201,"column":1,"nodeType":"Block","endLine":201,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"<template>\n\t<div class=\"sd-dialog-wrapper\">\n\t\t<transition name=\"sd-scale\" appear>\n\t\t\t<div\n\t\t\t\tv-if=\"active\"\n\t\t\t\tclass=\"sd-dialog\"\n\t\t\t\t:class=\"rootClasses\"\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-fullscreen=\"true\"\n\t\t\t\t@keyup=\"onKeyup\"\n\t\t\t>\n\t\t\t\t<div class=\"sd-dialog__overlay\" @click=\"close\"></div>\n\t\t\t\t<div ref=\"landing\" tabindex=\"0\"></div>\n\t\t\t\t<div class=\"sd-dialog__shell\">\n\t\t\t\t\t<div v-if=\"!headless\" class=\"sd-dialog__header\">\n\t\t\t\t\t\t<div v-if=\"title\" class=\"sd-dialog__header-title\">\n\t\t\t\t\t\t\t{{ title }}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<cdx-button\n\t\t\t\t\t\t\t:aria-label=\"$i18n( 'mediasearch-dialog-close-button-label' )\"\n\t\t\t\t\t\t\tclass=\"sd-dialog__header-action--safe\"\n\t\t\t\t\t\t\tweight=\"quiet\"\n\t\t\t\t\t\t\t@click=\"close\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<cdx-icon :icon=\"closeIcon\"></cdx-icon>\n\t\t\t\t\t\t</cdx-button>\n\n\t\t\t\t\t\t<cdx-button\n\t\t\t\t\t\t\tv-if=\"isMobileSkin && progressiveAction\"\n\t\t\t\t\t\t\tclass=\"sd-dialog__header-action--progressive\"\n\t\t\t\t\t\t\tweight=\"primary\"\n\t\t\t\t\t\t\taction=\"progressive\"\n\t\t\t\t\t\t\t:disabled=\"progressiveActionDisabled\"\n\t\t\t\t\t\t\t@click=\"progress\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ progressiveAction }}\n\t\t\t\t\t\t</cdx-button>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"sd-dialog__body\"\n\t\t\t\t\t\t:class=\"bodyClasses\"\n\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"sd-dialog__body__content\">\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"sd-dialog__footer\">\n\t\t\t\t\t\t<cdx-button\n\t\t\t\t\t\t\tv-if=\"!isMobileSkin && progressiveAction\"\n\t\t\t\t\t\t\tclass=\"sd-dialog__footer-action--progressive\"\n\t\t\t\t\t\t\tweight=\"primary\"\n\t\t\t\t\t\t\taction=\"progressive\"\n\t\t\t\t\t\t\t:disabled=\"progressiveActionDisabled\"\n\t\t\t\t\t\t\t@click=\"progress\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ progressiveAction }}\n\t\t\t\t\t\t</cdx-button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</transition>\n\t</div>\n</template>\n\n<script>\nconst { CdxButton, CdxIcon } = require( '@wikimedia/codex' );\nconst { cdxIconClose } = require( '../icons.json' );\n\n/**\n * Dialog component.\n *\n * This component will append its element to the end of the <body> on mount.\n * When the active prop is true, the dialog will display, with CSS transitions\n * during open and close. See prop documentation for more details.\n *\n * Known shortcomings:\n * - We have not yet handled the use of components that have overlays inside\n * this dialog, so you may find that things like select list menus get cut off\n * due to CSS overflow rules.\n * - Whether the dialog is fullscreen is determined based on the skin (it will\n * be fullscreen if the skin is Minerva Neue), you can't control this via a\n * prop\n * - Dialog min-height should be set via CSS to something natural-looking. In\n * the future, we should handle this within the dialog component to size the\n * height according to the body content height and the viewport size.\n * - The dialog can display a progressive action, but handling a destructive\n * action has not yet been implemented.\n */\n// @vue/component\nmodule.exports = exports = {\n\tname: 'SdDialog',\n\n\tcomponents: {\n\t\tCdxButton,\n\t\tCdxIcon\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Whether the dialog is visible.\n\t\t */\n\t\tactive: {\n\t\t\ttype: Boolean\n\t\t},\n\n\t\t/**\n\t\t * Title to appear in the dialog header.\n\t\t */\n\t\ttitle: {\n\t\t\t// String or mw.msg object.\n\t\t\ttype: [ String, Object ],\n\t\t\tdefault: null\n\t\t},\n\n\t\t/**\n\t\t * Label for the progressive action.\n\t\t */\n\t\tprogressiveAction: {\n\t\t\t// String or mw.msg object.\n\t\t\ttype: [ String, Object ],\n\t\t\tdefault: ''\n\t\t},\n\n\t\t/**\n\t\t * Whether to disable the progresive action button\n\t\t */\n\t\tprogressiveActionDisabled: {\n\t\t\ttype: Boolean\n\t\t},\n\n\t\t/**\n\t\t * Set to true to remove the header (and, therefore, the built-in close\n\t\t * button).\n\t\t */\n\t\theadless: {\n\t\t\ttype: Boolean\n\t\t}\n\t},\n\n\temits: [\n\t\t'close',\n\t\t'progress',\n\t\t'key'\n\t],\n\n\tdata: function () {\n\t\treturn {\n\t\t\tcloseIcon: cdxIconClose,\n\t\t\tfullscreen: mw.config.get( 'skin' ) === 'minerva'\n\t\t};\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * @return {Object}\n\t\t */\n\t\trootClasses: function () {\n\t\t\treturn {\n\t\t\t\t'sd-dialog--fullscreen': this.fullscreen\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * @return {Object}\n\t\t */\n\t\tbodyClasses: function () {\n\t\t\treturn {\n\t\t\t\t'sd-dialog__body--headless': this.headless\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tisMobileSkin: function () {\n\t\t\treturn mw.config.get( 'skin' ) === 'minerva';\n\t\t}\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * @fires close\n\t\t */\n\t\tclose: function () {\n\t\t\tthis.$emit( 'close' );\n\t\t},\n\n\t\t/**\n\t\t * @fires progress\n\t\t */\n\t\tprogress: function () {\n\t\t\tthis.$emit( 'progress' );\n\t\t},\n\n\t\t/**\n\t\t * @param {KeyboardEvent} e\n\t\t * @fires close|key\n\t\t */\n\t\tonKeyup: function ( e ) {\n\t\t\tif ( e.code === 'Escape' || e.code === '27' ) {\n\t\t\t\tthis.$emit( 'close' );\n\t\t\t} else {\n\t\t\t\tthis.$emit( 'key', e.code );\n\t\t\t}\n\t\t}\n\t},\n\n\twatch: {\n\t\tactive: function ( newVal ) {\n\t\t\tif ( newVal === true ) {\n\t\t\t\t// Add a class to the body so we can hide overflow, preventing\n\t\t\t\t// confusing scrolling behavior.\n\t\t\t\tdocument.body.classList.add( 'sd-body--open-dialog' );\n\n\t\t\t\t// Move focus to the dialog element.\n\t\t\t\tthis.$nextTick( function () {\n\t\t\t\t\tthis.$refs.landing.focus();\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tdocument.body.classList.remove( 'sd-body--open-dialog' );\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function () {\n\t\t// Add this component to the end of the body element.\n\t\tdocument.body.appendChild( this.$el );\n\t},\n\n\tbeforeUnmount: function () {\n\t\t// Remove lingering body class and the element itself.\n\t\tdocument.body.classList.remove( 'sd-body--open-dialog' );\n\t\tdocument.body.removeChild( this.$el );\n\t}\n};\n</script>\n","usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/base/Image.vue","messages":[],"suppressedMessages":[{"ruleId":"vue/no-unused-properties","severity":2,"message":"'observerOptions' of data found, but never used.","line":45,"column":4,"nodeType":"Identifier","messageId":"unused","endLine":45,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/base/Observer.vue","messages":[],"suppressedMessages":[{"ruleId":"vue/require-default-prop","severity":1,"message":"Prop 'options' requires default value to be set.","line":31,"column":3,"nodeType":"Property","messageId":"missingDefault","endLine":31,"endColumn":18,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"vue/no-unused-properties","severity":2,"message":"'observerOptions' of data found, but never used.","line":36,"column":4,"nodeType":"Identifier","messageId":"unused","endLine":36,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/base/Player.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/base/Select.vue","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'select' is undefined.","line":263,"column":1,"nodeType":"Block","endLine":263,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'submit' is undefined.","line":299,"column":1,"nodeType":"Block","endLine":299,"endColumn":1}],"suppressedMessages":[{"ruleId":"vue/no-unused-properties","severity":2,"message":"'select' of method found, but never used.","line":371,"column":3,"nodeType":"Identifier","messageId":"unused","endLine":371,"endColumn":9,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"vue/no-unused-properties","severity":2,"message":"'reset' of method found, but never used.","line":387,"column":3,"nodeType":"Identifier","messageId":"unused","endLine":387,"endColumn":8,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"<template>\n\t<div class=\"sd-select\" :class=\"rootClasses\">\n\t\t<label :id=\"listboxId\" class=\"sd-select__sr-only\">{{ selectLabel }}</label>\n\t\t<button\n\t\t\tref=\"sdSelectButton\"\n\t\t\tclass=\"sd-select__content\"\n\t\t\ttabindex=\"0\"\n\t\t\taria-autocomplete=\"list\"\n\t\t\taria-haspopup=\"listbox\"\n\t\t\t:aria-owns=\"listboxId\"\n\t\t\t:aria-labelledby=\"listboxId + ' ' + textboxId\"\n\t\t\t:aria-expanded=\"isExpanded\"\n\t\t\t:aria-activedescendant=\"activeItemId || null\"\n\t\t\t:aria-disabled=\"disabled || null\"\n\t\t\t@click=\"onClick\"\n\t\t\t@blur=\"onBlur\"\n\t\t\t@mousedown=\"isMouseDown = true\"\n\t\t\t@mouseup=\"isMouseDown = false\"\n\t\t\t@keydown.enter.prevent\n\t\t\t@keyup.enter=\"onEnter\"\n\t\t\t@keydown.up.prevent=\"onArrowUp\"\n\t\t\t@keydown.down.prevent=\"onArrowDown\"\n\t\t>\n\t\t\t<span\n\t\t\t\t:id=\"textboxId\"\n\t\t\t\tclass=\"sd-select__current-selection\"\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-readonly=\"true\"\n\t\t\t>\n\t\t\t\t<template v-if=\"isListItemSelected\">\n\t\t\t\t\t{{ prefix }}\n\t\t\t\t</template>\n\t\t\t\t{{ currentSelection }}\n\t\t\t</span>\n\t\t\t<cdx-icon\n\t\t\t\tclass=\"sd-select__handle\"\n\t\t\t\t:icon=\"cdxIconExpand\"\n\t\t\t\tsize=\"x-small\"\n\t\t\t>\n\t\t\t</cdx-icon>\n\t\t</button>\n\t\t<sd-select-menu\n\t\t\tv-if=\"showMenu\"\n\t\t\t:items=\"items\"\n\t\t\t:active-item-index=\"activeItemIndex\"\n\t\t\t:selected-item-index=\"selectedItemIndex\"\n\t\t\t:listbox-id=\"listboxId\"\n\t\t\t@select=\"onSelect\"\n\t\t\t@active-item-change=\"onActiveItemChange\"\n\t\t>\n\t\t</sd-select-menu>\n\t</div>\n</template>\n\n<script>\nconst SelectMenu = require( './SelectMenu.vue' );\nconst { CdxIcon } = require( '@wikimedia/codex' );\nconst { cdxIconExpand } = require( '../icons.json' );\n\n/**\n * @file Select\n *\n * Select component with SelectMenu dropdown.\n *\n * This component takes a set of items as a prop and passes those items to the\n * SelectMenu component for display. This component controls when the menu is\n * shown, shows the selected item if there is one, and emits the selected item\n * value to the parent.\n */\n// @vue/component\nmodule.exports = exports = {\n\tname: 'SdSelect',\n\n\tcomponents: {\n\t\tCdxIcon,\n\t\t'sd-select-menu': SelectMenu\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Name must be provided to ensure unique aria attributes. Should be a\n\t\t * valid as a CSS id.\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\n\t\t/**\n\t\t * Displayed when no item is selected. If omitted, the first item will\n\t\t * be selected and displayed initially (or the selected item is one is\n\t\t * provided as a prop). MW Message objects are allowed.\n\t\t */\n\t\tlabel: {\n\t\t\ttype: [ String, Object ],\n\t\t\tdefault: null\n\t\t},\n\n\t\t/** Items should be an array of objects with \"label\" and \"value\" properties */\n\t\titems: {\n\t\t\ttype: [ Array ],\n\t\t\trequired: true\n\t\t},\n\n\t\t/**\n\t\t * If an item should be selected on component mount, the selected item\n\t\t * index can be included via this prop.\n\t\t */\n\t\tinitialSelectedItemIndex: {\n\t\t\ttype: Number,\n\t\t\tdefault: -1\n\t\t},\n\n\t\tdisabled: {\n\t\t\ttype: Boolean\n\t\t},\n\n\t\t/**\n\t\t * Prefix will be shown before the selected value, e.g. \"Sort by:\"\n\t\t * MW Message objects are allowed.\n\t\t */\n\t\tprefix: {\n\t\t\ttype: [ String, Object ],\n\t\t\tdefault: ''\n\t\t}\n\t},\n\n\temits: [\n\t\t'select'\n\t],\n\n\tdata: function () {\n\t\treturn {\n\t\t\tshowMenu: false,\n\t\t\tisMouseDown: false,\n\t\t\tactiveItemIndex: this.initialSelectedItemIndex,\n\t\t\tselectedItemIndex: this.initialSelectedItemIndex,\n\t\t\tcdxIconExpand\n\t\t};\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tisListItemSelected: function () {\n\t\t\treturn this.selectedItemIndex > -1;\n\t\t},\n\n\t\t/**\n\t\t * This helps to figure out what text to show as label for accessibility\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tselectLabel: function () {\n\t\t\t// We show the label, if an item is selected,\n\t\t\t// because it would be label will removed from the button\n\t\t\tif ( this.isListItemSelected ) {\n\t\t\t\treturn this.label;\n\t\t\t} else if ( !this.label ) {\n\t\t\t\t// We show the prefix as the label,\n\t\t\t\t// if no label is passed and no item is selected\n\t\t\t\treturn this.prefix;\n\t\t\t}\n\n\t\t\treturn '';\n\t\t},\n\n\t\t/**\n\t\t * @return {string} The user-visible label for the current selection\n\t\t */\n\t\tcurrentSelection: function () {\n\t\t\tif ( this.selectedItemIndex === -1 ) {\n\t\t\t\treturn this.label;\n\t\t\t} else {\n\t\t\t\treturn this.items[ this.selectedItemIndex ].label;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @return {Object}\n\t\t */\n\t\trootClasses: function () {\n\t\t\treturn {\n\t\t\t\t'sd-select--open': this.showMenu,\n\t\t\t\t'sd-select--disabled': this.disabled,\n\t\t\t\t// This class can be used by other components (e.g. Tabs) to\n\t\t\t\t// style component differently depending on whether or not a\n\t\t\t\t// value has been selected.\n\t\t\t\t'sd-select--value-selected': this.selectedItemIndex > -1\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * For the aria-expanded attribute of the input, we need to use strings\n\t\t * instead of booleans so that aria-expanded will be set to \"false\" when\n\t\t * appropriate rather than the attribute being omitted, which is what\n\t\t * would happen if we used a boolean false.\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tisExpanded: function () {\n\t\t\treturn this.showMenu ? 'true' : 'false';\n\t\t},\n\n\t\t/**\n\t\t * @return {string}\n\t\t */\n\t\ttextboxId: function () {\n\t\t\treturn this.name + '__textbox';\n\t\t},\n\n\t\t/**\n\t\t * @return {string}\n\t\t */\n\t\tlistboxId: function () {\n\t\t\treturn this.name + '__listbox';\n\t\t},\n\n\t\t/**\n\t\t * The ID of the element of the active menu item.\n\t\t *\n\t\t * @return {string|boolean}\n\t\t */\n\t\tactiveItemId: function () {\n\t\t\treturn this.activeItemIndex > -1 ?\n\t\t\t\tthis.listboxId + '-item-' + this.activeItemIndex :\n\t\t\t\tfalse;\n\t\t},\n\n\t\t/**\n\t\t * @return {number} Number of items\n\t\t */\n\t\titemsLength: function () {\n\t\t\treturn this.items.length;\n\t\t}\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Toggle menu state on click.\n\t\t */\n\t\tonClick: function () {\n\t\t\tthis.toggleMenu( !this.showMenu );\n\t\t\tthis.restoreActiveItemIndex();\n\t\t\tif ( this.showMenu ) {\n\t\t\t\tthis.$refs.sdSelectButton.focus();\n\t\t\t}\n\t\t},\n\n\t\tonBlur: function () {\n\t\t\t/**\n\t\t\t * Check if the blur event isn't triggered by a click on the menu, because it breaks on Safari\n\t\t\t */\n\t\t\tif ( !this.isMouseDown ) {\n\t\t\t\tthis.toggleMenu( false );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Handle enter keypress.\n\t\t *\n\t\t * @fires select\n\t\t * @return {void}\n\t\t */\n\t\tonEnter: function () {\n\t\t\t// If the menu is hidden, show it.\n\t\t\tif ( !this.showMenu ) {\n\t\t\t\tthis.toggleMenu( true );\n\t\t\t\tthis.restoreActiveItemIndex();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If the menu is showing but there's no active item, close the menu.\n\t\t\tif ( this.activeItemIndex < 0 ) {\n\t\t\t\tthis.toggleMenu( false );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Otherwise:\n\t\t\t// - Show the selected item in the content box\n\t\t\t// - Store the selected item index so it can be styled as such if\n\t\t\t// the menu is reopened\n\t\t\t// - Emit the selected item to the parent\n\t\t\t// - Hide the menu\n\t\t\tconst value = this.items[ this.activeItemIndex ].value;\n\t\t\tthis.selectedItemIndex = this.activeItemIndex;\n\t\t\tthis.$emit( 'select', value );\n\t\t\tthis.toggleMenu( false );\n\t\t},\n\n\t\t/**\n\t\t * Handle item click.\n\t\t *\n\t\t * @param {number} index\n\t\t * @param {Object} item\n\t\t * @param {string} item.label Selected item's human-readable label\n\t\t * @param {string} item.value Selected item's value\n\t\t * @fires submit\n\t\t */\n\t\tonSelect: function ( index, item ) {\n\t\t\tthis.activeItemIndex = index;\n\t\t\tthis.selectedItemIndex = index;\n\t\t\tthis.$emit( 'select', item.value );\n\t\t\tthis.toggleMenu( false );\n\t\t},\n\n\t\t/**\n\t\t * Move to the next item.\n\t\t * If we're at the end go back to the first item.\n\t\t * if activeItem is -1 go to second item (this is because we pre-select the first item )\n\t\t */\n\t\tonArrowDown: function () {\n\t\t\tconst index = this.activeItemIndex,\n\t\t\t\tisNotLastItem = this.itemsLength > index + 1,\n\t\t\t\tisUnselectedMenu = index === -1;\n\n\t\t\tif ( isUnselectedMenu ) {\n\t\t\t\tthis.activeItemIndex = 1;\n\t\t\t} else if ( isNotLastItem ) {\n\t\t\t\tthis.activeItemIndex = index + 1;\n\t\t\t} else {\n\t\t\t\tthis.activeItemIndex = 0;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Move to the previous item. If we're at the beginning, go to\n\t\t * the last item.\n\t\t */\n\t\tonArrowUp: function () {\n\t\t\tconst index = this.activeItemIndex;\n\t\t\t// Do nothing if there is no active item yet.\n\t\t\tif ( index > -1 ) {\n\t\t\t\tthis.activeItemIndex = index === 0 ? this.itemsLength - 1 : index - 1;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Change the active item index based on mouseover or mouseleave.\n\t\t *\n\t\t * @param {number} index\n\t\t */\n\t\tonActiveItemChange: function ( index ) {\n\t\t\tthis.activeItemIndex = index;\n\t\t},\n\n\t\t/**\n\t\t * Set menu visibility.\n\t\t *\n\t\t * @param {boolean} show\n\t\t * @return {void}\n\t\t */\n\t\ttoggleMenu: function ( show ) {\n\t\t\tif ( this.disabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.showMenu = show;\n\t\t},\n\n\t\t/**\n\t\t * Programmatically set the selection if it has been changed by means\n\t\t * other than direct user interaction. Changes made in this way should\n\t\t * never emit \"select\" events.\n\t\t *\n\t\t * @param {string} selection value of the item to be selected\n\t\t * @throws error if specified value does not exist\n\t\t */\n\t\t// eslint-disable-next-line vue/no-unused-properties\n\t\tselect: function ( selection ) {\n\t\t\tconst selectionIndex = this.items.findIndex( ( item ) => item.value === selection );\n\n\t\t\tif ( selectionIndex && selectionIndex >= 0 ) {\n\t\t\t\tthis.selectedItemIndex = selectionIndex;\n\t\t\t\tthis.activeItemIndex = selectionIndex;\n\t\t\t} else {\n\t\t\t\tthrow new Error( 'specified value does not exist' );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Reset the component to initial values for selection index and\n\t\t * user-visible label\n\t\t */\n\t\t// eslint-disable-next-line vue/no-unused-properties\n\t\treset: function () {\n\t\t\tthis.selectedItemIndex = this.initialSelectedItemIndex;\n\t\t\tthis.activeItemIndex = this.initialSelectedItemIndex;\n\t\t},\n\n\t\t/**\n\t\t * Restore the ActiveItemIndex to be equal to the selectedItemIndex\n\t\t * This is usually needed to make sure that when the dropdowns is open\n\t\t * it activate the selected Item\n\t\t */\n\t\trestoreActiveItemIndex: function () {\n\t\t\tthis.activeItemIndex = this.selectedItemIndex;\n\t\t}\n\t}\n};\n</script>\n","usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/base/SelectMenu.vue","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'select' is undefined.","line":107,"column":1,"nodeType":"Block","endLine":107,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"<template>\n\t<div class=\"sd-select-menu\">\n\t\t<ul\n\t\t\t:id=\"listboxId\"\n\t\t\tclass=\"sd-select-menu__list\"\n\t\t\trole=\"listbox\"\n\t\t\t:aria-labelledby=\"labelledBy\"\n\t\t>\n\t\t\t<li\n\t\t\t\tv-for=\"( item, index ) in formattedItems\"\n\t\t\t\t:id=\"listboxId + '-item-' + index\"\n\t\t\t\t:key=\"listboxId + '-item-' + index\"\n\t\t\t\tclass=\"sd-select-menu__list-item\"\n\t\t\t\t:class=\"getItemClasses( index )\"\n\t\t\t\trole=\"option\"\n\t\t\t\t:aria-selected=\"isActiveItem( index ) || null\"\n\t\t\t\t@mousedown=\"onMousedown( index, item )\"\n\t\t\t\t@mouseover=\"$emit( 'active-item-change', index )\"\n\t\t\t\t@mouseleave=\"$emit( 'active-item-change', -1 )\"\n\t\t\t>\n\t\t\t\t{{ item.label }}\n\t\t\t</li>\n\t\t</ul>\n\t</div>\n</template>\n\n<script>\n/**\n * @file SelectMenu\n *\n * List of items that informs the parent component when an item is clicked.\n * Receives the index of the active item from parent so a visual indication can\n * be applied via CSS here.\n *\n * On hover, active item index is emitted to the parent. On mouse leave, the\n * index is reset to -1 (i.e. no active item).\n */\n// @vue/component\nmodule.exports = exports = {\n\tname: 'SelectMenu',\n\n\tprops: {\n\t\t/**\n\t\t * Items can come in 3 formats:\n\t\t * 1. An array of strings\n\t\t * Example: [ 'Apple', 'Banana', 'Orange' ]\n\t\t * 2. An array of objects with label and value keys\n\t\t * Example: [ {label: 'Apple', value: 'a'}, {label: 'Banana', value: 'b'} ]\n\t\t * 3. An object of simple key:string pairs\n\t\t * Example: {a: 'Apple', b: 'Banana', c: 'Carrot'}\n\t\t */\n\t\titems: {\n\t\t\ttype: [ Array, Object ],\n\t\t\tdefault: function () {\n\t\t\t\treturn [ ];\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Index of the item the user is (figuratively) focused on.\n\t\t */\n\t\tactiveItemIndex: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0\n\t\t},\n\n\t\t/**\n\t\t * Index of the currently selected item. This prop will only exist for\n\t\t * parent components like a select list, since the item list persists.\n\t\t */\n\t\tselectedItemIndex: {\n\t\t\ttype: Number,\n\t\t\tdefault: -1\n\t\t},\n\n\t\tlistboxId: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\n\t\tlabelledBy: {\n\t\t\ttype: String,\n\t\t\tdefault: null\n\t\t}\n\t},\n\n\temits: [\n\t\t'active-item-change',\n\t\t'select'\n\t],\n\n\tcomputed: {\n\t\t/**\n\t\t * @return {Array} Array of objects with label and value keys\n\t\t */\n\t\tformattedItems: function () {\n\t\t\treturn this.getFormattedItems( this.items );\n\t\t}\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Handle mousedown.\n\t\t *\n\t\t * @param {number} index\n\t\t * @param {Object} item\n\t\t * @fires select\n\t\t */\n\t\tonMousedown: function ( index, item ) {\n\t\t\t// If this is the selected item, do nothing.\n\t\t\tif ( index === this.selectedItemIndex ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.$emit( 'select', index, item );\n\t\t},\n\n\t\t/**\n\t\t * Determine if a list item should have the active class.\n\t\t *\n\t\t * @param {number} index\n\t\t * @return {boolean}\n\t\t */\n\t\tisActiveItem: function ( index ) {\n\t\t\t// If activeItemIndex is unset (-1), we select the first item of the list.\n\t\t\tconst activeItem = this.activeItemIndex === -1 ? 0 : this.activeItemIndex;\n\t\t\treturn index === activeItem;\n\t\t},\n\n\t\t/**\n\t\t * Determine if a list item should have the selected class.\n\t\t *\n\t\t * @param {number} index\n\t\t * @return {boolean}\n\t\t */\n\t\tisSelectedItem: function ( index ) {\n\t\t\t// If selectedItem is unset (-1), we select the first item of the list.\n\t\t\tconst itemToSelect = this.selectedItemIndex === -1 ? 0 : this.selectedItemIndex;\n\t\t\treturn index === itemToSelect;\n\t\t},\n\n\t\tgetItemClasses: function ( index ) {\n\t\t\treturn {\n\t\t\t\t'sd-select-menu__list-item--active': this.isActiveItem( index ),\n\t\t\t\t'sd-select-menu__list-item--selected': this.isSelectedItem( index )\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Format items prop.\n\t\t *\n\t\t * Items can be provided in a variety of formats. We need to process\n\t\t * them into a single format to be used in the template.\n\t\t *\n\t\t * @param {Array|Object} items\n\t\t * @return {Array} Array of objects with label and value keys\n\t\t */\n\t\tgetFormattedItems: function ( items ) {\n\t\t\tlet keys;\n\n\t\t\t// Handle array of strings.\n\t\t\tif (\n\t\t\t\tArray.isArray( items ) &&\n\t\t\t\titems.length &&\n\t\t\t\ttypeof items[ 0 ] === 'string'\n\t\t\t) {\n\t\t\t\treturn items.map( ( item ) => ( {\n\t\t\t\t\tlabel: item,\n\t\t\t\t\tvalue: item\n\t\t\t\t} ) );\n\t\t\t}\n\n\t\t\t// Handle array of objects.\n\t\t\tif (\n\t\t\t\tArray.isArray( items ) &&\n\t\t\t\titems.length &&\n\t\t\t\ttypeof items[ 0 ] === 'object'\n\t\t\t) {\n\t\t\t\treturn items.map( ( item ) => {\n\t\t\t\t\tif ( 'label' in item && 'value' in item ) {\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Handle object.\n\t\t\tif ( typeof items === 'object' ) {\n\t\t\t\tkeys = Object.keys( items );\n\t\t\t\treturn keys.map( ( key ) => ( {\n\t\t\t\t\tlabel: items[ key ],\n\t\t\t\t\tvalue: key\n\t\t\t\t} ) );\n\t\t\t}\n\n\t\t\tthrow new Error( 'Passed value format is not supported' );\n\t\t}\n\t}\n};\n</script>\n","usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/base/mixins/observer.js","messages":[],"suppressedMessages":[{"ruleId":"compat/compat","severity":2,"message":"IntersectionObserver is not supported in Safari 11.1","line":71,"column":19,"nodeType":"NewExpression","endLine":74,"endColumn":4,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/results/AudioResult.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/results/ImageResult.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/results/OtherResult.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/results/PageResult.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/components/results/VideoResult.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/constants.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/ensureArray.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/getLocationAgnosticMwApi.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/init.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-global-selector","severity":2,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":9,"column":1,"nodeType":"CallExpression","endLine":9,"endColumn":24,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/mixins/autocompleteLookupHandler.js","messages":[{"ruleId":"max-len","severity":1,"message":"This line has a length of 120. Maximum allowed is 110.","line":148,"column":1,"nodeType":"Program","messageId":"max","endLine":148,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 151. Maximum allowed is 110.","line":202,"column":1,"nodeType":"Program","messageId":"max","endLine":202,"endColumn":140}],"suppressedMessages":[{"ruleId":"prefer-regex-literals","severity":2,"message":"Use a regular expression literal instead of the 'RegExp' constructor.","line":63,"column":33,"nodeType":"NewExpression","messageId":"unexpectedRegExp","endLine":63,"endColumn":82,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-regexp-unicode-property-escapes","severity":2,"message":"ES2018 RegExp Unicode property escape sequences are forbidden.","line":63,"column":33,"nodeType":"NewExpression","messageId":"forbidden","endLine":63,"endColumn":82,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"prefer-regex-literals","severity":2,"message":"Use a regular expression literal instead of the 'RegExp' constructor.","line":106,"column":21,"nodeType":"NewExpression","messageId":"unexpectedRegExp","endLine":106,"endColumn":70,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-regexp-unicode-property-escapes","severity":2,"message":"ES2018 RegExp Unicode property escape sequences are forbidden.","line":106,"column":21,"nodeType":"NewExpression","messageId":"forbidden","endLine":106,"endColumn":70,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"const getLocationAgnosticMwApi = require( '../getLocationAgnosticMwApi.js' );\nconst apiUri = mw.config.get( 'sdmsExternalEntitySearchBaseUri' );\n\n/**\n * @file searchAutocomplete.js\n *\n * Mixin containing logic for search input autocomplete lookups. This component:\n * - Takes in current search input\n * - Makes wbsearchentities calls to get raw potential autocomplete results\n * - Filters out duplicate results\n * - Filters out results that don't include the final word being typed\n * - Trims the list of results to a predetermined limit\n * - Returns an array of these filtered and trimmed results\n */\nmodule.exports = exports = {\n\n\tdata: function () {\n\t\treturn {\n\t\t\tdebounceTimeoutId: null,\n\t\t\tlookupPromises: null,\n\t\t\tlookupResults: [],\n\t\t\tlookupResultsLimit: 7,\n\t\t\tlookupDisabled: !apiUri\n\t\t};\n\t},\n\n\tmethods: {\n\t\tclearLookupResults: function () {\n\t\t\tthis.lookupResults = [];\n\t\t},\n\n\t\t/**\n\t\t * Get lookup results for current text input.\n\t\t *\n\t\t * @param {string} input\n\t\t */\n\t\tgetDebouncedLookupResults: function ( input ) {\n\t\t\tclearTimeout( this.debounceTimeoutId );\n\t\t\tthis.debounceTimeoutId = setTimeout(\n\t\t\t\tthis.getLookupResults.bind( this, input ),\n\t\t\t\t250\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Get lookup results for current text input.\n\t\t *\n\t\t * @param {string} input\n\t\t */\n\t\tgetLookupResults: function ( input ) {\n\t\t\tconst trimmedInput = input.trim();\n\n\t\t\t// If this is an empty string or just whitespace, bail early.\n\t\t\tif ( trimmedInput.length === 0 ) {\n\t\t\t\tthis.lookupResults = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet words, inputRegex;\n\t\t\ttry {\n\t\t\t\t// below could be a regex literal, but eslint fails to parse the `u` flag...\n\t\t\t\t// eslint-disable-next-line prefer-regex-literals, es-x/no-regexp-unicode-property-escapes\n\t\t\t\twords = trimmedInput.match( new RegExp( '[\\\\p{L}\\\\p{M}\\\\p{N}\\\\p{S}]+', 'gu' ) ) || [];\n\n\t\t\t\tinputRegex = new RegExp( '^' + new Array( words.length + 1 ).join( '[\\\\p{L}\\\\p{M}\\\\p{N}\\\\p{S}]+.*?' ), 'iu' );\n\t\t\t} catch ( e ) {\n\t\t\t\t// if browser doesn't support unicode regexes, fall back to simple\n\t\t\t\t// space/punctuation-based word detection\n\t\t\t\twords = trimmedInput.match( /[^\\s\\-.:;,\"]+/g ) || [];\n\n\t\t\t\tinputRegex = new RegExp( '^' + new Array( words.length + 1 ).join( '[^\\\\s\\\\-]+[\\\\s\\\\-.:;,\"]*' ), 'i' );\n\t\t\t}\n\n\t\t\tif ( words.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.doLookupRequest( trimmedInput )\n\t\t\t\t.then( ( results ) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.lookupResults = this.getFilteredLookupResults( results, inputRegex );\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// If there is an error in attempting to match & process\n\t\t\t\t\t\t// autocomplete results, swallow it (don't spam the logs)\n\t\t\t\t\t\t// and reset lookup results to an empty array,\n\t\t\t\t\t\t// dismissing the pending state in the input element.\n\t\t\t\t\t\t// strings wrapped in quotes will trigger this behavior,\n\t\t\t\t\t\t// for example.\n\t\t\t\t\t\tthis.clearLookupResults();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Get unfiltered lookup results for text input.\n\t\t *\n\t\t * @param {string} input\n\t\t * @return {Array}\n\t\t */\n\t\tdoLookupRequest: function ( input ) {\n\t\t\tconst promises = [];\n\t\t\tlet lastWordRegex, lastWord;\n\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line prefer-regex-literals, es-x/no-regexp-unicode-property-escapes\n\t\t\t\tlastWordRegex = new RegExp( '[\\\\p{L}\\\\p{M}\\\\p{N}\\\\p{S}]+$', 'u' );\n\t\t\t\tlastWord = input.match( lastWordRegex );\n\t\t\t} catch ( e ) {\n\t\t\t\tlastWordRegex = /[^\\s\\-.:;,]+$/;\n\t\t\t\tlastWord = input.match( lastWordRegex );\n\t\t\t}\n\n\t\t\t// Abort in-flight lookup promises to ensure the results provided\n\t\t\t// are for the most recent search input.\n\t\t\tif ( this.lookupPromises ) {\n\t\t\t\tthis.lookupPromises.abort();\n\t\t\t}\n\n\t\t\t// First, get results for the entire search input.\n\t\t\tconst inputPromise = this.getLookupRequestForTerm( input );\n\t\t\tpromises.push(\n\t\t\t\tinputPromise.then( ( response ) => response.search.map(\n\t\t\t\t\t// Get search term that matched (could be label or alias or...)\n\t\t\t\t\t( result ) => result.match.text\n\t\t\t\t) ).promise( { abort: inputPromise.abort } )\n\t\t\t);\n\n\t\t\t// Next, if there's more than 1 word, get results for just the last\n\t\t\t// word. Results for the entire search term will still be preferred\n\t\t\t// but this can help return more relevant results for some queries,\n\t\t\t// e.g. when the second word is more specific or meaningful than the\n\t\t\t// first.\n\t\t\tif ( lastWord && lastWord[ 0 ] && input !== lastWord[ 0 ] ) {\n\t\t\t\tconst lastWordPromise = this.getLookupRequestForTerm( lastWord[ 0 ] );\n\t\t\t\tpromises.push(\n\t\t\t\t\tlastWordPromise.then( ( response ) => response.search.map(\n\t\t\t\t\t\t// Add search term to rest of the input.\n\t\t\t\t\t\t( result ) => input.replace( lastWordRegex, result.match.text )\n\t\t\t\t\t) ).promise( { abort: lastWordPromise.abort } )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Combine the promises and add an abort function so we can cancel\n\t\t\t// this if the search input is updated (i.e. continued typing).\n\t\t\tthis.lookupPromises = $.when.apply( $, promises )\n\t\t\t\t.then( function () {\n\t\t\t\t\t// Combine the results of multiple API calls.\n\t\t\t\t\treturn [].slice.call( arguments ).reduce( ( combined, results ) => combined.concat( results ), [] );\n\t\t\t\t} ).promise( { abort: function () {\n\t\t\t\t\tpromises.forEach( ( promise ) => {\n\t\t\t\t\t\tpromise.abort();\n\t\t\t\t\t} );\n\t\t\t\t} } );\n\n\t\t\treturn this.lookupPromises;\n\t\t},\n\n\t\t/**\n\t\t * Set up a wbsearchentities API call for an input string.\n\t\t *\n\t\t * @param {string} term\n\t\t * @return {jQuery.promise}\n\t\t */\n\t\tgetLookupRequestForTerm: function ( term ) {\n\t\t\tconst api = getLocationAgnosticMwApi( apiUri, { anonymous: true } );\n\n\t\t\tif ( this.lookupDisabled ) {\n\t\t\t\treturn $.Deferred().resolve( { search: [] } ).promise( { abort: function () {} } );\n\t\t\t}\n\n\t\t\treturn api.get( {\n\t\t\t\taction: 'wbsearchentities',\n\t\t\t\tsearch: term,\n\t\t\t\tformat: 'json',\n\t\t\t\tlanguage: mw.config.get( 'wgUserLanguage' ),\n\t\t\t\tuselang: mw.config.get( 'wgUserLanguage' ),\n\t\t\t\ttype: 'item',\n\t\t\t\t// request more than our limit, so we can omit duplicates\n\t\t\t\tlimit: 50\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Filter results.\n\t\t *\n\t\t * @param {Array} lookupResults All lookup results\n\t\t * @param {string} inputRegex Regex for isolating last word\n\t\t * @return {Array}\n\t\t */\n\t\tgetFilteredLookupResults: function ( lookupResults, inputRegex ) {\n\t\t\treturn lookupResults\n\t\t\t\t.map( ( result ) => {\n\t\t\t\t\t// Only suggest completion for the word currently being typed.\n\t\t\t\t\tconst match = result.match( inputRegex );\n\t\t\t\t\treturn match.length > 0 ? match[ 0 ] : '';\n\t\t\t\t} )\n\t\t\t\t// Filter for unique values.\n\t\t\t\t// Could do a simple `indexOf` to see if a value already exists\n\t\t\t\t// but that'd be case-sensitive, and since case doesn't matter\n\t\t\t\t// for search terms, we shouldn't be showing the same term in\n\t\t\t\t// different capitalization if it's going to give the same results.\n\t\t\t\t.filter( ( value, i, array ) => !array.slice( 0, i ).some( ( previousValue ) => previousValue.toLowerCase() === value.toLowerCase() ) )\n\t\t\t\t// Return a limited number of results to show the user.\n\t\t\t\t.slice( 0, this.lookupResultsLimit );\n\t\t}\n\t}\n};\n","usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/mixins/restoreHistoryHandler.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/mixins/searchResult.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'show-details' is undefined.","line":99,"column":1,"nodeType":"Block","endLine":99,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * @file searchResult.js\n *\n * Re-usable mixin for search result components. Individual Result components\n * that implement this mixin can decide for themselves how all this information\n * should be disiplayed.\n *\n * This mixin is deliberately \"dumb\" (contains no local state) so that search\n * result components which include it can be written as stateless functional\n * components if necessary.\n */\nmodule.exports = {\n\tprops: {\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\n\t\tcanonicalurl: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\n\t\timageinfo: {\n\t\t\ttype: Array,\n\t\t\trequired: false,\n\t\t\tdefault: function () {\n\t\t\t\treturn [ {} ];\n\t\t\t}\n\t\t},\n\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\trequired: true\n\t\t},\n\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\n\t\tentityterms: {\n\t\t\ttype: Object,\n\t\t\trequired: false\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * @return {string|undefined}\n\t\t */\n\t\tthumbnail: function () {\n\t\t\tconst commonWidths = mw.config.get( 'sdmsThumbLimits' );\n\n\t\t\t// Do nothing if we have no imageinfo or thumbnail data.\n\t\t\tif ( !this.imageinfo || !( 'thumburl' in this.imageinfo[ 0 ] ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// find the closest (larger) width that is more common, it is (much) more\n\t\t\t// likely to have a thumbnail cached\n\t\t\tconst oldWidth = this.imageinfo[ 0 ].thumbwidth;\n\t\t\tlet newWidth = oldWidth;\n\t\t\tfor ( let i = 0; i < commonWidths.length; i++ ) {\n\t\t\t\tif ( commonWidths[ i ] >= oldWidth ) {\n\t\t\t\t\tnewWidth = commonWidths[ i ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.imageinfo[ 0 ].thumburl.replace(\n\t\t\t\t'/' + oldWidth + 'px-',\n\t\t\t\t'/' + newWidth + 'px-'\n\t\t\t);\n\t\t},\n\n\t\tlabel: function () {\n\t\t\tif ( this.entityterms && this.entityterms.label ) {\n\t\t\t\treturn this.entityterms.label[ 0 ];\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Use mw.Title to get a normalized title without File, Category, etc. prepending\n\t\t *\n\t\t * @return {string|null}\n\t\t */\n\t\tdisplayName: function () {\n\t\t\tconst title = mw.Title.newFromText( this.title );\n\t\t\treturn title ? title.getMainText() : null;\n\t\t}\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * @param {Event} e\n\t\t * @fires show-details\n\t\t */\n\t\tshowDetails: function ( e ) {\n\t\t\t// Allow cmd + click/Windows + click to open file page in new tab.\n\t\t\tif ( e.metaKey === true ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\te.preventDefault();\n\n\t\t\t// Stop the original event (most likely a \"click\") from\n\t\t\t// propagating in case other scripts (user scripts, etc)\n\t\t\t// are listening. See https://phabricator.wikimedia.org/T260203\n\t\t\t// for an example.\n\t\t\te.stopPropagation();\n\t\t\tthis.$emit( 'show-details', this.title );\n\t\t},\n\n\t\t/**\n\t\t * Programatically focus the result's link element (must be given a\n\t\t * \"ref\" in the component template)\n\t\t */\n\t\tfocus: function () {\n\t\t\tthis.$refs.link.focus();\n\t\t},\n\n\t\t/**\n\t\t * Format a file size into something readable.\n\t\t *\n\t\t * Adapted from Special:Upload code in MediaWiki core. This isn't a\n\t\t * perfect solution—for example, it will use a dot as the decimal\n\t\t * separator, which isn't how it's done in every language—but it gets\n\t\t * us most of the way there without reimplementing the lengthy and\n\t\t * complex Language::formatNum method.\n\t\t *\n\t\t * @param {number} size\n\t\t * @return {string} Size to the hundreths place plus units\n\t\t */\n\t\tformatSize: function ( size ) {\n\t\t\tconst sizeMsgs = [\n\t\t\t\t'size-bytes',\n\t\t\t\t'size-kilobytes',\n\t\t\t\t'size-megabytes',\n\t\t\t\t'size-gigabytes'\n\t\t\t];\n\n\t\t\twhile ( size >= 1024 && sizeMsgs.length > 1 ) {\n\t\t\t\tsize /= 1024;\n\t\t\t\tsizeMsgs.shift();\n\t\t\t}\n\n\t\t\tlet decimalPlace = 1;\n\t\t\t// To match what the Language::formatSize method is doing, we'll\n\t\t\t// only show decimal places for MB and larger.\n\t\t\tif ( sizeMsgs.length <= 2 ) {\n\t\t\t\tdecimalPlace = 100;\n\t\t\t}\n\n\t\t\t// Ensure that the rounded numerical digits fed to the size messages\n\t\t\t// are provided in the appropriate language; Bangle and Farsi must\n\t\t\t// not use Arabic numbers for example. https://phabricator.wikimedia.org/T274614\n\t\t\tconst sizeDigitsInLanguage = mw.language.convertNumber(\n\t\t\t\tMath.round( size * decimalPlace ) / decimalPlace\n\t\t\t);\n\n\t\t\t// The following messages are used here:\n\t\t\t// * size-bytes\n\t\t\t// * size-kilobytes\n\t\t\t// * size-megabytes\n\t\t\t// * size-gigabytes\n\t\t\treturn mw.msg( sizeMsgs[ 0 ], sizeDigitsInLanguage );\n\t\t},\n\n\t\t/**\n\t\t * Format a number per-language (e.g. adding separators).\n\t\t *\n\t\t * @param {number} number\n\t\t * @return {string}\n\t\t */\n\t\tformatNumber: function ( number ) {\n\t\t\treturn number.toLocaleString( mw.config.get( 'wgUserLanguage' ) );\n\t\t}\n\t}\n};\n","usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/mixins/searchResultTimeBased.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/models/SearchFilter.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/plugins/eventLogger.js","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'web_pageview_id' is not in camel case.","line":18,"column":11,"nodeType":"Identifier","messageId":"notCamelCase","endLine":18,"endColumn":26,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'language_code' is not in camel case.","line":19,"column":11,"nodeType":"Identifier","messageId":"notCamelCase","endLine":19,"endColumn":24,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'ui_mw_skin' is not in camel case.","line":20,"column":11,"nodeType":"Identifier","messageId":"notCamelCase","endLine":20,"endColumn":21,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/store/actions.js","messages":[{"ruleId":"no-jquery/no-done-fail","severity":1,"message":"Prefer .then to .done","line":225,"column":9,"nodeType":"CallExpression","endLine":281,"endColumn":5},{"ruleId":"max-len","severity":1,"message":"This line has a length of 118. Maximum allowed is 110.","line":226,"column":1,"nodeType":"Program","messageId":"max","endLine":226,"endColumn":113},{"ruleId":"no-jquery/no-done-fail","severity":1,"message":"Prefer .then to .done","line":318,"column":2,"nodeType":"CallExpression","endLine":327,"endColumn":5}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"const getLocationAgnosticMwApi = require( '../getLocationAgnosticMwApi.js' );\nconst externalSearchUri = mw.config.get( 'sdmsExternalSearchUri' );\nconst LIMIT = 40;\nconst searchOptions = require( '../data/searchOptions.json' );\nlet activeSearchRequest = null;\n\n/**\n * Generate additional (non-term) search keywords for filters.\n *\n * @param {string} mediaType\n * @param {Object} filterValues Filter values for this media type\n * @return {string}\n */\nconst getMediaFilters = function ( mediaType, filterValues ) {\n\tlet raw;\n\n\t// Start with a filter based on media type(s).\n\tswitch ( mediaType ) {\n\t\tcase 'image':\n\t\t\traw = 'filetype:bitmap|drawing';\n\t\t\tbreak;\n\n\t\tcase 'other':\n\t\t\traw = 'filetype:multimedia|office|archive|3d';\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\traw = 'filetype:' + mediaType;\n\t\t\tbreak;\n\t}\n\n\tfunction addFilter( filter ) {\n\t\tconst value = filter in filterValues ? filterValues[ filter ] : null;\n\t\tif ( value && filter !== 'assessment' ) {\n\t\t\treturn ' ' + filter + ':' + value;\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t// We need to filter out media result with 0 width and height\n\tif ( mediaType !== 'audio' ) {\n\t\traw += ' -fileres:0';\n\t}\n\n\traw += addFilter( 'filemime' );\n\traw += addFilter( 'fileres' );\n\traw += addFilter( 'assessment' );\n\traw += addFilter( 'haslicense' );\n\n\treturn raw;\n};\n\n/**\n * @param {string} suggestion suggested search term pre-pended with active search keywords\n * @param {string|undefined} filters ex: filetype:bitmap|drawing filemime:png\n * @param {string|undefined} assessment ex: haswbstatement:P6731=Q63348049\n * @return {string} string containing *only* the suggested new query, no keywords\n */\nconst extractSuggestedTerm = function ( suggestion, filters, assessment ) {\n\tlet filteredSuggestion = suggestion;\n\n\tif ( filters ) {\n\t\tfilteredSuggestion = filteredSuggestion.slice( filters.length ).trim();\n\t}\n\n\tif ( assessment ) {\n\t\tfilteredSuggestion = filteredSuggestion.replace( assessment, '' ).trim();\n\t}\n\n\treturn filteredSuggestion;\n};\n\n/**\n * Perform a search via API request. Should return a promise.\n * There are a few different ways that searches should behave.\n * This search will use the current term and type\n *\n * - If a totally new search term has been provided, blow away existing\n * results for all tabs but only fetch new results for whatever tab is\n * currently active\n * - If the user switches to a tab where results have not yet been loaded\n * but the search term is still good, fetch results for the active tab\n * and add them, but leave other results alone\n * - Certain actions like scrolling will load more results within a given\n * queue if they are available. In this case the term and the media-type\n * will not change, but the \"continue\" state will, and new results will\n * be added to the current tab only\n *\n * @param {Object} context\n * @param {boolean} forceSearch\n * @return {jQuery.Deferred}\n */\nconst searchCurrentTermAndType = function ( context ) {\n\n\t// Don't make API requests if the search term is empty or is in error\n\tif ( context.getters.currentSearchTerm === '' ) {\n\t\treturn $.Deferred().resolve().promise( { abort: function () {} } );\n\t}\n\n\t// common request params for all requests\n\tconst params = {\n\t\t\tformat: 'json',\n\t\t\tuselang: mw.config.get( 'wgUserLanguage' ),\n\t\t\taction: 'query',\n\t\t\tgenerator: 'search',\n\t\t\tgsrsearch: context.getters.currentSearchTerm,\n\t\t\tgsrlimit: LIMIT,\n\t\t\tgsroffset: context.state.continue[ context.getters.currentType ] || 0,\n\t\t\tgsrinfo: 'totalhits|suggestion',\n\t\t\tgsrprop: 'size|wordcount|timestamp|snippet',\n\t\t\tprop: context.getters.currentType === 'page' ? 'info|categoryinfo' : 'info|imageinfo|entityterms',\n\t\t\tinprop: 'url'\n\t\t},\n\t\tnamespaceGroups = mw.config.get( 'sdmsNamespaceGroups' ),\n\t\tfilterValues = context.state.filterValues[ context.getters.currentType ] || {};\n\n\tlet filters, statement;\n\n\t// If a search request is already in-flight, abort it\n\tif ( activeSearchRequest && activeSearchRequest.abort ) {\n\t\tactiveSearchRequest.abort();\n\t}\n\n\tif ( context.state.continue[ context.getters.currentType ] === null ) {\n\t\t// prevent API requests when they're already known not to have results\n\t\t// (because there was no continuation offset)\n\t\tactiveSearchRequest = $.Deferred().resolve().promise( { abort: function () {} } );\n\t\treturn activeSearchRequest;\n\t}\n\n\tif ( context.getters.currentType === 'page' ) {\n\t\t// Page/category-specific params.\n\t\tconst namespaceFilter = filterValues.namespace;\n\n\t\t// Default to all namespaces.\n\t\tlet namespaces = Object.keys( namespaceGroups.all ).join( '|' );\n\n\t\tif ( namespaceFilter ) {\n\t\t\t// If the namespace filter value is one of the pre-defined\n\t\t\t// namespace groups, get the list of values from the namespace\n\t\t\t// group data. Otherwise, we're getting a custom list of\n\t\t\t// namespaces - use that.\n\t\t\tnamespaces = namespaceFilter in namespaceGroups ?\n\t\t\t\tObject.keys( namespaceGroups[ namespaceFilter ] ).join( '|' ) :\n\t\t\t\tnamespaceFilter;\n\t\t}\n\t\tparams.gsrnamespace = namespaces;\n\t} else {\n\t\t// Params used in all non-page/category searches.\n\t\t// 1. Special handling for assessment filter\n\t\tif ( filterValues.assessment ) {\n\t\t\tconst assessmentValue = filterValues.assessment;\n\t\t\tconst assessmentStatements = searchOptions[ context.getters.currentType ]\n\t\t\t\t.assessment.data.statementData;\n\n\t\t\tconst assessment = assessmentStatements.find( ( i ) => i.value === assessmentValue );\n\n\t\t\tif ( assessment ) {\n\t\t\t\tstatement = assessment.statement;\n\t\t\t\tparams.gsrsearch = statement + ' ' + params.gsrsearch;\n\t\t\t}\n\t\t}\n\t\t// 2. Handle remaining filters\n\t\tfilters = getMediaFilters( context.getters.currentType, filterValues );\n\t\tif ( filters ) {\n\t\t\tparams.gsrsearch = filters + ' ' + params.gsrsearch;\n\t\t}\n\t\tlet urlWidth;\n\t\tswitch ( context.getters.currentType ) {\n\t\t\tcase 'video':\n\t\t\t\turlWidth = 200;\n\t\t\t\tbreak;\n\n\t\t\tcase 'other':\n\t\t\t\t// generating thumbnails from many of these file types is very\n\t\t\t\t// expensive and slow, enough so that we're better off using a\n\t\t\t\t// larger (takes longer to transfer) pre-generated (but readily\n\t\t\t\t// available) size\n\t\t\t\turlWidth = Math.min.apply( Math, mw.config.get( 'sdmsThumbRenderMap' ) );\n\t\t\t\tbreak;\n\t\t}\n\n\t\tparams.gsrnamespace = 6; // NS_FILE\n\t\tparams.iiprop = 'url|size|mime';\n\t\tparams.iiurlheight = context.getters.currentType === 'image' ? 180 : undefined;\n\t\tparams.iiurlwidth = urlWidth;\n\t\tparams.wbetterms = 'label';\n\t}\n\n\t// if there are query params prefixed with mediasearch_, then also\n\t// pass them on to the API search request - this allows requesting\n\t// a specific search profile and carry it forward in JS navigation\n\tObject.keys( context.state.uriQuery )\n\t\t.filter( ( param ) => param.match( /^mediasearch_/ ) )\n\t\t.forEach( ( param ) => {\n\t\t\tparams[ param ] = context.state.uriQuery[ param ];\n\t\t} );\n\n\t// Add sort filter.\n\tif ( 'sort' in filterValues &&\n\t\tfilterValues.sort === 'recency' ) {\n\t\tparams.gsrsort = 'create_timestamp_desc';\n\t}\n\n\t// Reset current error state\n\tcontext.commit( 'setHasError', false );\n\n\t// Set the pending state for the given queue\n\tcontext.commit( 'setPending', {\n\t\ttype: context.getters.currentType,\n\t\tpending: true\n\t} );\n\n\tconst request = getLocationAgnosticMwApi( externalSearchUri, { anonymous: true } ).get( params );\n\n\trequest.promise( {\n\t\tabort: function () {\n\t\t\trequest.abort();\n\t\t}\n\t} );\n\n\tactiveSearchRequest = request;\n\n\treturn request.then( ( response ) => {\n\t\tconst existingTitles = context.state.results[ context.getters.currentType ].map( ( result ) => result.title );\n\n\t\tif ( response.query && response.query.pages ) {\n\t\t\tconst results = response.query.pages;\n\t\t\tconst titles = Object.keys( results );\n\n\t\t\t// Sort the results within each batch prior to committing them\n\t\t\t// to the store. Also, ensure that there is no duplication of\n\t\t\t// results between batches (see https://phabricator.wikimedia.org/T272923);\n\t\t\t// if a new result's title already exists in the set of\n\t\t\t// previously-loaded results, filter it out.\n\t\t\tconst sortedResults = titles\n\t\t\t\t.map( ( id ) => results[ id ] )\n\t\t\t\t.filter( ( result ) => !existingTitles.includes( result.title ) )\n\t\t\t\t.sort( ( a, b ) => a.index - b.index );\n\n\t\t\tsortedResults.forEach( ( result ) => {\n\t\t\t\tcontext.commit( 'addResult', { type: context.getters.currentType, item: result } );\n\t\t\t} );\n\n\t\t\tif ( response.query.searchinfo && response.query.searchinfo.totalhits ) {\n\t\t\t\tcontext.commit( 'setTotalHits', {\n\t\t\t\t\tmediaType: context.getters.currentType,\n\t\t\t\t\ttotalHits: response.query.searchinfo.totalhits\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\tif ( response.query && response.query.searchinfo && response.query.searchinfo.suggestion ) {\n\t\t\tcontext.commit( 'setDidYouMean',\n\t\t\t\textractSuggestedTerm( response.query.searchinfo.suggestion, filters, statement )\n\t\t\t);\n\t\t}\n\n\t\tif ( response.warnings && response.warnings.search && response.warnings.search[ '*' ] ) {\n\t\t\tcontext.commit( 'setSearchWarnings', response.warnings.search[ '*' ] );\n\t\t}\n\n\t\t// Set whether or not the query can be continued\n\t\tif ( response.continue && response.continue.gsroffset ) {\n\t\t\t// Store the \"continue\" property of the request so we can pick up where we left off\n\t\t\tcontext.commit( 'setContinue', {\n\t\t\t\ttype: context.getters.currentType,\n\t\t\t\tcontinue: response.continue.gsroffset\n\t\t\t} );\n\t\t} else {\n\t\t\tcontext.commit( 'setContinue', {\n\t\t\t\ttype: context.getters.currentType,\n\t\t\t\tcontinue: null\n\t\t\t} );\n\t\t}\n\t} ).done( () => {\n\t\t// Set pending back to false when request is complete\n\t\tactiveSearchRequest = null;\n\t\tcontext.commit( 'setPending', { type: context.getters.currentType, pending: false } );\n\t} ).catch( ( errorCode, details ) => {\n\t\t// Set pending to false and clear the stashed request\n\t\tlet pendingType;\n\t\tactiveSearchRequest = null;\n\n\t\tObject.keys( context.state.pending ).forEach( ( type ) => {\n\t\t\tif ( context.state.pending[ type ] === true && context.getters.currentType !== type ) {\n\t\t\t\tpendingType = type;\n\t\t\t}\n\t\t} );\n\n\t\tif ( pendingType ) {\n\t\t\tcontext.commit( 'setPending', { type: pendingType, pending: false } );\n\t\t}\n\n\t\t// No other error handling is required if the request has been\n\t\t// aborted by the client\n\t\tif ( details && details.textStatus === 'abort' ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// In the case of a real failure, throw the error back to the App\n\t\t// component to display a suitable message to the user\n\t\tcontext.commit( 'setHasError', true );\n\t\tthrow details;\n\t} );\n};\n\n// We record timing here in the store, instead of in App.vue like other use\n// cases, so we can ensure we are only timing full search requests that make it\n// to the backend. Sadly this still times some things that end up\n// short-circuiting and skipping the backend, but refactoring the 200 line\n// function above is left as an excercise for the future.\nconst timedPromise = function ( metricName, fn, ...args ) {\n\tconst start = performance.now();\n\tconst promise = fn.apply( this, args );\n\n\tpromise.done( () => {\n\t\tconst took = performance.now() - start;\n\t\t// half-hearted attempt to skip requests that didn't query the backend, we know\n\t\t// that anything that touches the mw api and gets a non-cached response takes\n\t\t// at least 10ms. Optimistically the short-circuit attempts above should happen\n\t\t// in a single tick.\n\t\tif ( took >= 10 ) {\n\t\t\tmw.track( 'timing.MediaSearch' + metricName, took );\n\t\t}\n\t} );\n\n\treturn promise;\n};\n\nmodule.exports = {\n\n\t/**\n\t * Force a new search overriding any current pending request and\n\t * resetting current autoloadcounter for the searched term\n\t *\n\t * @param {Object} context\n\t * @return {jQuery.Deferred}\n\t */\n\tperformNewSearch: function ( context ) {\n\t\treturn timedPromise( 'NewSearch', searchCurrentTermAndType, context );\n\t},\n\t/**\n\t * Continue to search the current term and type. This will just trigger a search\n\t * if there are more values available and if the autoloadcounter is not 0.\n\t *\n\t * @param {Object} context\n\t * @param {boolean} resetCounter\n\t * @return {jQuery.Deferred}\n\t */\n\tsearchMore: function ( context, resetCounter ) {\n\n\t\tif ( resetCounter ) {\n\t\t\tcontext.commit( 'resetAutoLoadForMediaType', context.getters.currentType );\n\t\t}\n\n\t\tif (\n\t\t\t!context.getters.checkForMore[ context.getters.currentType ] ||\n\t\t\tcontext.state.autoloadCounter[ context.getters.currentType ] === 0 ||\n\t\t\tcontext.state.hasError ) {\n\t\t\treturn $.Deferred().resolve().promise();\n\t\t}\n\n\t\tif ( !context.state.pending[ context.getters.currentType ] ) {\n\t\t\t// If more results are available, and if another request is not\n\t\t\t// already pending, then launch a search request\n\t\t\treturn timedPromise( 'SearchMore', searchCurrentTermAndType, context )\n\t\t\t\t.then( function ( decreaseAutoload ) {\n\t\t\t\t\tif ( !decreaseAutoload ) {\n\t\t\t\t\t\tthis.commit( 'decreaseAutoloadCounterForMediaType', this.getters.currentType );\n\t\t\t\t\t}\n\t\t\t\t}.bind( this, resetCounter ) );\n\n\t\t} else {\n\t\t\t// If more results are available but another request is\n\t\t\t// currently in-flight, attempt to make the request again\n\t\t\t// after some time has passed\n\t\t\tconst deferred = $.Deferred();\n\t\t\twindow.setTimeout(\n\t\t\t\t() => {\n\t\t\t\t\tcontext.dispatch( 'searchMore' )\n\t\t\t\t\t\t.then( deferred.resolve, deferred.reject );\n\t\t\t\t},\n\t\t\t\t2000\n\t\t\t);\n\t\t\treturn deferred.promise();\n\t\t}\n\t},\n\n\t/**\n\t * Fetch expanded details for a given search result by title\n\t *\n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {string} options.mediaType\n\t * @param {string} options.title\n\t * @return {jQuery.Deferred}\n\t */\n\tfetchDetails: function ( context, options ) {\n\t\tconst userLanguage = mw.config.get( 'wgUserLanguage' ),\n\t\t\tparams = {\n\t\t\t\tformat: 'json',\n\t\t\t\tuselang: userLanguage,\n\t\t\t\taction: 'query',\n\t\t\t\tinprop: 'url',\n\t\t\t\ttitles: options.title,\n\t\t\t\tiiextmetadatalanguage: userLanguage\n\t\t\t};\n\n\t\t// Set special params for audio/video files\n\t\tif ( options.mediaType === 'video' || options.mediaType === 'audio' ) {\n\t\t\tparams.prop = 'info|videoinfo|entityterms';\n\t\t\tparams.viprop = 'url|size|mime|extmetadata|derivatives';\n\t\t\tparams.viurlwidth = 640;\n\t\t} else {\n\t\t\tparams.prop = 'info|imageinfo|entityterms';\n\t\t\tparams.iiprop = 'url|size|mime|extmetadata';\n\t\t\tparams.iiurlheight = options.mediaType === 'image' ? 180 : undefined;\n\t\t}\n\n\t\treturn getLocationAgnosticMwApi( externalSearchUri, { anonymous: true } ).get( params );\n\t},\n\n\t/**\n\t * Handle search term clear.\n\t *\n\t * @param {Object} context\n\t */\n\tclear: function ( context ) {\n\t\tif ( activeSearchRequest ) {\n\t\t\tactiveSearchRequest.abort();\n\t\t\tactiveSearchRequest = null;\n\t\t}\n\n\t\tcontext.commit( 'clearFilterQueryParams' );\n\t\tcontext.commit( 'clearTerm' );\n\t\tcontext.commit( 'resetFilters' );\n\t\tcontext.commit( 'resetResults' );\n\t\tcontext.commit( 'clearDidYouMean' );\n\t\tcontext.commit( 'clearSearchWarnings' );\n\t\tcontext.dispatch( 'pushQueryToHistoryState' );\n\t},\n\n\t/**\n\t * @param {Object} context\n\t */\n\tready: function ( context ) {\n\t\tcontext.commit( 'setInitialized' );\n\t},\n\n\t/**\n\t * Update \"Switch to Special:Search\" link target\n\t *\n\t * @param {Object} context\n\t */\n\tupdateSpecialSearch: function ( context ) {\n\t\tconst specialSearch = document.getElementById( 'mediasearch-switch-special-search' );\n\t\tif ( !specialSearch ) {\n\t\t\treturn;\n\t\t}\n\t\tconst url = new URL( specialSearch.href );\n\t\turl.searchParams.set( 'search', context.state.uriQuery.search );\n\t\tspecialSearch.href = url.toString();\n\t},\n\t/**\n\t * Push the current value of url.query to the browser's session history stack\n\t *\n\t * @param {Object} context\n\t */\n\tpushQueryToHistoryState: function ( context ) {\n\t\t// update URL query object with the one currently available within the store\n\t\t// In Vue 3, context.state.uriQuery is a Proxy, and passing it to replaceState()\n\t\t// causes an error saying it can't be cloned. Work around this by cloning the uriQuery\n\t\t// object ourselves, using JSON.parse( JSON.stringify() ) to convert the Proxy to Object.\n\t\tconst query = JSON.parse( JSON.stringify( context.state.uriQuery ) );\n\t\tconst queryString = '?' + new URLSearchParams( query ).toString();\n\t\twindow.history.pushState( query, null, queryString );\n\t\tcontext.dispatch( 'updateSpecialSearch' );\n\t},\n\t/**\n\t * Replace the current value of url.query to the browser's session history stack\n\t *\n\t * @param {Object} context\n\t */\n\treplaceQueryToHistoryState: function ( context ) {\n\t\t// update URL query object with the one currently available within the store\n\t\t// In Vue 3, context.state.uriQuery is a Proxy, and passing it to replaceState()\n\t\t// causes an error saying it can't be cloned. Work around this by cloning the uriQuery\n\t\t// object ourselves, using JSON.parse( JSON.stringify() ) to convert the Proxy to Object.\n\t\tconst query = JSON.parse( JSON.stringify( context.state.uriQuery ) );\n\t\tconst queryString = '?' + new URLSearchParams( query ).toString();\n\t\twindow.history.replaceState( query, null, queryString );\n\t\tcontext.dispatch( 'updateSpecialSearch' );\n\t},\n\t/**\n\t * Update the current Type value and reset all filters\n\t *\n\t * @param {Object} context\n\t * @param {string} currentType\n\t */\n\tupdateCurrentType: function ( context, currentType ) {\n\t\tif ( context.getters.currentType === currentType ) {\n\t\t\treturn;\n\t\t}\n\t\tcontext.commit( 'clearFilterQueryParams' );\n\t\tcontext.commit( 'setCurrentType', currentType );\n\t\tcontext.commit( 'updateFilterQueryParams', context.state.filterValues[ currentType ] );\n\t},\n\t/**\n\t * Clean query paramethers and update the history state\n\t *\n\t * @param {Object} context\n\t */\n\tclearQueryParams: function ( context ) {\n\t\tcontext.commit( 'clearTerm' );\n\t\tcontext.commit( 'clearFilterQueryParams' );\n\t\tcontext.dispatch( 'pushQueryToHistoryState' );\n\t},\n\t/**\n\t * Align mw active type with query parameter one. This is to make sure we\n\t * align the UI with the value received from the PHP side\n\t *\n\t * @param {Object} context\n\t */\n\tsyncActiveTypeAndQueryType: function ( context ) {\n\t\tconst activeType = mw.config.get( 'sdmsInitialSearchResults' ).activeType;\n\n\t\tif ( context.state.uriQuery.type !== activeType ) {\n\t\t\tcontext.commit( 'setCurrentType', activeType );\n\t\t}\n\t}\n};\n","usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/store/getters.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/store/index.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/store/mutations.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/store/state.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/DidYouMean.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/EmptyState.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/EndOfResults.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/NamespaceFilterDialog.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/NoResults.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/QuickView.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/SearchFilters.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/SearchResults.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/SearchWarnings.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/Spinner.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/UserNotice.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/app.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/base/autocompleteSearchInput.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/base/copyTextLayout.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/base/dialog.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/base/image.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/base/player.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/base/select.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/base/selectMenu.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/results/ImageResult.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/results/audioResult.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/results/otherResult.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/results/pageResult.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/components/results/videoResult.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/ignore/ensureArray.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mixins/autocompleteLookupHandler.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mixins/observer.test.js","messages":[],"suppressedMessages":[{"ruleId":"compat/compat","severity":2,"message":"IntersectionObserver is not supported in Safari 11.1","line":27,"column":12,"nodeType":"MemberExpression","endLine":27,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mixins/restoreHistoryHandler.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mocks/EventListener.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mocks/ExecCommand.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mocks/IntersectionObserver.js","messages":[],"suppressedMessages":[{"ruleId":"compat/compat","severity":2,"message":"IntersectionObserver is not supported in Safari 11.1","line":10,"column":1,"nodeType":"MemberExpression","endLine":10,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mocks/Performance.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mocks/history.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/store/actions.test.js","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'mediasearch_1' is not in camel case.","line":184,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":184,"endColumn":18,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'mediasearch_1' is not in camel case.","line":191,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":191,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/store/getters.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/store/mutations.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/store/store.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]}]}] --- end --- $ /usr/bin/npm ci --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex@2.2.1', 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.2.1', 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 1117 packages, and audited 1118 packages in 12s 162 packages are looking for funding run `npm fund` for details 6 vulnerabilities (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) 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/mixins/autocompleteLookupHandler.test.js PASS tests/jest/components/SearchResults.test.js 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/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:9:3185) at et (node_modules/@wikimedia/codex/dist/codex.cjs:9:16492) at setup (node_modules/@wikimedia/codex/dist/codex.cjs:9:117502) 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/select.test.js PASS tests/jest/components/app.test.js (5.129 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/store/store.test.js PASS tests/jest/components/SearchFilters.test.js PASS tests/jest/components/results/ImageResult.test.js PASS tests/jest/components/results/pageResult.test.js PASS tests/jest/components/results/otherResult.test.js PASS tests/jest/mixins/observer.test.js PASS tests/jest/components/results/videoResult.test.js PASS tests/jest/components/base/dialog.test.js PASS tests/jest/components/base/selectMenu.test.js PASS tests/jest/components/results/audioResult.test.js PASS tests/jest/store/getters.test.js PASS tests/jest/components/UserNotice.test.js ● Console console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 13 | describe( 'renders ', () => { 14 | it( 'the parent component', () => { > 15 | const wrapper = shallowMount( Component ); | ^ 16 | const element = wrapper.find( '.sdms-user-notice__message' ); 17 | expect( element.exists() ).toBe( true ); 18 | } ); at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:15:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 13 | describe( 'renders ', () => { 14 | it( 'the parent component', () => { > 15 | const wrapper = shallowMount( Component ); | ^ 16 | const element = wrapper.find( '.sdms-user-notice__message' ); 17 | expect( element.exists() ).toBe( true ); 18 | } ); at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:15:20) console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 19 | 20 | it( 'a button component', () => { > 21 | const wrapper = mount( Component ); | ^ 22 | const innerComponent = wrapper.findComponent( CdxButton ); 23 | expect( innerComponent.exists() ).toBe( true ); 24 | } ); at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:21:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 19 | 20 | it( 'a button component', () => { > 21 | const wrapper = mount( Component ); | ^ 22 | const innerComponent = wrapper.findComponent( CdxButton ); 23 | expect( innerComponent.exists() ).toBe( true ); 24 | } ); at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:21:20) console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 25 | 26 | it( 'a message component', () => { > 27 | const wrapper = shallowMount( Component ); | ^ 28 | const innerComponent = wrapper.findComponent( CdxMessage ); 29 | expect( innerComponent.exists() ).toBe( true ); 30 | } ); at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:27:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 25 | 26 | it( 'a message component', () => { > 27 | const wrapper = shallowMount( Component ); | ^ 28 | const innerComponent = wrapper.findComponent( CdxMessage ); 29 | expect( innerComponent.exists() ).toBe( true ); 30 | } ); at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:27:20) console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 58 | 59 | it( 'when notice dismissed', ( done ) => { > 60 | const wrapper = shallowMount( Component ); | ^ 61 | wrapper.setData( { dismissed: true } ); 62 | wrapper.vm.$nextTick( () => { 63 | const element = wrapper.find( '.sdms-user-notice__message' ); at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:60:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 58 | 59 | it( 'when notice dismissed', ( done ) => { > 60 | const wrapper = shallowMount( Component ); | ^ 61 | wrapper.setData( { dismissed: true } ); 62 | wrapper.vm.$nextTick( () => { 63 | const element = wrapper.find( '.sdms-user-notice__message' ); at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:60:20) console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 70 | describe( 'on dismiss button click', () => { 71 | it( 'sends saveOption to the api', () => { > 72 | const wrapper = shallowMount( Component ); | ^ 73 | wrapper.vm.dismiss(); 74 | expect( global.mw.Api.prototype.saveOption ).toHaveBeenCalled(); 75 | expect( global.mw.Api.prototype.saveOption ) at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:72:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 70 | describe( 'on dismiss button click', () => { 71 | it( 'sends saveOption to the api', () => { > 72 | const wrapper = shallowMount( Component ); | ^ 73 | wrapper.vm.dismiss(); 74 | expect( global.mw.Api.prototype.saveOption ).toHaveBeenCalled(); 75 | expect( global.mw.Api.prototype.saveOption ) at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:72:20) console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 78 | 79 | it( 'saves options to user object', () => { > 80 | const wrapper = shallowMount( Component ); | ^ 81 | wrapper.vm.dismiss(); 82 | expect( global.mw.user.options.set ).toHaveBeenCalled(); 83 | expect( global.mw.user.options.set ) at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:80:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 78 | 79 | it( 'saves options to user object', () => { > 80 | const wrapper = shallowMount( Component ); | ^ 81 | wrapper.vm.dismiss(); 82 | expect( global.mw.user.options.set ).toHaveBeenCalled(); 83 | expect( global.mw.user.options.set ) at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:80:20) console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 86 | 87 | it( 'changes dismissed data', () => { > 88 | const wrapper = shallowMount( Component ); | ^ 89 | wrapper.vm.dismiss(); 90 | expect( wrapper.vm.dismissed ).toBeTruthy(); 91 | } ); at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:88:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 86 | 87 | it( 'changes dismissed data', () => { > 88 | const wrapper = shallowMount( Component ); | ^ 89 | wrapper.vm.dismiss(); 90 | expect( wrapper.vm.dismissed ).toBeTruthy(); 91 | } ); at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:88:20) PASS tests/jest/components/base/copyTextLayout.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: 11.608 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.06 | 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.55 | 79.04 | 82.38 | 88.48 | 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 --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "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 } }, "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 } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 0, "high": 2, "critical": 4, "total": 6 }, "dependencies": { "prod": 1, "dev": 1118, "optional": 8, "peer": 6, "peerOptional": 0, "total": 1118 } } } --- end --- Attempting to npm audit fix $ /usr/bin/npm audit fix --dry-run --only=dev --json --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex@2.2.1', 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.2.1', npm WARN EBADENGINE required: { node: '>=20', npm: '>=10.8.1' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } --- stdout --- { "added": 1, "removed": 0, "changed": 0, "audited": 1119, "funding": 162, "audit": { "auditReportVersion": 2, "vulnerabilities": { "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 } }, "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 } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 0, "high": 2, "critical": 4, "total": 6 }, "dependencies": { "prod": 1, "dev": 1118, "optional": 8, "peer": 6, "peerOptional": 0, "total": 1118 } } } } --- end --- {"added": 1, "removed": 0, "changed": 0, "audited": 1119, "funding": 162, "audit": {"auditReportVersion": 2, "vulnerabilities": {"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}}, "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}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 0, "high": 2, "critical": 4, "total": 6}, "dependencies": {"prod": 1, "dev": 1118, "optional": 8, "peer": 6, "peerOptional": 0, "total": 1118}}}} $ /usr/bin/npm audit fix --only=dev --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@wikimedia/codex@2.2.1', 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.2.1', 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 --- up to date, audited 1118 packages in 3s 162 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 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 6 vulnerabilities (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.2.1', 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.2.1', 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 1117 packages, and audited 1118 packages in 16s 162 packages are looking for funding run `npm fund` for details 6 vulnerabilities (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/components/SearchResults.test.js PASS tests/jest/components/app.test.js ● 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/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/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) PASS tests/jest/store/mutations.test.js PASS tests/jest/components/SearchFilters.test.js PASS tests/jest/components/EmptyState.test.js PASS tests/jest/components/base/select.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:9:3185) at et (node_modules/@wikimedia/codex/dist/codex.cjs:9:16492) at setup (node_modules/@wikimedia/codex/dist/codex.cjs:9:117502) 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/mixins/autocompleteLookupHandler.test.js 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/results/pageResult.test.js PASS tests/jest/components/base/dialog.test.js PASS tests/jest/components/base/selectMenu.test.js PASS tests/jest/components/base/copyTextLayout.test.js PASS tests/jest/components/results/otherResult.test.js PASS tests/jest/components/NoResults.test.js PASS tests/jest/components/results/videoResult.test.js PASS tests/jest/components/UserNotice.test.js ● Console console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 13 | describe( 'renders ', () => { 14 | it( 'the parent component', () => { > 15 | const wrapper = shallowMount( Component ); | ^ 16 | const element = wrapper.find( '.sdms-user-notice__message' ); 17 | expect( element.exists() ).toBe( true ); 18 | } ); at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:15:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 13 | describe( 'renders ', () => { 14 | it( 'the parent component', () => { > 15 | const wrapper = shallowMount( Component ); | ^ 16 | const element = wrapper.find( '.sdms-user-notice__message' ); 17 | expect( element.exists() ).toBe( true ); 18 | } ); at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:15:20) console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 19 | 20 | it( 'a button component', () => { > 21 | const wrapper = mount( Component ); | ^ 22 | const innerComponent = wrapper.findComponent( CdxButton ); 23 | expect( innerComponent.exists() ).toBe( true ); 24 | } ); at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:21:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 19 | 20 | it( 'a button component', () => { > 21 | const wrapper = mount( Component ); | ^ 22 | const innerComponent = wrapper.findComponent( CdxButton ); 23 | expect( innerComponent.exists() ).toBe( true ); 24 | } ); at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:21:20) console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 25 | 26 | it( 'a message component', () => { > 27 | const wrapper = shallowMount( Component ); | ^ 28 | const innerComponent = wrapper.findComponent( CdxMessage ); 29 | expect( innerComponent.exists() ).toBe( true ); 30 | } ); at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:27:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 25 | 26 | it( 'a message component', () => { > 27 | const wrapper = shallowMount( Component ); | ^ 28 | const innerComponent = wrapper.findComponent( CdxMessage ); 29 | expect( innerComponent.exists() ).toBe( true ); 30 | } ); at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:27:20) console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 58 | 59 | it( 'when notice dismissed', ( done ) => { > 60 | const wrapper = shallowMount( Component ); | ^ 61 | wrapper.setData( { dismissed: true } ); 62 | wrapper.vm.$nextTick( () => { 63 | const element = wrapper.find( '.sdms-user-notice__message' ); at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:60:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 58 | 59 | it( 'when notice dismissed', ( done ) => { > 60 | const wrapper = shallowMount( Component ); | ^ 61 | wrapper.setData( { dismissed: true } ); 62 | wrapper.vm.$nextTick( () => { 63 | const element = wrapper.find( '.sdms-user-notice__message' ); at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:60:20) console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 70 | describe( 'on dismiss button click', () => { 71 | it( 'sends saveOption to the api', () => { > 72 | const wrapper = shallowMount( Component ); | ^ 73 | wrapper.vm.dismiss(); 74 | expect( global.mw.Api.prototype.saveOption ).toHaveBeenCalled(); 75 | expect( global.mw.Api.prototype.saveOption ) at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:72:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 70 | describe( 'on dismiss button click', () => { 71 | it( 'sends saveOption to the api', () => { > 72 | const wrapper = shallowMount( Component ); | ^ 73 | wrapper.vm.dismiss(); 74 | expect( global.mw.Api.prototype.saveOption ).toHaveBeenCalled(); 75 | expect( global.mw.Api.prototype.saveOption ) at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:72:20) console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 78 | 79 | it( 'saves options to user object', () => { > 80 | const wrapper = shallowMount( Component ); | ^ 81 | wrapper.vm.dismiss(); 82 | expect( global.mw.user.options.set ).toHaveBeenCalled(); 83 | expect( global.mw.user.options.set ) at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:80:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 78 | 79 | it( 'saves options to user object', () => { > 80 | const wrapper = shallowMount( Component ); | ^ 81 | wrapper.vm.dismiss(); 82 | expect( global.mw.user.options.set ).toHaveBeenCalled(); 83 | expect( global.mw.user.options.set ) at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:80:20) console.warn [CdxMessage]: The boolean `allowUserDismiss` prop is required to show the dismiss button. Refer to https://doc.wikimedia.org/codex/latest/components/demos/message.html#props. 86 | 87 | it( 'changes dismissed data', () => { > 88 | const wrapper = shallowMount( Component ); | ^ 89 | wrapper.vm.dismiss(); 90 | expect( wrapper.vm.dismissed ).toBeTruthy(); 91 | } ); at validator (node_modules/@wikimedia/codex/dist/codex.cjs:9:89194) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4367:21) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:88:20) console.warn [Vue warn]: Invalid prop: custom validator check failed for prop "dismissButtonLabel". at <CdxMessage dismiss-button-label="mediasearch-user-notice-dismiss" class="sdms-user-notice__message" onUserDismissed=fn<bound dismiss> > at <Transition key=0 name="sdms-fade-out" > at <UserNotice ref="VTU_COMPONENT" > at <VTUROOT> 86 | 87 | it( 'changes dismissed data', () => { > 88 | const wrapper = shallowMount( Component ); | ^ 89 | wrapper.vm.dismiss(); 90 | expect( wrapper.vm.dismissed ).toBeTruthy(); 91 | } ); at warn$1 (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:53:13) at validateProp (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4368:5) at validateProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4335:5) at initProps (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4036:5) at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7807:3) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5159:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at mountChildren (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4886:7) at mountElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4809:7) at processElement (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4774:7) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4642:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at ReactiveEffect.componentUpdateFn [as fn] (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5269:11) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:229:19) at setupRenderEffect (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5397:5) at mountComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5172:7) at processComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5125:9) at patch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4654:11) at 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/UserNotice.test.js:88:20) PASS tests/jest/store/store.test.js PASS tests/jest/components/DidYouMean.test.js PASS tests/jest/mixins/observer.test.js PASS tests/jest/components/results/audioResult.test.js PASS tests/jest/components/results/ImageResult.test.js PASS tests/jest/components/base/player.test.js PASS tests/jest/store/getters.test.js PASS tests/jest/components/base/image.test.js PASS tests/jest/components/Spinner.test.js PASS tests/jest/components/SearchWarnings.test.js PASS tests/jest/components/EndOfResults.test.js Test Suites: 31 passed, 31 total Tests: 6 todo, 463 passed, 469 total Snapshots: 0 total Time: 9.165 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.48 | 86.01 | 89.06 | 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.55 | 79.04 | 82.38 | 88.48 | 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 | 79.45 | 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 | 75 | 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 --- build: Updating npm dependencies * eslint-config-wikimedia: 0.30.0 → 0.31.0 * @wikimedia/codex: 2.2.0 → 2.2.1 * @wikimedia/codex-icons: 2.2.0 → 2.2.1 $ git add . --- stdout --- --- end --- $ git commit -F /tmp/tmp1ockem4c --- stdout --- [master cf4588f] build: Updating npm dependencies 2 files changed, 705 insertions(+), 23 deletions(-) --- end --- $ git format-patch HEAD~1 --stdout --- stdout --- From cf4588fbd62fe53009acd1df828d4f6014281e19 Mon Sep 17 00:00:00 2001 From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org> Date: Wed, 30 Jul 2025 03:27:19 +0000 Subject: [PATCH] build: Updating npm dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * eslint-config-wikimedia: 0.30.0 → 0.31.0 * @wikimedia/codex: 2.2.0 → 2.2.1 * @wikimedia/codex-icons: 2.2.0 → 2.2.1 Change-Id: I8973fb8500d40dfe7d49adfd21ab9225397f1365 --- package-lock.json | 722 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 6 +- 2 files changed, 705 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index 958b5ae..8f19127 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,10 +12,10 @@ "@vue/compiler-sfc": "3.5.13", "@vue/test-utils": "2.4.6", "@vue/vue3-jest": "29.2.6", - "@wikimedia/codex": "2.2.0", - "@wikimedia/codex-icons": "2.2.0", + "@wikimedia/codex": "2.2.1", + "@wikimedia/codex-icons": "2.2.1", "babel-core": "^6.26.3", - "eslint-config-wikimedia": "0.30.0", + "eslint-config-wikimedia": "0.31.0", "eslint-plugin-jest": "27.2.1", "grunt": "1.6.1", "grunt-banana-checker": "0.13.0", @@ -2933,6 +2933,237 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@stylistic/eslint-plugin": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-3.1.0.tgz", + "integrity": "sha512-pA6VOrOqk0+S8toJYhQGv2MWpQQR0QpeUo9AhNkC49Y26nxBQ/nH1rta9bUU1rPw2fJ1zZEMV5oCX5AazT7J2g==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^8.13.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "estraverse": "^5.3.0", + "picomatch": "^4.0.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": ">=8.40.0" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/project-service": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz", + "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==", + "dev": true, + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.38.0", + "@typescript-eslint/types": "^8.38.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/@stylistic/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.38.0.tgz", + "integrity": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz", + "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==", + "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/@stylistic/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.38.0.tgz", + "integrity": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz", + "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/project-service": "8.38.0", + "@typescript-eslint/tsconfig-utils": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.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/@stylistic/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.38.0.tgz", + "integrity": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.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/@stylistic/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.38.0.tgz", + "integrity": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@stylistic/eslint-plugin/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/@stylistic/eslint-plugin/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@stylistic/stylelint-config": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@stylistic/stylelint-config/-/stylelint-config-2.0.0.tgz", @@ -3184,6 +3415,85 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/project-service": { "version": "8.33.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.33.0.tgz", @@ -3248,6 +3558,35 @@ "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/types": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", @@ -3535,13 +3874,13 @@ "dev": true }, "node_modules/@wikimedia/codex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.2.0.tgz", - "integrity": "sha512-r9PEWC45ouWYviufzm7NqVFDPQExzdr8jEhCY3gJq0ZCqN0G2mn/LfucbtaAcpMWgWy5x7VLqR09hGb00Dh8bA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-2.2.1.tgz", + "integrity": "sha512-EJggU6gsvUZApNyASm8x/aYnqZqeagj0NhpiQIJg4pNBx16OconVSLPoGIYiQ/KIsUz8K7Osxt6IFw1rESMS4w==", "dev": true, "dependencies": { "@floating-ui/vue": "1.0.6", - "@wikimedia/codex-icons": "2.2.0" + "@wikimedia/codex-icons": "2.2.1" }, "engines": { "node": ">=20", @@ -3552,9 +3891,9 @@ } }, "node_modules/@wikimedia/codex-icons": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.2.0.tgz", - "integrity": "sha512-VTDS3vZULIGN/ESVyJTl1FY5he/MtU+cEa6j+dJXEVKRP8ECrj/rBW9/BwloMm/I9jyLTHT0QWLBkHBZESN9uA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-2.2.1.tgz", + "integrity": "sha512-PX3QqC0bfXGz2sM9hOoRYIsOKnaDuXdpe09VuT52ngQQg2xlmwrT/icx0lF8fK0Is6/rENx7mwIHbjEDRMuMwA==", "dev": true, "engines": { "node": ">=20", @@ -3575,9 +3914,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -5530,11 +5869,14 @@ } }, "node_modules/eslint-config-wikimedia": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.30.0.tgz", - "integrity": "sha512-i8ESzSoo0x3Jur/0JhAgCVPxbV51zfdI3MN3MVQPnjiFdmo21CNKmiBBmw8JnJ3fx/d5zHDrBa+yDjxSLpnDlA==", + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.31.0.tgz", + "integrity": "sha512-Z/t/zGPdxs/ehxb0EM6THNWAzueT7GtuqzjUvmBpkxcTKzZPJEXWnnpswdj/hgv8Ce8PIeDp0zwQxR4e3c9CIw==", "dev": true, "dependencies": { + "@stylistic/eslint-plugin": "^3.1.0", + "@typescript-eslint/eslint-plugin": "8.35.1", + "@typescript-eslint/parser": "8.35.1", "browserslist-config-wikimedia": "^0.7.0", "eslint": "^8.57.0", "eslint-plugin-compat": "^4.2.0", @@ -5554,7 +5896,330 @@ "eslint-plugin-yml": "^1.14.0" }, "engines": { - "node": ">=18 <23" + "node": ">=18 <25" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.35.1.tgz", + "integrity": "sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.35.1", + "@typescript-eslint/type-utils": "8.35.1", + "@typescript-eslint/utils": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.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-eslint/parser": "^8.35.1", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/project-service": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz", + "integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.35.1", + "@typescript-eslint/types": "^8.35.1", + "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-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz", + "integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz", + "integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==", + "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-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.35.1.tgz", + "integrity": "sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "8.35.1", + "@typescript-eslint/utils": "8.35.1", + "debug": "^4.3.4", + "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": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz", + "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==", + "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-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz", + "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==", + "dev": true, + "dependencies": { + "@typescript-eslint/project-service": "8.35.1", + "@typescript-eslint/tsconfig-utils": "8.35.1", + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1", + "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-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.35.1.tgz", + "integrity": "sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.35.1", + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/typescript-estree": "8.35.1" + }, + "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-config-wikimedia/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz", + "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.35.1", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.35.1.tgz", + "integrity": "sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.35.1", + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/typescript-estree": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1", + "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": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/project-service": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz", + "integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.35.1", + "@typescript-eslint/types": "^8.35.1", + "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-config-wikimedia/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz", + "integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz", + "integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==", + "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-config-wikimedia/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz", + "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==", + "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-config-wikimedia/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz", + "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==", + "dev": true, + "dependencies": { + "@typescript-eslint/project-service": "8.35.1", + "@typescript-eslint/tsconfig-utils": "8.35.1", + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1", + "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-config-wikimedia/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz", + "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.35.1", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/eslint-config-wikimedia/node_modules/@typescript-eslint/scope-manager": { @@ -5690,9 +6355,9 @@ } }, "node_modules/eslint-config-wikimedia/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "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" @@ -5701,6 +6366,15 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-config-wikimedia/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/eslint-config-wikimedia/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -10668,6 +11342,14 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", diff --git a/package.json b/package.json index cdc8157..ba66d67 100644 --- a/package.json +++ b/package.json @@ -13,10 +13,10 @@ "@vue/compiler-sfc": "3.5.13", "@vue/test-utils": "2.4.6", "@vue/vue3-jest": "29.2.6", - "@wikimedia/codex": "2.2.0", - "@wikimedia/codex-icons": "2.2.0", + "@wikimedia/codex": "2.2.1", + "@wikimedia/codex-icons": "2.2.1", "babel-core": "^6.26.3", - "eslint-config-wikimedia": "0.30.0", + "eslint-config-wikimedia": "0.31.0", "eslint-plugin-jest": "27.2.1", "grunt": "1.6.1", "grunt-banana-checker": "0.13.0", -- 2.39.5 --- end ---