This run took 53 seconds.
$ date
--- stdout ---
Sat Jan 17 03:17:35 UTC 2026
--- end ---
$ git clone file:///srv/git/mediawiki-extensions-PhotoSwipe.git /src/repo --depth=1 -b master
--- stderr ---
Cloning into '/src/repo'...
--- stdout ---
--- end ---
$ git config user.name libraryupgrader
--- stdout ---
--- end ---
$ git config user.email tools.libraryupgrader@tools.wmflabs.org
--- stdout ---
--- end ---
$ git submodule update --init
--- stdout ---
--- end ---
$ grr init
--- stdout ---
Installed commit-msg hook.
--- end ---
$ git show-ref refs/heads/master
--- stdout ---
5b42581f5bbcf090898071d9c2ce6b5c298222c8 refs/heads/master
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 0,
"moderate": 0,
"high": 0,
"critical": 0,
"total": 0
},
"dependencies": {
"prod": 106,
"dev": 332,
"optional": 0,
"peer": 1,
"peerOptional": 0,
"total": 437
}
}
}
--- end ---
$ /usr/bin/composer install
--- stderr ---
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 25 installs, 0 updates, 0 removals
- Locking adhocore/json-comment (1.2.1)
- Locking composer/installers (v2.3.0)
- Locking composer/semver (3.4.4)
- Locking composer/spdx-licenses (1.5.9)
- Locking dealerdirect/phpcodesniffer-composer-installer (v1.2.0)
- Locking mediawiki/mediawiki-codesniffer (v48.0.0)
- Locking mediawiki/minus-x (1.1.3)
- Locking php-parallel-lint/php-console-color (v1.0.1)
- Locking php-parallel-lint/php-console-highlighter (v1.0.0)
- Locking php-parallel-lint/php-parallel-lint (v1.4.0)
- Locking phpcsstandards/phpcsextra (1.4.0)
- Locking phpcsstandards/phpcsutils (1.1.1)
- Locking psr/container (2.0.2)
- Locking respect/stringifier (1.0.0)
- Locking respect/validation (2.4.10)
- Locking seld/jsonlint (1.11.0)
- Locking squizlabs/php_codesniffer (3.13.2)
- Locking symfony/console (v7.4.3)
- Locking symfony/deprecation-contracts (v3.6.0)
- Locking symfony/polyfill-ctype (v1.33.0)
- Locking symfony/polyfill-intl-grapheme (v1.33.0)
- Locking symfony/polyfill-intl-normalizer (v1.33.0)
- Locking symfony/polyfill-mbstring (v1.33.0)
- Locking symfony/service-contracts (v3.6.1)
- Locking symfony/string (v8.0.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 25 installs, 0 updates, 0 removals
- Downloading adhocore/json-comment (1.2.1)
0/1 [>---------------------------] 0%
1/1 [============================] 100%
- Installing composer/installers (v2.3.0): Extracting archive
- Installing squizlabs/php_codesniffer (3.13.2): Extracting archive
- Installing dealerdirect/phpcodesniffer-composer-installer (v1.2.0): Extracting archive
- Installing symfony/polyfill-ctype (v1.33.0): Extracting archive
- Installing adhocore/json-comment (1.2.1): Extracting archive
- Installing phpcsstandards/phpcsutils (1.1.1): Extracting archive
- Installing phpcsstandards/phpcsextra (1.4.0): Extracting archive
- Installing symfony/polyfill-mbstring (v1.33.0): Extracting archive
- Installing composer/spdx-licenses (1.5.9): Extracting archive
- Installing composer/semver (3.4.4): Extracting archive
- Installing mediawiki/mediawiki-codesniffer (v48.0.0): Extracting archive
- Installing symfony/polyfill-intl-normalizer (v1.33.0): Extracting archive
- Installing symfony/polyfill-intl-grapheme (v1.33.0): Extracting archive
- Installing symfony/string (v8.0.1): Extracting archive
- Installing symfony/deprecation-contracts (v3.6.0): Extracting archive
- Installing psr/container (2.0.2): Extracting archive
- Installing symfony/service-contracts (v3.6.1): Extracting archive
- Installing symfony/console (v7.4.3): Extracting archive
- Installing mediawiki/minus-x (1.1.3): Extracting archive
- Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
- Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
- Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
- Installing respect/stringifier (1.0.0): Extracting archive
- Installing respect/validation (2.4.10): Extracting archive
- Installing seld/jsonlint (1.11.0): Extracting archive
0/22 [>---------------------------] 0%
21/22 [==========================>-] 95%
22/22 [============================] 100%
2 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating optimized autoload files
17 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils
--- end ---
Upgrading n:eslint-config-wikimedia from 0.32.1 -> 0.32.3
$ /usr/bin/npm install
--- stdout ---
added 440 packages, and audited 441 packages in 5s
111 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
--- end ---
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json
--- end ---
$ /usr/bin/npm install grunt-eslint@24.3.0 --save-exact
--- stdout ---
up to date, audited 441 packages in 1s
111 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
--- end ---
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json
--- end ---
$ ./node_modules/.bin/eslint . --fix
--- stdout ---
/src/repo/modules/ext.photoSwipe/ext.photoSwipe.js
20:22 warning 'config' was used before it was defined no-use-before-define
21:8 warning 'config' was used before it was defined no-use-before-define
21:8 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes
24:24 warning 'config' was used before it was defined no-use-before-define
25:18 warning 'config' was used before it was defined no-use-before-define
26:22 warning 'config' was used before it was defined no-use-before-define
27:10 warning 'config' was used before it was defined no-use-before-define
40:2 warning Unexpected console statement no-console
41:6 warning 'dynamiccaption' is defined but never used no-unused-vars
48:6 warning 'videoplugin' is defined but never used no-unused-vars
59:3 warning 'PhotoSwipe' is assigned a value but never used no-unused-vars
77:4 warning $.globalEval is not allowed no-jquery/no-global-eval
80:5 warning $.globalEval is not allowed no-jquery/no-global-eval
92:4 warning $.globalEval is not allowed no-jquery/no-global-eval
93:32 warning 'pswpModule' is not defined no-undef
95:37 warning A constructor name should not start with a lowercase letter new-cap
127:4 warning $.globalEval is not allowed no-jquery/no-global-eval
130:5 warning $.globalEval is not allowed no-jquery/no-global-eval
136:1 warning This line has a length of 122. Maximum allowed is 100 max-len
136:58 warning A constructor name should not start with a lowercase letter new-cap
139:1 warning This line has a length of 122. Maximum allowed is 100 max-len
139:58 warning A constructor name should not start with a lowercase letter new-cap
142:1 warning This line has a length of 113. Maximum allowed is 100 max-len
142:52 warning A constructor name should not start with a lowercase letter new-cap
149:4 warning $.globalEval is not allowed no-jquery/no-global-eval
152:5 warning $.globalEval is not allowed no-jquery/no-global-eval
✖ 26 problems (0 errors, 26 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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/.stylelintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/Gruntfile.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/composer.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/extension.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/i18n/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/i18n/qqq.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/modules/ext.photoSwipe/ext.photoSwipe.js","messages":[{"ruleId":"no-use-before-define","severity":1,"message":"'config' was used before it was defined.","line":20,"column":22,"nodeType":"Identifier","messageId":"usedBeforeDefined","endLine":20,"endColumn":28},{"ruleId":"no-use-before-define","severity":1,"message":"'config' was used before it was defined.","line":21,"column":8,"nodeType":"Identifier","messageId":"usedBeforeDefined","endLine":21,"endColumn":14},{"ruleId":"es-x/no-array-prototype-includes","severity":1,"message":"ES2016 'Array.prototype.includes' method is forbidden.","line":21,"column":8,"nodeType":"MemberExpression","messageId":"forbidden","endLine":21,"endColumn":31},{"ruleId":"no-use-before-define","severity":1,"message":"'config' was used before it was defined.","line":24,"column":24,"nodeType":"Identifier","messageId":"usedBeforeDefined","endLine":24,"endColumn":30},{"ruleId":"no-use-before-define","severity":1,"message":"'config' was used before it was defined.","line":25,"column":18,"nodeType":"Identifier","messageId":"usedBeforeDefined","endLine":25,"endColumn":24},{"ruleId":"no-use-before-define","severity":1,"message":"'config' was used before it was defined.","line":26,"column":22,"nodeType":"Identifier","messageId":"usedBeforeDefined","endLine":26,"endColumn":28},{"ruleId":"no-use-before-define","severity":1,"message":"'config' was used before it was defined.","line":27,"column":10,"nodeType":"Identifier","messageId":"usedBeforeDefined","endLine":27,"endColumn":16},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":40,"column":2,"nodeType":"MemberExpression","messageId":"unexpected","endLine":40,"endColumn":13,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[1281,1325],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-unused-vars","severity":1,"message":"'dynamiccaption' is defined but never used.","line":41,"column":6,"nodeType":"Identifier","messageId":"unusedVar","endLine":41,"endColumn":20},{"ruleId":"no-unused-vars","severity":1,"message":"'videoplugin' is defined but never used.","line":48,"column":6,"nodeType":"Identifier","messageId":"unusedVar","endLine":48,"endColumn":17},{"ruleId":"no-unused-vars","severity":1,"message":"'PhotoSwipe' is assigned a value but never used.","line":59,"column":3,"nodeType":"Identifier","messageId":"unusedVar","endLine":59,"endColumn":13},{"ruleId":"no-jquery/no-global-eval","severity":1,"message":"$.globalEval is not allowed","line":77,"column":4,"nodeType":"CallExpression","endLine":77,"endColumn":69},{"ruleId":"no-jquery/no-global-eval","severity":1,"message":"$.globalEval is not allowed","line":80,"column":5,"nodeType":"CallExpression","endLine":80,"endColumn":54},{"ruleId":"no-jquery/no-global-eval","severity":1,"message":"$.globalEval is not allowed","line":92,"column":4,"nodeType":"CallExpression","endLine":92,"endColumn":99},{"ruleId":"no-undef","severity":1,"message":"'pswpModule' is not defined.","line":93,"column":32,"nodeType":"Identifier","messageId":"undef","endLine":93,"endColumn":42},{"ruleId":"new-cap","severity":1,"message":"A constructor name should not start with a lowercase letter.","line":95,"column":37,"nodeType":"NewExpression","messageId":"lower","endLine":95,"endColumn":44},{"ruleId":"no-jquery/no-global-eval","severity":1,"message":"$.globalEval is not allowed","line":127,"column":4,"nodeType":"CallExpression","endLine":127,"endColumn":70},{"ruleId":"no-jquery/no-global-eval","severity":1,"message":"$.globalEval is not allowed","line":130,"column":5,"nodeType":"CallExpression","endLine":130,"endColumn":54},{"ruleId":"max-len","severity":1,"message":"This line has a length of 122. Maximum allowed is 100.","line":136,"column":1,"nodeType":"Program","messageId":"max","endLine":136,"endColumn":117},{"ruleId":"new-cap","severity":1,"message":"A constructor name should not start with a lowercase letter.","line":136,"column":58,"nodeType":"NewExpression","messageId":"lower","endLine":136,"endColumn":65},{"ruleId":"max-len","severity":1,"message":"This line has a length of 122. Maximum allowed is 100.","line":139,"column":1,"nodeType":"Program","messageId":"max","endLine":139,"endColumn":117},{"ruleId":"new-cap","severity":1,"message":"A constructor name should not start with a lowercase letter.","line":139,"column":58,"nodeType":"NewExpression","messageId":"lower","endLine":139,"endColumn":65},{"ruleId":"max-len","severity":1,"message":"This line has a length of 113. Maximum allowed is 100.","line":142,"column":1,"nodeType":"Program","messageId":"max","endLine":142,"endColumn":108},{"ruleId":"new-cap","severity":1,"message":"A constructor name should not start with a lowercase letter.","line":142,"column":52,"nodeType":"NewExpression","messageId":"lower","endLine":142,"endColumn":59},{"ruleId":"no-jquery/no-global-eval","severity":1,"message":"$.globalEval is not allowed","line":149,"column":4,"nodeType":"CallExpression","endLine":149,"endColumn":63},{"ruleId":"no-jquery/no-global-eval","severity":1,"message":"$.globalEval is not allowed","line":152,"column":5,"nodeType":"CallExpression","endLine":152,"endColumn":54}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":26,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/*\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <https://gnu.org/licenses/>.\n */\n\n// https://attacomsian.com/blog/javascript-check-variable-is-object\nconst isObject = ( obj ) => Object.prototype.toString.call( obj ) === '[object Object]';\n\nconst isEnabled = ( plugin ) => {\n\tif ( Array.isArray( config.plugins ) ) {\n\t\tif ( config.plugins.includes( plugin ) ) {\n\t\t\treturn true;\n\t\t}\n\t} else if ( isObject( config.plugins ) ) {\n\t\tif ( plugin in config.plugins ) {\n\t\t\tif ( 'enabled' in config.plugins[ plugin ] ) {\n\t\t\t\tif ( config.plugins[ plugin ].enabled ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nconst config = mw.config.get( 'wgPhotoSwipeConfig' );\nif ( config ) {\n\tconsole.log( 'Loading PhotoSwipe', config );\n\tlet dynamiccaption;\n\tlet lightbox;\n\tlet PhotoSwipe;\n\tlet PhotoSwipeLightbox;\n\tlet PhotoSwipeDeepZoomPlugin;\n\tlet PhotoSwipeDynamicCaption;\n\tlet PhotoSwipeVideoPlugin;\n\tlet videoplugin;\n\n\t/*\n\t * mode: recommended -> https://photoswipe.com/getting-started/#initialization\n\t * mode: withoutdynamicimport -> https://photoswipe.com/getting-started/#without-dynamic-import\n\t * mode: withoutlightbox -> https://photoswipe.com/data-sources/#without-lightbox-module\n\t */\n\tif ( config.mode !== 'withoutlightbox' ) {\n\t\tPhotoSwipeLightbox = require( 'js.photoswipe-lightbox' );\n\t}\n\tif ( config.mode === 'withoutdynamicimport' ) {\n\t\tPhotoSwipe = require( 'js.photoswipe' );\n\t}\n\tif ( isEnabled( 'DeepZoomPlugin' ) ) {\n\t\tPhotoSwipeDeepZoomPlugin = require( 'js.photoswipe-deep-zoom-plugin' );\n\t}\n\tif ( isEnabled( 'DynamicCaption' ) ) {\n\t\tPhotoSwipeDynamicCaption = require( 'js.photoswipe-dynamic-caption-plugin' );\n\t}\n\tif ( isEnabled( 'VideoPlugin' ) ) {\n\t\tPhotoSwipeVideoPlugin = require( 'js.photoswipe-video-plugin' );\n\t}\n\n\t// https://en.wikipedia.org/wiki/Cross-site_scripting\n\t// https://mediawiki.org/wiki/Requests_for_comment/Content-Security-Policy\n\t// https://mediawiki.org/wiki/Manual:$wgCSPHeader\n\t// https://mediawiki.org/wiki/Manual:$wgCSPReportOnlyHeader\n\tif ( config.addBeginning ) {\n\t\tif ( typeof config.addBeginning === 'string' ) {\n\t\t\tjQuery.globalEval( config.addBeginning, { nonce: config.nonce } );\n\t\t} else if ( Array.isArray( config.addBeginning ) ) {\n\t\t\tconfig.addBeginning.forEach( ( str ) => {\n\t\t\t\tjQuery.globalEval( str, { nonce: config.nonce } );\n\t\t\t} );\n\t\t}\n\t}\n\n\t// https://photoswipe.com/data-sources/#without-lightbox-module\n\tif ( config.mode !== 'withoutlightbox' ) {\n\t\tif ( typeof config.options.pswpModule === 'string' ) {\n\t\t\t// Prepare require variable to be globally accessible within jQuery.globalEval\n\t\t\tif ( !( 'require' in window ) ) {\n\t\t\t\twindow.require = require;\n\t\t\t}\n\t\t\tjQuery.globalEval( `var pswpModule = ${ config.options.pswpModule }`, { nonce: config.nonce } );\n\t\t\tconfig.options.pswpModule = pswpModule;\n\t\t}\n\t\tlightbox = new PhotoSwipeLightbox.default( config.options );\n\t\t// Prepare lightbox variable to be globally accessible within jQuery.globalEval\n\t\tif ( !( 'lightbox' in window ) ) {\n\t\t\twindow.lightbox = lightbox;\n\t\t}\n\t}\n\n\t/*\n\t * Eventables: For executing lightbox events, filters, methods, and other relevant JS code.\n\t *\n\t * https://photoswipe.com/events/\n\t * https://photoswipe.com/filters/\n\t * https://photoswipe.com/methods/\n\t *\n\t * https://photoswipe.com/opening-or-closing-transition/#transition-duration-and-easing\n\t * https://photoswipe.com/opening-or-closing-transition/#hiding-elements-that-overlap-thumbnails\n\t * https://photoswipe.com/adding-ui-elements/#adding-a-button-to-the-toolbar\n\t * https://photoswipe.com/adding-ui-elements/#adding-html-indicator-to-the-toolbar\n\t * https://photoswipe.com/adding-ui-elements/#adding-download-button\n\t * https://photoswipe.com/adding-ui-elements/#adding-navigation-indicator-bullets\n\t * https://photoswipe.com/adding-ui-elements/#uiregisterelement-api\n\t * https://photoswipe.com/caption/\n\t * https://photoswipe.com/custom-content/#using-webp-image-format\n\t * https://photoswipe.com/custom-content/#google-maps-demo\n\t * https://photoswipe.com/data-sources/#custom-last-slide\n\t * https://photoswipe.com/data-sources/#dynamically-generated-data\n\t * https://photoswipe.com/data-sources/#custom-html-markup\n\t * https://photoswipe.com/data-sources/#separate-dom-and-data\n\t * https://photoswipe.com/native-fullscreen-on-open/\n\t */\n\tif ( config.addEventables ) {\n\t\tif ( typeof config.addEventables === 'string' ) {\n\t\t\tjQuery.globalEval( config.addEventables, { nonce: config.nonce } );\n\t\t} else if ( Array.isArray( config.addEventables ) ) {\n\t\t\tconfig.addEventables.forEach( ( str ) => {\n\t\t\t\tjQuery.globalEval( str, { nonce: config.nonce } );\n\t\t\t} );\n\t\t}\n\t}\n\n\tif ( isEnabled( 'DeepZoomPlugin' ) ) {\n\t\tlightbox.deepzoomplugin = new PhotoSwipeDeepZoomPlugin.default( lightbox, config.plugins.DeepZoomPlugin.options );\n\t}\n\tif ( isEnabled( 'DynamicCaption' ) ) {\n\t\tlightbox.dynamiccaption = new PhotoSwipeDynamicCaption.default( lightbox, config.plugins.DynamicCaption.options );\n\t}\n\tif ( isEnabled( 'VideoPlugin' ) ) {\n\t\tlightbox.videoplugin = new PhotoSwipeVideoPlugin.default( lightbox, config.plugins.VideoPlugin.options );\n\t}\n\n\tlightbox.init();\n\n\tif ( config.addEnd ) {\n\t\tif ( typeof config.addEnd === 'string' ) {\n\t\t\tjQuery.globalEval( config.addEnd, { nonce: config.nonce } );\n\t\t} else if ( Array.isArray( config.addEnd ) ) {\n\t\t\tconfig.addEnd.forEach( ( str ) => {\n\t\t\t\tjQuery.globalEval( str, { nonce: config.nonce } );\n\t\t\t} );\n\t\t}\n\t}\n}\n","usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/package-lock.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/package.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]}]
--- end ---
$ /usr/bin/npm ci
--- stdout ---
added 440 packages, and audited 441 packages in 5s
111 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
--- end ---
$ /usr/bin/npm test
--- stdout ---
> mediawiki-extensions-photoswipe@1.0.0 test
> grunt test
Running "eslint:all" (eslint) task
/src/repo/modules/ext.photoSwipe/ext.photoSwipe.js
20:22 warning 'config' was used before it was defined no-use-before-define
21:8 warning 'config' was used before it was defined no-use-before-define
21:8 warning ES2016 'Array.prototype.includes' method is forbidden es-x/no-array-prototype-includes
24:24 warning 'config' was used before it was defined no-use-before-define
25:18 warning 'config' was used before it was defined no-use-before-define
26:22 warning 'config' was used before it was defined no-use-before-define
27:10 warning 'config' was used before it was defined no-use-before-define
40:2 warning Unexpected console statement no-console
41:6 warning 'dynamiccaption' is defined but never used no-unused-vars
48:6 warning 'videoplugin' is defined but never used no-unused-vars
59:3 warning 'PhotoSwipe' is assigned a value but never used no-unused-vars
77:4 warning $.globalEval is not allowed no-jquery/no-global-eval
80:5 warning $.globalEval is not allowed no-jquery/no-global-eval
92:4 warning $.globalEval is not allowed no-jquery/no-global-eval
93:32 warning 'pswpModule' is not defined no-undef
95:37 warning A constructor name should not start with a lowercase letter new-cap
127:4 warning $.globalEval is not allowed no-jquery/no-global-eval
130:5 warning $.globalEval is not allowed no-jquery/no-global-eval
136:1 warning This line has a length of 122. Maximum allowed is 100 max-len
136:58 warning A constructor name should not start with a lowercase letter new-cap
139:1 warning This line has a length of 122. Maximum allowed is 100 max-len
139:58 warning A constructor name should not start with a lowercase letter new-cap
142:1 warning This line has a length of 113. Maximum allowed is 100 max-len
142:52 warning A constructor name should not start with a lowercase letter new-cap
149:4 warning $.globalEval is not allowed no-jquery/no-global-eval
152:5 warning $.globalEval is not allowed no-jquery/no-global-eval
✖ 26 problems (0 errors, 26 warnings)
Running "stylelint:all" (stylelint) task
>> Linted 0 files without errors
Running "banana:PhotoSwipe" (banana) task
>> 1 message directory checked.
Done.
--- end ---
Upgrading c:mediawiki/mediawiki-codesniffer from 48.0.0 -> 49.0.0
Upgrading c:mediawiki/minus-x from 1.1.3 -> 2.0.0
$ /usr/bin/composer update
--- stderr ---
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 5 updates, 0 removals
- Upgrading mediawiki/mediawiki-codesniffer (v48.0.0 => v49.0.0)
- Upgrading mediawiki/minus-x (1.1.3 => 2.0.0)
- Upgrading phpcsstandards/phpcsutils (1.1.1 => 1.2.2)
- Upgrading squizlabs/php_codesniffer (3.13.2 => 3.13.5)
- Upgrading symfony/console (v7.4.3 => v8.0.3)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 5 updates, 0 removals
0 [>---------------------------] 0 [->--------------------------]
- Upgrading squizlabs/php_codesniffer (3.13.2 => 3.13.5): Extracting archive
- Upgrading phpcsstandards/phpcsutils (1.1.1 => 1.2.2): Extracting archive
- Upgrading mediawiki/mediawiki-codesniffer (v48.0.0 => v49.0.0): Extracting archive
- Upgrading symfony/console (v7.4.3 => v8.0.3): Extracting archive
- Upgrading mediawiki/minus-x (1.1.3 => 2.0.0): Extracting archive
0/5 [>---------------------------] 0%
4/5 [======================>-----] 80%
5/5 [============================] 100%
Generating optimized autoload files
17 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found.
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils
--- end ---
Previously failing phpcs rules: {'MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment'}
$ vendor/bin/phpcs --report=json
--- stdout ---
{"totals":{"errors":0,"warnings":6,"fixable":0},"files":{"\/src\/repo\/includes\/PhotoSwipe.php":{"errors":0,"warnings":6,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":100,"column":32},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":101,"column":41},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":102,"column":35},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":119,"column":43},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":216,"column":65},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":350,"column":24}]}}}
--- end ---
PHPCS run failed
$ vendor/bin/phpcs --report=json
--- stdout ---
{"totals":{"errors":0,"warnings":6,"fixable":0},"files":{"\/src\/repo\/includes\/PhotoSwipe.php":{"errors":0,"warnings":6,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":100,"column":32},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":101,"column":41},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":102,"column":35},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":119,"column":43},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":216,"column":65},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":350,"column":24}]}}}
--- end ---
$ git checkout .phpcs.xml
--- stderr ---
Updated 1 path from the index
--- stdout ---
--- end ---
Tests still failing. Skipping
$ /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 optimized autoload files
17 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 -ps --cache
> minus-x check .
PHP Fatal error: Uncaught Error: Call to undefined method Symfony\Component\Console\Application::add() in /src/repo/vendor/mediawiki/minus-x/bin/minus-x:37
Stack trace:
#0 /src/repo/vendor/bin/minus-x(119): include()
#1 {main}
thrown in /src/repo/vendor/mediawiki/minus-x/bin/minus-x on line 37
Script minus-x check . handling the test event returned with error code 255
--- stdout ---
PHP 8.4.11 | 10 parallel jobs
. 1/1 (100%)
Checked 1 files in 0.1 seconds
No syntax error found
. 1 / 1 (100%)
Time: 116ms; Memory: 8MB
--- end ---
Traceback (most recent call last):
File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1304, in main
libup.run()
~~~~~~~~~^^
File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1239, in run
self.composer_upgrade(plan)
~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1024, in composer_upgrade
self.composer_test()
~~~~~~~~~~~~~~~~~~^^
File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 326, in composer_test
self.check_call(["composer", "test"])
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/runner/shell2.py", line 66, in check_call
res.check_returncode()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/subprocess.py", line 508, in check_returncode
raise CalledProcessError(self.returncode, self.args, self.stdout,
self.stderr)
subprocess.CalledProcessError: Command '['/usr/bin/composer', 'test']' returned non-zero exit status 255.