This run took 102 seconds.
$ date --- stdout --- Wed Mar 15 01:22:40 UTC 2023 --- end --- $ git clone file:///srv/git/mediawiki-extensions-QuickSurveys.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 --- 8bad11733e28e27409c530f205b18d887b4490b1 refs/heads/master --- end --- $ /usr/bin/npm audit --json --legacy-peer-deps --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "@wikimedia/mw-node-qunit": { "name": "@wikimedia/mw-node-qunit", "severity": "moderate", "isDirect": true, "via": [ "jsdom" ], "effects": [], "range": "<=6.2.1", "nodes": [ "node_modules/@wikimedia/mw-node-qunit" ], "fixAvailable": { "name": "@wikimedia/mw-node-qunit", "version": "6.4.1", "isSemVerMajor": false } }, "babel-core": { "name": "babel-core", "severity": "high", "isDirect": true, "via": [ "babel-register", "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-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 } }, "decode-uri-component": { "name": "decode-uri-component", "severity": "low", "isDirect": false, "via": [ { "source": 1088828, "name": "decode-uri-component", "dependency": "decode-uri-component", "title": "decode-uri-component vulnerable to Denial of Service (DoS)", "url": "https://github.com/advisories/GHSA-w573-4hg7-7wgq", "severity": "low", "cwe": [ "CWE-20" ], "cvss": { "score": 0, "vectorString": null }, "range": "<0.2.1" } ], "effects": [], "range": "<0.2.1", "nodes": [ "node_modules/decode-uri-component" ], "fixAvailable": true }, "jsdom": { "name": "jsdom", "severity": "moderate", "isDirect": false, "via": [ { "source": 1089185, "name": "jsdom", "dependency": "jsdom", "title": "Insufficient Granularity of Access Control in JSDom", "url": "https://github.com/advisories/GHSA-f4c9-cqv8-9v98", "severity": "moderate", "cwe": [ "CWE-1220" ], "cvss": { "score": 5.6, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L" }, "range": "<=16.4.0" } ], "effects": [ "@wikimedia/mw-node-qunit" ], "range": "<=16.4.0", "nodes": [ "node_modules/jsdom" ], "fixAvailable": { "name": "@wikimedia/mw-node-qunit", "version": "6.4.1", "isSemVerMajor": false } }, "json5": { "name": "json5", "severity": "high", "isDirect": false, "via": [ { "source": 1091147, "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" }, { "source": 1091148, "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": ">=2.0.0 <2.2.2" } ], "effects": [ "babel-core" ], "range": "<1.0.2 || >=2.0.0 <2.2.2", "nodes": [ "node_modules/babel-core/node_modules/json5", "node_modules/json5" ], "fixAvailable": { "name": "babel-core", "version": "4.7.16", "isSemVerMajor": true } }, "minimist": { "name": "minimist", "severity": "critical", "isDirect": false, "via": [ { "source": 1091173, "name": "minimist", "dependency": "minimist", "title": "Prototype Pollution in minimist", "url": "https://github.com/advisories/GHSA-xvch-5gv4-984h", "severity": "critical", "cwe": [ "CWE-1321" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": ">=1.0.0 <1.2.6" } ], "effects": [], "range": "1.0.0 - 1.2.5", "nodes": [ "node_modules/minimist" ], "fixAvailable": true } }, "metadata": { "vulnerabilities": { "info": 0, "low": 1, "moderate": 2, "high": 3, "critical": 1, "total": 7 }, "dependencies": { "prod": 1, "dev": 1241, "optional": 3, "peer": 0, "peerOptional": 0, "total": 1241 } } } --- end --- $ /usr/bin/composer install --- stderr --- No lock file found. Updating dependencies instead of installing from lock file. Use composer update over composer install if you do not have a lock file. Loading composer repositories with package information Info from https://repo.packagist.org: [37;44m#StandWith[30;43mUkraine[0m Updating dependencies Lock file operations: 34 installs, 0 updates, 0 removals - Locking composer/pcre (1.0.1) - Locking composer/semver (3.3.2) - Locking composer/spdx-licenses (1.5.7) - Locking composer/xdebug-handler (2.0.5) - Locking felixfbecker/advanced-json-rpc (v3.2.1) - Locking mediawiki/mediawiki-codesniffer (v38.0.0) - Locking mediawiki/mediawiki-phan-config (0.11.1) - Locking mediawiki/minus-x (1.1.1) - Locking mediawiki/phan-taint-check-plugin (3.3.2) - Locking microsoft/tolerant-php-parser (v0.1.2) - Locking netresearch/jsonmapper (v4.1.0) - Locking phan/phan (5.2.0) - Locking php-parallel-lint/php-console-color (v0.3) - Locking php-parallel-lint/php-console-highlighter (v0.5) - Locking php-parallel-lint/php-parallel-lint (v1.3.1) - Locking phpdocumentor/reflection-common (2.2.0) - Locking phpdocumentor/reflection-docblock (5.3.0) - Locking phpdocumentor/type-resolver (1.6.2) - Locking psr/container (1.1.2) - Locking psr/log (1.1.4) - Locking sabre/event (5.1.4) - Locking squizlabs/php_codesniffer (3.6.1) - Locking symfony/console (v5.4.21) - Locking symfony/deprecation-contracts (v2.5.2) - Locking symfony/polyfill-ctype (v1.27.0) - Locking symfony/polyfill-intl-grapheme (v1.27.0) - Locking symfony/polyfill-intl-normalizer (v1.27.0) - Locking symfony/polyfill-mbstring (v1.27.0) - Locking symfony/polyfill-php73 (v1.27.0) - Locking symfony/polyfill-php80 (v1.27.0) - Locking symfony/service-contracts (v2.5.2) - Locking symfony/string (v5.4.21) - 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: 34 installs, 0 updates, 0 removals 0 [>---------------------------] 0 [->--------------------------] 0 [--->------------------------] - Installing composer/pcre (1.0.1): Extracting archive - Installing squizlabs/php_codesniffer (3.6.1): Extracting archive - Installing symfony/polyfill-mbstring (v1.27.0): Extracting archive - Installing composer/spdx-licenses (1.5.7): Extracting archive - Installing composer/semver (3.3.2): Extracting archive - Installing mediawiki/mediawiki-codesniffer (v38.0.0): Extracting archive - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive - Installing symfony/polyfill-php80 (v1.27.0): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.27.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.27.0): Extracting archive - Installing symfony/polyfill-ctype (v1.27.0): Extracting archive - Installing symfony/string (v5.4.21): Extracting archive - Installing symfony/deprecation-contracts (v2.5.2): Extracting archive - Installing psr/container (1.1.2): Extracting archive - Installing symfony/service-contracts (v2.5.2): Extracting archive - Installing symfony/polyfill-php73 (v1.27.0): Extracting archive - Installing symfony/console (v5.4.21): Extracting archive - Installing sabre/event (5.1.4): Extracting archive - Installing netresearch/jsonmapper (v4.1.0): Extracting archive - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive - Installing webmozart/assert (1.11.0): Extracting archive - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive - Installing phpdocumentor/type-resolver (1.6.2): Extracting archive - Installing phpdocumentor/reflection-docblock (5.3.0): Extracting archive - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive - Installing psr/log (1.1.4): Extracting archive - Installing composer/xdebug-handler (2.0.5): Extracting archive - Installing phan/phan (5.2.0): Extracting archive - Installing mediawiki/phan-taint-check-plugin (3.3.2): Extracting archive - Installing mediawiki/mediawiki-phan-config (0.11.1): Extracting archive - Installing mediawiki/minus-x (1.1.1): Extracting archive - Installing php-parallel-lint/php-console-color (v0.3): Extracting archive - Installing php-parallel-lint/php-console-highlighter (v0.5): Extracting archive - Installing php-parallel-lint/php-parallel-lint (v1.3.1): Extracting archive 0/25 [>---------------------------] 0% 10/25 [===========>----------------] 40% 20/25 [======================>-----] 80% 25/25 [============================] 100%4 package suggestions were added by new dependencies, use `composer suggest` to see details. Generating autoload files 14 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- --- end --- Upgrading n:eslint-config-wikimedia from 0.22.1 -> 0.24.0 Upgrading n:stylelint-config-wikimedia from 0.13.1 -> 0.14.0 Upgrading n:vue from 3.2.33 -> 3.2.37 Upgrading n:@wikimedia/codex from 0.1.0-alpha.8 -> 0.6.2 $ /usr/bin/npm install --- stderr --- npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142 npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead npm WARN deprecated sane@4.1.0: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added npm WARN deprecated samsam@1.3.0: This package has been deprecated in favour of @sinonjs/samsam npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated 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. npm WARN deprecated core-js@3.21.1: 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 1238 packages, and audited 1239 packages in 12s 90 packages are looking for funding run `npm fund` for details 7 vulnerabilities (1 low, 2 moderate, 3 high, 1 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 --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- $ ./node_modules/.bin/eslint . --fix --- stdout --- /src/repo/resources/ext.quicksurveys.lib/vue/QuickSurvey.vue 315:16 warning The "logEvent" event has been triggered but not declared on `emits` option vue/require-explicit-emits 319:17 warning The "dismiss" event has been triggered but not declared on `emits` option vue/require-explicit-emits 327:16 warning The "dismiss" event has been triggered but not declared on `emits` option vue/require-explicit-emits 328:16 warning The "destroy" event has been triggered but not declared on `emits` option vue/require-explicit-emits ✖ 4 problems (0 errors, 4 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":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/.stylelintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/composer.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/extension.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/alt.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/ar.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/ast.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/ban.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/be.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/bg.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/bn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/ca.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/ce.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/da.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/de.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/diq.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/es.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/et.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/eu.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/fa.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/fi.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/fr.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/gl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/gom-latn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/he.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/hi.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/hil.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/hr.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/hu.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/hy.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/hyw.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/ia.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/id.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/inh.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/io.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/is.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/it.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/ja.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/kiu.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/ko.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/ksh.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/ku-latn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/lb.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/lv.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/mk.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/mn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/mrh.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/mwl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/my.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/nb.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/nl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/olo.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/pam.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/pl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/pt-br.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/pt.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/qqq.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/ro.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/roa-tara.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/ru.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/scn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/sco.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/sd.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/sdh.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/se.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/shn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/skr-arab.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/sl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/smn.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/sms.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/sr-ec.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/sr-el.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/su.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/sv.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/sw.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/szy.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/tr.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/uk.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/ur.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/vec.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/vi.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/xmf.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/yi.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/zgh.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/zh-hans.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/i18n/zh-hant.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/jest.config.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/jest.setup.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/package-lock.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/package.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/resources/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]}]},{"filePath":"/src/repo/resources/ext.quicksurveys.init/init.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]}]},{"filePath":"/src/repo/resources/ext.quicksurveys.lib/init.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]}]},{"filePath":"/src/repo/resources/ext.quicksurveys.lib/lib.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":178,"column":14,"nodeType":"CallExpression","endLine":178,"endColumn":26,"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":422,"column":18,"nodeType":"CallExpression","endLine":422,"endColumn":37,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]}]},{"filePath":"/src/repo/resources/ext.quicksurveys.lib/logEvent.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]}]},{"filePath":"/src/repo/resources/ext.quicksurveys.lib/vue/QuickSurvey.vue","messages":[{"ruleId":"vue/require-explicit-emits","severity":1,"message":"The \"logEvent\" event has been triggered but not declared on `emits` option.","line":315,"column":16,"nodeType":"Literal","messageId":"missing","endLine":315,"endColumn":26,"suggestions":[{"messageId":"addArrayEmitsOption","data":{"name":"logEvent","emitsKind":"`emits` option"},"fix":{"range":[3996,3996],"text":"\nemits: ['logEvent'],"},"desc":"Add the `emits` option with array syntax and define \"logEvent\" event."},{"messageId":"addObjectEmitsOption","data":{"name":"logEvent","emitsKind":"`emits` option"},"fix":{"range":[3996,3996],"text":"\nemits: {'logEvent': null},"},"desc":"Add the `emits` option with object syntax and define \"logEvent\" event."}]},{"ruleId":"vue/require-explicit-emits","severity":1,"message":"The \"dismiss\" event has been triggered but not declared on `emits` option.","line":319,"column":17,"nodeType":"Literal","messageId":"missing","endLine":319,"endColumn":26,"suggestions":[{"messageId":"addArrayEmitsOption","data":{"name":"dismiss","emitsKind":"`emits` option"},"fix":{"range":[3996,3996],"text":"\nemits: ['dismiss'],"},"desc":"Add the `emits` option with array syntax and define \"dismiss\" event."},{"messageId":"addObjectEmitsOption","data":{"name":"dismiss","emitsKind":"`emits` option"},"fix":{"range":[3996,3996],"text":"\nemits: {'dismiss': null},"},"desc":"Add the `emits` option with object syntax and define \"dismiss\" event."}]},{"ruleId":"vue/require-explicit-emits","severity":1,"message":"The \"dismiss\" event has been triggered but not declared on `emits` option.","line":327,"column":16,"nodeType":"Literal","messageId":"missing","endLine":327,"endColumn":25,"suggestions":[{"messageId":"addArrayEmitsOption","data":{"name":"dismiss","emitsKind":"`emits` option"},"fix":{"range":[3996,3996],"text":"\nemits: ['dismiss'],"},"desc":"Add the `emits` option with array syntax and define \"dismiss\" event."},{"messageId":"addObjectEmitsOption","data":{"name":"dismiss","emitsKind":"`emits` option"},"fix":{"range":[3996,3996],"text":"\nemits: {'dismiss': null},"},"desc":"Add the `emits` option with object syntax and define \"dismiss\" event."}]},{"ruleId":"vue/require-explicit-emits","severity":1,"message":"The \"destroy\" event has been triggered but not declared on `emits` option.","line":328,"column":16,"nodeType":"Literal","messageId":"missing","endLine":328,"endColumn":25,"suggestions":[{"messageId":"addArrayEmitsOption","data":{"name":"destroy","emitsKind":"`emits` option"},"fix":{"range":[3996,3996],"text":"\nemits: ['destroy'],"},"desc":"Add the `emits` option with array syntax and define \"destroy\" event."},{"messageId":"addObjectEmitsOption","data":{"name":"destroy","emitsKind":"`emits` option"},"fix":{"range":[3996,3996],"text":"\nemits: {'destroy': null},"},"desc":"Add the `emits` option with object syntax and define \"destroy\" event."}]}],"suppressedMessages":[{"ruleId":"no-alert","severity":2,"message":"Unexpected alert.","line":299,"column":5,"nodeType":"CallExpression","messageId":"unexpected","endLine":299,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"<template>\n\t<div :class=\"rootClasses\" :dir=\"direction\">\n\t\t<div class=\"message survey-content\">\n\t\t\t<div class=\"survey-header\">\n\t\t\t\t<template v-if=\"completed\">\n\t\t\t\t\t<strong>{{ thankYouMessage }}</strong>\n\t\t\t\t</template>\n\t\t\t\t<template v-else>\n\t\t\t\t\t<strong>{{ question }}</strong>\n\t\t\t\t</template>\n\t\t\t\t<div class=\"survey-close-button\">\n\t\t\t\t\t<cdx-button\n\t\t\t\t\t\ttype=\"quiet\"\n\t\t\t\t\t\t@click=\"dismissAndDestroy\">\n\t\t\t\t\t\t<cdx-icon :icon=\"closeIcon\"></cdx-icon>\n\t\t\t\t\t</cdx-button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<template v-if=\"!completed\">\n\t\t\t\t<p v-if=\"description\" class=\"survey-description\">\n\t\t\t\t\t{{ description }}\n\t\t\t\t</p>\n\t\t\t\t<div class=\"survey-button-container\">\n\t\t\t\t\t<template v-if=\"requiresSingularAnswer\">\n\t\t\t\t\t\t<cdx-button\n\t\t\t\t\t\t\tv-for=\"( btn, i ) in buttons\"\n\t\t\t\t\t\t\t:key=\"i\"\n\t\t\t\t\t\t\t:action=\"btn.action\"\n\t\t\t\t\t\t\t:type=\"btn.type\"\n\t\t\t\t\t\t\tclass=\"survey-button\"\n\t\t\t\t\t\t\t@click=\"clickButton( btn.answer, btn.href )\">\n\t\t\t\t\t\t\t{{ btn.label }}\n\t\t\t\t\t\t</cdx-button>\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-for=\"( btn, i ) in buttons\"\n\t\t\t\t\t\t\t:key=\"i\">\n\t\t\t\t\t\t\t<cdx-checkbox\n\t\t\t\t\t\t\t\tv-model=\"checkedAnswers\"\n\t\t\t\t\t\t\t\t:input-value=\"btn.label\">\n\t\t\t\t\t\t\t\t{{ btn.label }}\n\t\t\t\t\t\t\t</cdx-checkbox>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t</div>\n\t\t\t\t<template v-if=\"mustBeSubmitted\">\n\t\t\t\t\t<cdx-text-input\n\t\t\t\t\t\tv-if=\"requiresSingularAnswer\"\n\t\t\t\t\t\tv-model=\"otherAnswer\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t:placeholder=\"freeformTextLabel\"\n\t\t\t\t\t\t@input=\"resetSelectedButton\"></cdx-text-input>\n\t\t\t\t\t<cdx-button\n\t\t\t\t\t\ttype=\"normal\"\n\t\t\t\t\t\taction=\"progressive\"\n\t\t\t\t\t\t@click=\"submitAnswer\">\n\t\t\t\t\t\t{{ submitButtonLabel }}\n\t\t\t\t\t</cdx-button>\n\t\t\t\t</template>\n\t\t\t</template>\n\t\t\t<template v-if=\"completed && additionalInfo\">\n\t\t\t\t<!-- eslint-disable vue/no-v-html -->\n\t\t\t\t<div class=\"survey-footer\" v-html=\"additionalInfo\"></div>\n\t\t\t</template>\n\t\t\t<template v-else>\n\t\t\t\t<!-- eslint-disable vue/no-v-html -->\n\t\t\t\t<div class=\"survey-footer\" v-html=\"footer\"></div>\n\t\t\t</template>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nconst codex = require( '@wikimedia/codex' ),\n\tutils = require( './utils.js' ),\n\tVue = require( 'vue' ),\n\ticons = require( './icons.json' ),\n\tQuickSurveyLogger = require( './QuickSurveyLogger.js' );\n\n// @vue/component\nmodule.exports = exports = Vue.defineComponent( {\n\tname: 'QuickSurvey',\n\tcomponents: {\n\t\tCdxButton: codex.CdxButton,\n\t\tCdxCheckbox: codex.CdxCheckbox,\n\t\tCdxIcon: codex.CdxIcon,\n\t\tCdxTextInput: codex.CdxTextInput\n\t},\n\tprops: {\n\t\tshuffleAnswersDisplay: {\n\t\t\ttype: Boolean\n\t\t},\n\t\tlayout: {\n\t\t\ttype: String,\n\t\t\tdefault: 'default'\n\t\t},\n\t\tfreeformTextLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\tnoAnswerErrorMessage: {\n\t\t\ttype: String,\n\t\t\tdefault: 'error'\n\t\t},\n\t\tisMobileLayout: {\n\t\t\ttype: Boolean\n\t\t},\n\t\tpageviewToken: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\t\tsurveySessionToken: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\t\tsubmitButtonLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: 'submit'\n\t\t},\n\t\tnoButtonLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: 'no'\n\t\t},\n\t\tyesButtonLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: 'yes'\n\t\t},\n\t\tanswers: {\n\t\t\t// Note when declaring a survey, a survey's answers is defined by the message key.\n\t\t\t// Here answers are required to be an array of Answer objects.\n\t\t\ttype: Array, /* (Answers[]) */\n\t\t\tdefault: function () {\n\t\t\t\treturn [\n\t\t\t\t\t/**\n\t\t\t\t\t * @typedef Answer\n\t\t\t\t\t * @property {string} key used in response to survey to identify answer\n\t\t\t\t\t * regardless of language\n\t\t\t\t\t * @property {string} label for the answer translated into the users\n\t\t\t\t\t * language\n\t\t\t\t\t */\n\t\t\t\t];\n\t\t\t}\n\t\t},\n\t\tquestion: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\t\tdirection: {\n\t\t\ttype: String,\n\t\t\tdefault: 'auto'\n\t\t},\n\t\texternalLink: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\tadditionalInfo: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\tfooter: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\tthankYouMessage: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\tcloseIcon: {\n\t\t\ttype: String,\n\t\t\tdefault: icons.cdxIconClose\n\t\t}\n\t},\n\tdata: function () {\n\t\treturn {\n\t\t\tcheckedAnswers: [],\n\t\t\tshuffledAnswers: false,\n\t\t\totherAnswer: '',\n\t\t\tselectedAnswer: '',\n\t\t\tcompleted: false\n\t\t};\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\trequiresSingularAnswer: function () {\n\t\t\treturn this.layout !== 'multiple-answer';\n\t\t},\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tmustBeSubmitted: function () {\n\t\t\treturn this.freeformTextLabel || this.layout === 'multiple-answer';\n\t\t},\n\t\t/**\n\t\t * @return {Array}\n\t\t */\n\t\trootClasses: function () {\n\t\t\treturn [\n\t\t\t\t// default classes that all surveys should have\n\t\t\t\t'ext-quick-survey-panel panel panel-inline visible',\n\t\t\t\t'ext-quick-survey-' + this.layout\n\t\t\t];\n\t\t},\n\t\t/**\n\t\t * @return {Array} of props for rendering buttons\n\t\t */\n\t\tbuttons: function () {\n\t\t\tconst answers = this.externalLink ? this.externalSurveyButtons() : this.answers,\n\t\t\t\t// Per Vue.js docs safe for this to be computed:\n\t\t\t\t// \"a computed property will only re-evaluate\n\t\t\t\t// when some of its reactive dependencies have changed.\"\n\t\t\t\tanswersComputed = this.shuffleAnswersDisplay && !this.shuffledAnswers ?\n\t\t\t\t\tutils.shuffleAnswers( answers ) :\n\t\t\t\t\tanswers;\n\n\t\t\t// T295681: Only shuffle once to avoid shuffling when a user clicks a button\n\t\t\tthis.markAnswersShuffled();\n\n\t\t\treturn answersComputed.map( function ( answer ) {\n\t\t\t\tconst isSelected = answer.key === this.selectedAnswer;\n\t\t\t\treturn {\n\t\t\t\t\tlabel: answer.label,\n\t\t\t\t\ttype: isSelected ? 'primary' : 'normal',\n\t\t\t\t\thref: answer.href,\n\t\t\t\t\taction: answer.action || ( isSelected ? 'progressive' : 'default' ),\n\t\t\t\t\tanswer: answer.key\n\t\t\t\t};\n\t\t\t}.bind( this ) );\n\t\t}\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Get buttons for an external survey.\n\t\t *\n\t\t * @return {Array} of props for rendering buttons\n\t\t */\n\t\texternalSurveyButtons: function () {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tlabel: this.yesButtonLabel,\n\t\t\t\t\taction: 'progressive',\n\t\t\t\t\thref: this.externalLink,\n\t\t\t\t\tkey: 'ext-quicksurveys-external-survey-yes-button'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: this.noButtonLabel,\n\t\t\t\t\tkey: 'ext-quicksurveys-external-survey-no-button'\n\t\t\t\t}\n\t\t\t];\n\t\t},\n\t\t/**\n\t\t * Marks answers as shuffled.\n\t\t */\n\t\tmarkAnswersShuffled: function () {\n\t\t\tthis.shuffledAnswers = true;\n\t\t},\n\t\t/**\n\t\t * Resets the selected answer.\n\t\t */\n\t\tresetSelectedButton: function () {\n\t\t\tthis.selectedAnswer = '';\n\t\t},\n\t\t/**\n\t\t * @param {string} answer\n\t\t * @param {string|null} href\n\t\t */\n\t\tclickButton: function ( answer, href ) {\n\t\t\tif ( href ) {\n\t\t\t\twindow.open( href );\n\t\t\t}\n\n\t\t\tif ( this.freeformTextLabel ) {\n\t\t\t\tthis.selectedAnswer = answer;\n\t\t\t\tthis.otherAnswer = '';\n\t\t\t} else {\n\t\t\t\tthis.endSurvey( answer );\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Explicitly submits the currently selected answer.\n\t\t */\n\t\tsubmitAnswer: function () {\n\t\t\tconst answer = ( this.checkedAnswers.join( ',' ) ||\n\t\t\t\tthis.otherAnswer || this.selectedAnswer || '' ).trim();\n\t\t\tif ( answer ) {\n\t\t\t\tthis.endSurvey( answer );\n\t\t\t} else {\n\t\t\t\t// eslint-disable-next-line no-alert\n\t\t\t\talert( this.noAnswerErrorMessage );\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Logs the response of a survey and shows the end panel.\n\t\t *\n\t\t * @param {string} answer\n\t\t */\n\t\tendSurvey: function ( answer ) {\n\t\t\tconst data = QuickSurveyLogger.logResponseData(\n\t\t\t\tthis.name,\n\t\t\t\tanswer,\n\t\t\t\tthis.surveySessionToken,\n\t\t\t\tthis.pageviewToken,\n\t\t\t\t!this.isMobileLayout\n\t\t\t);\n\t\t\tthis.$emit( 'logEvent', 'QuickSurveysResponses', data );\n\t\t\tif ( answer === 'ext-quicksurveys-external-survey-no-button' ) {\n\t\t\t\tthis.dismissAndDestroy();\n\t\t\t} else {\n\t\t\t\tthis.$emit( 'dismiss' );\n\t\t\t\tthis.completed = true;\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Dismisses the current survey and removes it from the page\n\t\t */\n\t\tdismissAndDestroy: function () {\n\t\t\tthis.$emit( 'dismiss' );\n\t\t\tthis.$emit( 'destroy' );\n\t\t}\n\t}\n} );\n</script>\n\n<style lang=\"less\">\n.ext-quick-survey-panel {\n\t@spacing: 16px;\n\t@spacing-inner: 8px;\n\t/* Space to remove from top spacing in the content due to close-button spacing */\n\t@close-button-displacement: 2px;\n\t@close-button-size: 24px;\n\t/* line-height: 20px, with base font-size 14px = */\n\t@line-height: 1.42857143;\n\t/*\n\tWe need to move the header down to align with the button's baseline, because\n\tthe text has a line-height of 20px and the button of 24px.\n\tIn order to keep the margin to align the text dependent on size in case the base font size\n\tis different than 14px per browser settings, we convert those 24px-20px into\n\tem.\n\t*/\n\t@header-align-displacement: 1em * (@close-button-size - (14px * @line-height)) / 14px;\n\n\t.survey-content {\n\t\tpadding: (@spacing - @close-button-displacement) @spacing;\n\t\tline-height: @line-height;\n\n\t\t> :not( :first-child ) {\n\t\t\tmargin: @spacing-inner 0 0;\n\t\t}\n\n\t\t.survey-description {\n\t\t\t/*\n\t\t\tRequest from design to reduce the spacing between the description and\n\t\t\theader due to line-height whitespace already present in the header.\n\t\t\t*/\n\t\t\tmargin-top: 4px;\n\t\t\t/*\n\t\t\tRequest from design to prevent description from flowing beneath close button.\n\t\t\t*/\n\t\t\tmargin-right: @close-button-size;\n\t\t}\n\t}\n\n\t.survey-button-container {\n\t\t> :not( :first-child ) {\n\t\t\tmargin: @spacing-inner 0 0;\n\t\t}\n\n\t\t> .survey-button {\n\t\t\twidth: 100%;\n\t\t\t/* Disable Codex button max-width */\n\t\t\tmax-width: none;\n\t\t}\n\t}\n\n\t.survey-header {\n\t\tdisplay: flex;\n\n\t\tstrong {\n\t\t\tmargin-top: @header-align-displacement;\n\t\t\tflex: 1;\n\t\t}\n\n\t\t.survey-close-button {\n\t\t\tmargin-left: @spacing;\n\t\t\tdisplay: block;\n\t\t\tfloat: right;\n\n\t\t\t.cdx-button {\n\t\t\t\tpadding: 0;\n\t\t\t}\n\n\t\t\t.cdx-button,\n\t\t\t.cdx-icon {\n\t\t\t\tmin-width: @close-button-size;\n\t\t\t\tmin-height: @close-button-size;\n\t\t\t}\n\n\t\t\t.cdx-icon svg {\n\t\t\t\t@close-button-icon-size: 14px;\n\t\t\t\twidth: @close-button-icon-size;\n\t\t\t\theight: @close-button-icon-size;\n\t\t\t}\n\t\t}\n\t}\n\n\t.survey-footer {\n\t\tfont-size: /* 1 = 14px, 13px = */ 0.928571428571em;\n\t\tline-height: /* 1 = 13px, 18px = */ 1.38;\n\t}\n}\n</style>\n","usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]}]},{"filePath":"/src/repo/resources/ext.quicksurveys.lib/vue/QuickSurveyLogger.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]}]},{"filePath":"/src/repo/resources/ext.quicksurveys.lib/vue/icons.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]}]},{"filePath":"/src/repo/resources/ext.quicksurveys.lib/vue/render.js","messages":[],"suppressedMessages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'SurveyDefinition' is undefined.","line":8,"column":null,"nodeType":"Block","endLine":8,"endColumn":null,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":33,"column":51,"nodeType":"CallExpression","endLine":33,"endColumn":76,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":52,"column":7,"nodeType":"CallExpression","endLine":52,"endColumn":42,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":54,"column":23,"nodeType":"CallExpression","endLine":54,"endColumn":91,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":56,"column":14,"nodeType":"CallExpression","endLine":58,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":62,"column":7,"nodeType":"CallExpression","endLine":62,"endColumn":41,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":65,"column":16,"nodeType":"CallExpression","endLine":65,"endColumn":41,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":70,"column":15,"nodeType":"CallExpression","endLine":70,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":76,"column":40,"nodeType":"CallExpression","endLine":76,"endColumn":68,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]}]},{"filePath":"/src/repo/resources/ext.quicksurveys.lib/vue/utils.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/QuickSurvey.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/render.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"no-process-exit","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/ext.quicksurveys.lib/lib.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-new-require","replacedBy":[]}]}] --- end --- $ ./node_modules/.bin/stylelint resources/ext.quicksurveys.lib/styles.less -f json --- stdout --- [{"source":"/src/repo/resources/ext.quicksurveys.lib/styles.less","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":false,"warnings":[]}] --- end --- $ /usr/bin/npm ci --legacy-peer-deps --- stderr --- npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142 npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead npm WARN deprecated sane@4.1.0: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added npm WARN deprecated samsam@1.3.0: This package has been deprecated in favour of @sinonjs/samsam npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated 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. npm WARN deprecated core-js@3.21.1: 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 1238 packages, and audited 1239 packages in 10s 90 packages are looking for funding run `npm fund` for details 7 vulnerabilities (1 low, 2 moderate, 3 high, 1 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/QuickSurvey.test.js ● Console console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey name="survey" yesButtonLabel="yes" noButtonLabel="no" ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey name="survey" yesButtonLabel="yes" noButtonLabel="no" ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey name="survey" question="question" thankYouMessage="thanks!" ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey name="survey" question="question" thankYouMessage="thanks!" ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey name="survey" question="question" thankYouMessage="thanks!" ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey name="survey" thankYouMessage="thanks!" yesButtonLabel="yes" ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey name="survey" thankYouMessage="thanks!" footer="privacy policy instead of additional info" ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey name="survey" thankYouMessage="thanks!" additionalInfo="addtional info instead of privacy policy" ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey layout="single-answer" name="survey" answers= [ { key: 'no', label: 'no' }, { key: 'maybe', label: 'maybe' }, { key: 'yes', label: 'Yes' } ] ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey layout="single-answer" name="survey" answers= [ { key: 'yes', label: 'Yes' }, { key: 'no', label: 'no' }, { key: 'maybe', label: 'maybe' } ] ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey layout="single-answer" name="survey" answers= [ { key: 'yes', label: 'Yes' }, { key: 'maybe', label: 'maybe' }, { key: 'no', label: 'no' } ] ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey layout="single-answer" name="survey" answers= [ { key: 'maybe', label: 'maybe' }, { key: 'yes', label: 'Yes' }, { key: 'no', label: 'no' } ] ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey layout="single-answer" name="survey" answers= [ { key: 'yes', label: 'Yes' }, { key: 'maybe', label: 'maybe' }, { key: 'no', label: 'no' } ] ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey layout="multiple-answer" name="survey-multi" answers= [ { key: 'B', label: 'French' }, { key: 'C', label: 'English' }, { key: 'A', label: 'Chinese' } ] ... > at <VTUROOT> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) PASS tests/jest/render.test.js ● Console console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy> ... > at <App> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy> ... > at <App> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy> ... > at <App> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy> ... > at <App> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) console.warn [Vue warn]: icon-only buttons require one of the following attribute: aria-label or aria-hidden. See documentation on https://doc.wikimedia.org/codex/latest/components/button.html#default-icon-only at <CdxButton type="quiet" onClick=fn<bound dismissAndDestroy> > at <QuickSurvey onLogEvent=fn<mockConstructor> onDismiss=fn onDestroy=fn<onDestroy> ... > at <App> at Object.warn (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40:17) at St (node_modules/@wikimedia/codex/dist/codex.umd.js:1:5665) at At (node_modules/@wikimedia/codex/dist/codex.umd.js:2:686) at ReactiveEffect.fn (node_modules/@wikimedia/codex/dist/codex.umd.js:2:1098) at ReactiveEffect.run (node_modules/@vue/reactivity/dist/reactivity.cjs.js:189:25) at ComputedRefImpl.get value [as value] (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1136:39) at unref (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1044:29) at Object.get (node_modules/@vue/reactivity/dist/reactivity.cjs.js:1047:37) Test Suites: 2 passed, 2 total Tests: 19 passed, 19 total Snapshots: 0 total Time: 3.639 s Ran all test suites. --- stdout --- > test > npm run lint && npm run test:unit > lint > npm -s run lint:js && npm run -s lint:styles && npm -s run lint:i18n /src/repo/resources/ext.quicksurveys.lib/vue/QuickSurvey.vue 315:16 warning The "logEvent" event has been triggered but not declared on `emits` option vue/require-explicit-emits 319:17 warning The "dismiss" event has been triggered but not declared on `emits` option vue/require-explicit-emits 327:16 warning The "dismiss" event has been triggered but not declared on `emits` option vue/require-explicit-emits 328:16 warning The "destroy" event has been triggered but not declared on `emits` option vue/require-explicit-emits ✖ 4 problems (0 errors, 4 warnings) Checked 1 message directory. > test:unit > jest --testRegex tests/jest/*.test.js ----------------------|---------|----------|---------|---------|------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s ----------------------|---------|----------|---------|---------|------------------- All files | 93.75 | 88.67 | 95.65 | 93.75 | QuickSurvey.vue | 100 | 100 | 100 | 100 | QuickSurveyLogger.js | 81.81 | 50 | 100 | 81.81 | 21,41 render.js | 100 | 94.44 | 100 | 100 | 50 utils.js | 78.57 | 50 | 66.66 | 78.57 | 10-11,28 ----------------------|---------|----------|---------|---------|------------------- --- end --- Upgrading c:mediawiki/mediawiki-codesniffer from 38.0.0 -> 41.0.0 Upgrading c:mediawiki/mediawiki-phan-config from 0.11.1 -> 0.12.0 Upgrading c:php-parallel-lint/php-console-highlighter from 0.5.0 -> 1.0.0 Upgrading c:php-parallel-lint/php-parallel-lint from 1.3.1 -> 1.3.2 $ /usr/bin/composer update --- stderr --- Loading composer repositories with package information Info from https://repo.packagist.org: [37;44m#StandWith[30;43mUkraine[0m Updating dependencies Lock file operations: 0 installs, 11 updates, 0 removals - Upgrading composer/pcre (1.0.1 => 3.1.0) - Upgrading composer/xdebug-handler (2.0.5 => 3.0.3) - Upgrading mediawiki/mediawiki-codesniffer (v38.0.0 => v41.0.0) - Upgrading mediawiki/mediawiki-phan-config (0.11.1 => 0.12.0) - Upgrading mediawiki/phan-taint-check-plugin (3.3.2 => 4.0.0) - Downgrading microsoft/tolerant-php-parser (v0.1.2 => v0.1.1) - Upgrading phan/phan (5.2.0 => 5.4.1) - Upgrading php-parallel-lint/php-console-color (v0.3 => v1.0.1) - Upgrading php-parallel-lint/php-console-highlighter (v0.5 => v1.0.0) - Upgrading php-parallel-lint/php-parallel-lint (v1.3.1 => v1.3.2) - Upgrading squizlabs/php_codesniffer (3.6.1 => 3.7.2) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 0 installs, 11 updates, 0 removals 0 [>---------------------------] 0 [->--------------------------] 0 [--->------------------------] - Upgrading composer/pcre (1.0.1 => 3.1.0): Extracting archive - Upgrading squizlabs/php_codesniffer (3.6.1 => 3.7.2): Extracting archive - Upgrading mediawiki/mediawiki-codesniffer (v38.0.0 => v41.0.0): Extracting archive - Downgrading microsoft/tolerant-php-parser (v0.1.2 => v0.1.1): Extracting archive - Upgrading composer/xdebug-handler (2.0.5 => 3.0.3): Extracting archive - Upgrading phan/phan (5.2.0 => 5.4.1): Extracting archive - Upgrading mediawiki/phan-taint-check-plugin (3.3.2 => 4.0.0): Extracting archive - Upgrading mediawiki/mediawiki-phan-config (0.11.1 => 0.12.0): Extracting archive - Upgrading php-parallel-lint/php-console-color (v0.3 => v1.0.1): Extracting archive - Upgrading php-parallel-lint/php-console-highlighter (v0.5 => v1.0.0): Extracting archive - Upgrading php-parallel-lint/php-parallel-lint (v1.3.1 => v1.3.2): Extracting archive 0/3 [>---------------------------] 0% 3/3 [============================] 100%Generating autoload files 14 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- --- end --- set() $ /usr/bin/composer install --- stderr --- Installing dependencies from lock file (including require-dev) Verifying lock file contents can be installed on current platform. Nothing to install, update or remove Generating autoload files 14 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- --- end --- $ /usr/bin/composer test --- stderr --- > parallel-lint . --exclude vendor --exclude node_modules > phpcs -sp --cache > minus-x check . --- stdout --- PHP 7.4.33 | 10 parallel jobs ................ 16/16 (100 %) Checked 16 files in 0.1 seconds No syntax error found ................ 16 / 16 (100%) Time: 112ms; Memory: 28MB MinusX ====== Processing /src/repo... ............................................................. ............................................................. .................................... All good! --- end --- $ /usr/bin/npm audit --json --legacy-peer-deps --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "@wikimedia/mw-node-qunit": { "name": "@wikimedia/mw-node-qunit", "severity": "moderate", "isDirect": true, "via": [ "jsdom" ], "effects": [], "range": "<=6.2.1", "nodes": [ "node_modules/@wikimedia/mw-node-qunit" ], "fixAvailable": { "name": "@wikimedia/mw-node-qunit", "version": "6.4.1", "isSemVerMajor": false } }, "babel-core": { "name": "babel-core", "severity": "high", "isDirect": true, "via": [ "babel-register", "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-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 } }, "decode-uri-component": { "name": "decode-uri-component", "severity": "low", "isDirect": false, "via": [ { "source": 1088828, "name": "decode-uri-component", "dependency": "decode-uri-component", "title": "decode-uri-component vulnerable to Denial of Service (DoS)", "url": "https://github.com/advisories/GHSA-w573-4hg7-7wgq", "severity": "low", "cwe": [ "CWE-20" ], "cvss": { "score": 0, "vectorString": null }, "range": "<0.2.1" } ], "effects": [], "range": "<0.2.1", "nodes": [ "node_modules/decode-uri-component" ], "fixAvailable": true }, "jsdom": { "name": "jsdom", "severity": "moderate", "isDirect": false, "via": [ { "source": 1089185, "name": "jsdom", "dependency": "jsdom", "title": "Insufficient Granularity of Access Control in JSDom", "url": "https://github.com/advisories/GHSA-f4c9-cqv8-9v98", "severity": "moderate", "cwe": [ "CWE-1220" ], "cvss": { "score": 5.6, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L" }, "range": "<=16.4.0" } ], "effects": [ "@wikimedia/mw-node-qunit" ], "range": "<=16.4.0", "nodes": [ "node_modules/jsdom" ], "fixAvailable": { "name": "@wikimedia/mw-node-qunit", "version": "6.4.1", "isSemVerMajor": false } }, "json5": { "name": "json5", "severity": "high", "isDirect": false, "via": [ { "source": 1091147, "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" }, { "source": 1091148, "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": ">=2.0.0 <2.2.2" } ], "effects": [ "babel-core" ], "range": "<1.0.2 || >=2.0.0 <2.2.2", "nodes": [ "node_modules/babel-core/node_modules/json5", "node_modules/json5" ], "fixAvailable": { "name": "babel-core", "version": "4.7.16", "isSemVerMajor": true } }, "minimist": { "name": "minimist", "severity": "critical", "isDirect": false, "via": [ { "source": 1091173, "name": "minimist", "dependency": "minimist", "title": "Prototype Pollution in minimist", "url": "https://github.com/advisories/GHSA-xvch-5gv4-984h", "severity": "critical", "cwe": [ "CWE-1321" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": ">=1.0.0 <1.2.6" } ], "effects": [], "range": "1.0.0 - 1.2.5", "nodes": [ "node_modules/minimist" ], "fixAvailable": true } }, "metadata": { "vulnerabilities": { "info": 0, "low": 1, "moderate": 2, "high": 3, "critical": 1, "total": 7 }, "dependencies": { "prod": 1, "dev": 1239, "optional": 3, "peer": 0, "peerOptional": 0, "total": 1239 } } } --- end --- Attempting to npm audit fix $ /usr/bin/npm audit fix --dry-run --only=dev --json --legacy-peer-deps --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production --- stdout --- { "added": 1, "removed": 0, "changed": 5, "audited": 1240, "funding": 91, "audit": { "auditReportVersion": 2, "vulnerabilities": { "@wikimedia/mw-node-qunit": { "name": "@wikimedia/mw-node-qunit", "severity": "moderate", "isDirect": true, "via": [ "jsdom" ], "effects": [], "range": "<=6.2.1", "nodes": [ "node_modules/@wikimedia/mw-node-qunit" ], "fixAvailable": { "name": "@wikimedia/mw-node-qunit", "version": "6.4.1", "isSemVerMajor": false } }, "babel-core": { "name": "babel-core", "severity": "high", "isDirect": true, "via": [ "babel-register", "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-register": { "name": "babel-register", "severity": "high", "isDirect": false, "via": [ "babel-core" ], "effects": [ "babel-core" ], "range": "*", "nodes": [ "" ], "fixAvailable": { "name": "babel-core", "version": "4.7.16", "isSemVerMajor": true } }, "decode-uri-component": { "name": "decode-uri-component", "severity": "low", "isDirect": false, "via": [ { "source": 1088828, "name": "decode-uri-component", "dependency": "decode-uri-component", "title": "decode-uri-component vulnerable to Denial of Service (DoS)", "url": "https://github.com/advisories/GHSA-w573-4hg7-7wgq", "severity": "low", "cwe": [ "CWE-20" ], "cvss": { "score": 0, "vectorString": null }, "range": "<0.2.1" } ], "effects": [], "range": "<0.2.1", "nodes": [ "" ], "fixAvailable": true }, "jsdom": { "name": "jsdom", "severity": "moderate", "isDirect": false, "via": [ { "source": 1089185, "name": "jsdom", "dependency": "jsdom", "title": "Insufficient Granularity of Access Control in JSDom", "url": "https://github.com/advisories/GHSA-f4c9-cqv8-9v98", "severity": "moderate", "cwe": [ "CWE-1220" ], "cvss": { "score": 5.6, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L" }, "range": "<=16.4.0" } ], "effects": [ "@wikimedia/mw-node-qunit" ], "range": "<=16.4.0", "nodes": [ "node_modules/jsdom" ], "fixAvailable": { "name": "@wikimedia/mw-node-qunit", "version": "6.4.1", "isSemVerMajor": false } }, "json5": { "name": "json5", "severity": "high", "isDirect": false, "via": [ { "source": 1091147, "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" }, { "source": 1091148, "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": ">=2.0.0 <2.2.2" } ], "effects": [ "babel-core" ], "range": "<1.0.2 || >=2.0.0 <2.2.2", "nodes": [ "", "" ], "fixAvailable": { "name": "babel-core", "version": "4.7.16", "isSemVerMajor": true } }, "minimist": { "name": "minimist", "severity": "critical", "isDirect": false, "via": [ { "source": 1091173, "name": "minimist", "dependency": "minimist", "title": "Prototype Pollution in minimist", "url": "https://github.com/advisories/GHSA-xvch-5gv4-984h", "severity": "critical", "cwe": [ "CWE-1321" ], "cvss": { "score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" }, "range": ">=1.0.0 <1.2.6" } ], "effects": [], "range": "1.0.0 - 1.2.5", "nodes": [ "" ], "fixAvailable": true } }, "metadata": { "vulnerabilities": { "info": 0, "low": 1, "moderate": 2, "high": 3, "critical": 1, "total": 7 }, "dependencies": { "prod": 1, "dev": 1239, "optional": 3, "peer": 0, "peerOptional": 0, "total": 1239 } } } } --- end --- {"added": 1, "removed": 0, "changed": 5, "audited": 1240, "funding": 91, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@wikimedia/mw-node-qunit": {"name": "@wikimedia/mw-node-qunit", "severity": "moderate", "isDirect": true, "via": ["jsdom"], "effects": [], "range": "<=6.2.1", "nodes": ["node_modules/@wikimedia/mw-node-qunit"], "fixAvailable": {"name": "@wikimedia/mw-node-qunit", "version": "6.4.1", "isSemVerMajor": false}}, "babel-core": {"name": "babel-core", "severity": "high", "isDirect": true, "via": ["babel-register", "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-register": {"name": "babel-register", "severity": "high", "isDirect": false, "via": ["babel-core"], "effects": ["babel-core"], "range": "*", "nodes": [""], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}, "decode-uri-component": {"name": "decode-uri-component", "severity": "low", "isDirect": false, "via": [{"source": 1088828, "name": "decode-uri-component", "dependency": "decode-uri-component", "title": "decode-uri-component vulnerable to Denial of Service (DoS)", "url": "https://github.com/advisories/GHSA-w573-4hg7-7wgq", "severity": "low", "cwe": ["CWE-20"], "cvss": {"score": 0, "vectorString": null}, "range": "<0.2.1"}], "effects": [], "range": "<0.2.1", "nodes": [""], "fixAvailable": true}, "jsdom": {"name": "jsdom", "severity": "moderate", "isDirect": false, "via": [{"source": 1089185, "name": "jsdom", "dependency": "jsdom", "title": "Insufficient Granularity of Access Control in JSDom", "url": "https://github.com/advisories/GHSA-f4c9-cqv8-9v98", "severity": "moderate", "cwe": ["CWE-1220"], "cvss": {"score": 5.6, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L"}, "range": "<=16.4.0"}], "effects": ["@wikimedia/mw-node-qunit"], "range": "<=16.4.0", "nodes": ["node_modules/jsdom"], "fixAvailable": {"name": "@wikimedia/mw-node-qunit", "version": "6.4.1", "isSemVerMajor": false}}, "json5": {"name": "json5", "severity": "high", "isDirect": false, "via": [{"source": 1091147, "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"}, {"source": 1091148, "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": ">=2.0.0 <2.2.2"}], "effects": ["babel-core"], "range": "<1.0.2 || >=2.0.0 <2.2.2", "nodes": ["", ""], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}, "minimist": {"name": "minimist", "severity": "critical", "isDirect": false, "via": [{"source": 1091173, "name": "minimist", "dependency": "minimist", "title": "Prototype Pollution in minimist", "url": "https://github.com/advisories/GHSA-xvch-5gv4-984h", "severity": "critical", "cwe": ["CWE-1321"], "cvss": {"score": 9.8, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}, "range": ">=1.0.0 <1.2.6"}], "effects": [], "range": "1.0.0 - 1.2.5", "nodes": [""], "fixAvailable": true}}, "metadata": {"vulnerabilities": {"info": 0, "low": 1, "moderate": 2, "high": 3, "critical": 1, "total": 7}, "dependencies": {"prod": 1, "dev": 1239, "optional": 3, "peer": 0, "peerOptional": 0, "total": 1239}}}} {} Upgrading n:@wikimedia/mw-node-qunit from 6.2.1 -> 6.4.1 $ /usr/bin/npm audit fix --only=dev --legacy-peer-deps --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production --- stdout --- added 63 packages, removed 303 packages, changed 50 packages, and audited 999 packages in 8s 93 packages are looking for funding run `npm fund` for details # npm audit report 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 babel-core 5.8.20 - 7.0.0-beta.3 Depends on vulnerable versions of babel-register Depends on vulnerable versions of json5 node_modules/babel-core babel-register * Depends on vulnerable versions of babel-core node_modules/babel-register 3 high severity vulnerabilities To address all issues (including breaking changes), run: npm audit fix --force --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- Verifying that tests still pass $ /usr/bin/npm ci --legacy-peer-deps --- stderr --- npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead 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. npm WARN deprecated core-js@3.21.1: 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 998 packages, and audited 999 packages in 10s 93 packages are looking for funding run `npm fund` for details 3 high severity vulnerabilities To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. --- end --- $ /usr/bin/npm test --- stderr --- FAIL tests/jest/render.test.js ● Test suite failed to run ReferenceError: TextEncoder is not defined 3 | const wikimediaTestingUtils = require( '@wikimedia/mw-node-qunit' ); 4 | > 5 | wikimediaTestingUtils.setUp( false ); | ^ 6 | at Object.<anonymous> (node_modules/whatwg-url/lib/encoding.js:2:21) at Object.<anonymous> (node_modules/whatwg-url/lib/url-state-machine.js:5:34) at Object.<anonymous> (node_modules/whatwg-url/lib/URL-impl.js:2:13) at Object.<anonymous> (node_modules/whatwg-url/lib/URL.js:442:14) at Object.<anonymous> (node_modules/whatwg-url/webidl2js-wrapper.js:3:13) at Object.<anonymous> (node_modules/whatwg-url/index.js:3:34) at Object.<anonymous> (node_modules/jsdom/lib/api.js:7:19) at Object.setUp (node_modules/@wikimedia/mw-node-qunit/src/dom.js:14:18) at Object.setUp (node_modules/@wikimedia/mw-node-qunit/index.js:15:7) at Object.<anonymous> (jest.setup.js:5:23) FAIL tests/jest/QuickSurvey.test.js ● Test suite failed to run ReferenceError: TextEncoder is not defined 3 | const wikimediaTestingUtils = require( '@wikimedia/mw-node-qunit' ); 4 | > 5 | wikimediaTestingUtils.setUp( false ); | ^ 6 | at Object.<anonymous> (node_modules/whatwg-url/lib/encoding.js:2:21) at Object.<anonymous> (node_modules/whatwg-url/lib/url-state-machine.js:5:34) at Object.<anonymous> (node_modules/whatwg-url/lib/URL-impl.js:2:13) at Object.<anonymous> (node_modules/whatwg-url/lib/URL.js:442:14) at Object.<anonymous> (node_modules/whatwg-url/webidl2js-wrapper.js:3:13) at Object.<anonymous> (node_modules/whatwg-url/index.js:3:34) at Object.<anonymous> (node_modules/jsdom/lib/api.js:7:19) at Object.setUp (node_modules/@wikimedia/mw-node-qunit/src/dom.js:14:18) at Object.setUp (node_modules/@wikimedia/mw-node-qunit/index.js:15:7) at Object.<anonymous> (jest.setup.js:5:23) Jest: "global" coverage threshold for statements (77%) not met: 0% Jest: "global" coverage threshold for branches (76%) not met: 0% Jest: "global" coverage threshold for lines (77%) not met: 0% Jest: "global" coverage threshold for functions (80%) not met: 0% Test Suites: 2 failed, 2 total Tests: 0 total Snapshots: 0 total Time: 2.31 s, estimated 3 s Ran all test suites. --- stdout --- > test > npm run lint && npm run test:unit > lint > npm -s run lint:js && npm run -s lint:styles && npm -s run lint:i18n /src/repo/resources/ext.quicksurveys.lib/vue/QuickSurvey.vue 315:16 warning The "logEvent" event has been triggered but not declared on `emits` option vue/require-explicit-emits 319:17 warning The "dismiss" event has been triggered but not declared on `emits` option vue/require-explicit-emits 327:16 warning The "dismiss" event has been triggered but not declared on `emits` option vue/require-explicit-emits 328:16 warning The "destroy" event has been triggered but not declared on `emits` option vue/require-explicit-emits ✖ 4 problems (0 errors, 4 warnings) Checked 1 message directory. > test:unit > jest --testRegex tests/jest/*.test.js ----------------------|---------|----------|---------|---------|------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s ----------------------|---------|----------|---------|---------|------------------- All files | 0 | 0 | 0 | 0 | QuickSurvey.vue | 0 | 0 | 0 | 0 | 75-328 QuickSurveyLogger.js | 0 | 0 | 0 | 0 | 1-43 render.js | 0 | 0 | 0 | 0 | 2-93 utils.js | 0 | 0 | 0 | 0 | 10-56 ----------------------|---------|----------|---------|---------|------------------- --- end --- Traceback (most recent call last): File "/venv/lib/python3.9/site-packages/runner-0.1.0-py3.9.egg/runner/__init__.py", line 1400, in main libup.run(args.repo, args.output, args.branch) File "/venv/lib/python3.9/site-packages/runner-0.1.0-py3.9.egg/runner/__init__.py", line 1344, in run self.npm_audit_fix(new_npm_audit) File "/venv/lib/python3.9/site-packages/runner-0.1.0-py3.9.egg/runner/__init__.py", line 242, in npm_audit_fix self.check_call(['npm', 'test']) File "/venv/lib/python3.9/site-packages/runner-0.1.0-py3.9.egg/runner/shell2.py", line 54, in check_call res.check_returncode() File "/usr/lib/python3.9/subprocess.py", line 460, in check_returncode raise CalledProcessError(self.returncode, self.args, self.stdout, subprocess.CalledProcessError: Command '['/usr/bin/npm', 'test']' returned non-zero exit status 1.