mediawiki/core: main (log #1909555)

sourcepatches

This run took 440 seconds.

From a197af1fa7c673f2a7a551f382e0ae51fd70b91c Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Tue, 27 May 2025 00:16:38 +0000
Subject: [PATCH] build: Updating eslint-config-wikimedia to 0.30.0

The following rules are failing and were disabled:
* no-mixed-spaces-and-tabs
* yml/no-tab-indent

Change-Id: I1fc1e027cc223c0698412abf625bc07e9f0d185f
---
 .eslintrc.json                                |   4 +-
 docker-compose.yml                            |  30 +-
 docs/config-schema.yaml                       | 896 +++++++++---------
 package-lock.json                             |  35 +-
 package.json                                  |   2 +-
 resources/src/mediawiki.debug/debug.js        |   2 -
 resources/src/startup/startup.js              |   4 +-
 tests/api-testing/REST/PageHistory.js         |  18 +-
 tests/api-testing/REST/PageLanguageLinks.js   |   2 +-
 tests/api-testing/REST/PageMediaLinks.js      |   2 +-
 tests/api-testing/REST/RevisionCompare.js     |   6 +-
 tests/api-testing/REST/Transform.js           |   2 +-
 tests/api-testing/REST/content.v1/Creation.js |  14 +-
 tests/api-testing/REST/content.v1/Update.js   |  20 +-
 14 files changed, 517 insertions(+), 520 deletions(-)

diff --git a/.eslintrc.json b/.eslintrc.json
index b066701..6c3159e 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -4,6 +4,8 @@
 		"wikimedia/server"
 	],
 	"rules": {
-		"max-len": "warn"
+		"max-len": "warn",
+		"no-mixed-spaces-and-tabs": "warn",
+		"yml/no-tab-indent": "warn"
 	}
 }
diff --git a/docker-compose.yml b/docker-compose.yml
index d080119..684f8b4 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -11,22 +11,22 @@ services:
     volumes:
       - ./:/var/www/html/w:cached
     env_file:
-      - '.env'
+      - .env
     environment:
-      COMPOSER_CACHE_DIR: '/var/www/html/w/cache/composer'
-      MW_SERVER: 'http://localhost:${MW_DOCKER_PORT:-8080}'
+      COMPOSER_CACHE_DIR: /var/www/html/w/cache/composer
+      MW_SERVER: "http://localhost:${MW_DOCKER_PORT:-8080}"
       MW_DOCKER_PORT: "${MW_DOCKER_PORT:-8080}"
-      MW_SCRIPT_PATH: '/w'
-      MW_DBPATH: '/var/www/html/w/cache/sqlite'
-      MW_DBTYPE: 'sqlite'
-      MW_LANG: 'en'
-      MW_USER: '${MEDIAWIKI_USER:-Admin}'
-      MW_PASS: '${MEDIAWIKI_PASSWORD:-dockerpass}'
-      MW_SITENAME: 'MediaWiki'
+      MW_SCRIPT_PATH: /w
+      MW_DBPATH: /var/www/html/w/cache/sqlite
+      MW_DBTYPE: sqlite
+      MW_LANG: en
+      MW_USER: "${MEDIAWIKI_USER:-Admin}"
+      MW_PASS: "${MEDIAWIKI_PASSWORD:-dockerpass}"
+      MW_SITENAME: MediaWiki
       MW_LOG_DIR: /var/www/html/w/cache
-      XDEBUG_CONFIG: '${XDEBUG_CONFIG}'
-      XDEBUG_ENABLE: '${XDEBUG_ENABLE:-true}'
-      XHPROF_ENABLE: '${XHPROF_ENABLE:-true}'
+      XDEBUG_CONFIG: "${XDEBUG_CONFIG}"
+      XDEBUG_ENABLE: "${XDEBUG_ENABLE:-true}"
+      XHPROF_ENABLE: "${XHPROF_ENABLE:-true}"
 
   mediawiki-web:
     image: docker-registry.wikimedia.org/dev/bookworm-apache2:1.0.1
@@ -36,7 +36,7 @@ services:
     volumes:
       - ./:/var/www/html/w:cached
     env_file:
-      - '.env'
+      - .env
     environment:
       MW_LOG_DIR: /var/www/html/w/cache
       MW_DOCKER_PORT: "${MW_DOCKER_PORT:-8080}"
@@ -47,7 +47,7 @@ services:
     volumes:
       - ./:/var/www/html/w:cached
     env_file:
-      - '.env'
+      - .env
     environment:
       MW_LOG_DIR: /var/www/html/w/cache
       MW_INSTALL_PATH: /var/www/html/w
diff --git a/docs/config-schema.yaml b/docs/config-schema.yaml
index 9b8c356..e37e0fc 100644
--- a/docs/config-schema.yaml
+++ b/docs/config-schema.yaml
@@ -3,7 +3,7 @@
 config-schema:
     ConfigRegistry:
         default:
-            main: 'GlobalVarConfig::newInstance'
+            main: "GlobalVarConfig::newInstance"
         type: object
         description: |-
             Registry of factory functions to create config objects:
@@ -12,7 +12,7 @@ config-schema:
             @since 1.23
     Sitename:
         default: MediaWiki
-        description: 'Name of the site. It must be changed in LocalSettings.php'
+        description: Name of the site. It must be changed in LocalSettings.php
     Server:
         default: false
         description: |-
@@ -80,7 +80,7 @@ config-schema:
             set in LocalSettings.php
     UsePathInfo:
         dynamicDefault:
-            callback: [MediaWiki\MainConfigSchema, getDefaultUsePathInfo]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultUsePathInfo ]
         description: |-
             Whether to support URLs like index.php/Page_title.
             The effective default value is determined at runtime:
@@ -95,16 +95,16 @@ config-schema:
     Script:
         default: false
         dynamicDefault:
-            use: [ScriptPath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultScript]
+            use: [ ScriptPath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultScript ]
         description: |-
             The URL path to index.php.
             Defaults to "{$wgScriptPath}/index.php".
     LoadScript:
         default: false
         dynamicDefault:
-            use: [ScriptPath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultLoadScript]
+            use: [ ScriptPath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultLoadScript ]
         description: |-
             The URL path to load.php.
             Defaults to "{$wgScriptPath}/load.php".
@@ -112,8 +112,8 @@ config-schema:
     RestPath:
         default: false
         dynamicDefault:
-            use: [ScriptPath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultRestPath]
+            use: [ ScriptPath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultRestPath ]
         description: |-
             The URL path to the REST API.
             Defaults to "{$wgScriptPath}/rest.php"
@@ -121,8 +121,8 @@ config-schema:
     StylePath:
         default: false
         dynamicDefault:
-            use: [ResourceBasePath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultStylePath]
+            use: [ ResourceBasePath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultStylePath ]
         description: |-
             The URL path of the skins directory.
             Defaults to "{$wgResourceBasePath}/skins".
@@ -130,8 +130,8 @@ config-schema:
     LocalStylePath:
         default: false
         dynamicDefault:
-            use: [ScriptPath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultLocalStylePath]
+            use: [ ScriptPath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultLocalStylePath ]
         description: |-
             The URL path of the skins directory. Should not point to an external domain.
             Defaults to "{$wgScriptPath}/skins".
@@ -139,8 +139,8 @@ config-schema:
     ExtensionAssetsPath:
         default: false
         dynamicDefault:
-            use: [ResourceBasePath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultExtensionAssetsPath]
+            use: [ ResourceBasePath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultExtensionAssetsPath ]
         description: |-
             The URL path of the extensions directory.
             Defaults to "{$wgResourceBasePath}/extensions".
@@ -149,7 +149,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Extensions directory in the file system.
             Defaults to "{$IP}/extensions" in Setup.php
@@ -159,7 +159,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Skins directory in the file system.
             Defaults to "{$IP}/skins" in Setup.php.
@@ -168,8 +168,8 @@ config-schema:
     ArticlePath:
         default: false
         dynamicDefault:
-            use: [Script, UsePathInfo]
-            callback: [MediaWiki\MainConfigSchema, getDefaultArticlePath]
+            use: [ Script, UsePathInfo ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultArticlePath ]
         description: |-
             The URL path for primary article page views. This path should contain $1,
             which is replaced by the article title.
@@ -178,8 +178,8 @@ config-schema:
     UploadPath:
         default: false
         dynamicDefault:
-            use: [ScriptPath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultUploadPath]
+            use: [ ScriptPath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultUploadPath ]
         description: |-
             The URL path for the images directory.
             Defaults to "{$wgScriptPath}/images".
@@ -205,23 +205,23 @@ config-schema:
         type:
             - string
             - boolean
-            - 'null'
+            - "null"
         description: |-
             The filesystem path of the images directory.
             Defaults to "{$IP}/images" in Setup.php.
     FileCacheDirectory:
         default: false
         dynamicDefault:
-            use: [UploadDirectory]
-            callback: [MediaWiki\MainConfigSchema, getDefaultFileCacheDirectory]
+            use: [ UploadDirectory ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultFileCacheDirectory ]
         description: |-
             Directory where the cached page will be saved.
             Defaults to "{$wgUploadDirectory}/cache".
     Logo:
         default: false
         dynamicDefault:
-            use: [ResourceBasePath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultLogo]
+            use: [ ResourceBasePath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultLogo ]
         description: |-
             The URL path of the wiki logo. The logo size should be 135x135 pixels.
             Defaults to "$wgResourceBasePath/resources/assets/change-your-logo.svg".
@@ -327,14 +327,14 @@ config-schema:
             @see \wfTempDir()
             @note Default changed to false in MediaWiki 1.20.
     UploadBaseUrl:
-        default: ''
+        default: ""
         description: |-
             If set, this URL is added to the start of $wgUploadPath to form a complete
             upload URL.
             @since 1.4
     UploadStashScalerBaseUrl:
         default: false
-        deprecated: 'since 1.36 Use thumbProxyUrl in $wgLocalFileRepo'
+        deprecated: since 1.36 Use thumbProxyUrl in $wgLocalFileRepo
         description: |-
             To enable remote on-demand scaling, set this to the thumbnail base URL.
             Full thumbnail URL will be like $wgUploadStashScalerBaseUrl/e/e6/Foo.jpg/123px-Foo.jpg
@@ -344,7 +344,7 @@ config-schema:
             rendered locally as needed.
             @since 1.17
     ActionPaths:
-        default: {  }
+        default: { }
         type: object
         description: |-
             To set 'pretty' URL paths for actions other than
@@ -373,7 +373,7 @@ config-schema:
             @since 1.5
     UploadStashMaxAge:
         default: 21600
-        description: 'The maximum age of temporary (incomplete) uploaded files'
+        description: The maximum age of temporary (incomplete) uploaded files
     EnableAsyncUploads:
         default: false
         description: |-
@@ -387,10 +387,10 @@ config-schema:
             Only works if EnableAsyncUploads is also enabled
     UploadMaintenance:
         default: false
-        description: 'To disable file delete/restore temporarily'
+        description: To disable file delete/restore temporarily
     IllegalFileChars:
         default: ':\/\\'
-        deprecated: 'since 1.41; no longer customizable'
+        deprecated: since 1.41; no longer customizable
         description: |-
             Additional characters that are not allowed in filenames. They are replaced with '-' when
             uploading. Like $wgLegalTitleChars, this is a regexp character class.
@@ -400,16 +400,16 @@ config-schema:
     DeletedDirectory:
         default: false
         dynamicDefault:
-            use: [UploadDirectory]
-            callback: [MediaWiki\MainConfigSchema, getDefaultDeletedDirectory]
+            use: [ UploadDirectory ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultDeletedDirectory ]
         description: |-
             What directory to place deleted uploads in.
             Defaults to "{$wgUploadDirectory}/deleted".
     ImgAuthDetails:
         default: false
-        description: 'Set this to true if you use img_auth and want the user to see details on why access failed.'
+        description: Set this to true if you use img_auth and want the user to see details on why access failed.
     ImgAuthUrlPathMap:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Map of relative URL directories to match to internal mwstore:// base storage paths.
@@ -428,8 +428,8 @@ config-schema:
             - object
             - boolean
         dynamicDefault:
-            use: [UploadDirectory, ScriptPath, Favicon, UploadBaseUrl, UploadPath, HashedUploadDirectory, ThumbnailScriptPath, GenerateThumbnailOnParse, DeletedDirectory, UpdateCompatibleMetadata]
-            callback: [MediaWiki\MainConfigSchema, getDefaultLocalFileRepo]
+            use: [ UploadDirectory, ScriptPath, Favicon, UploadBaseUrl, UploadPath, HashedUploadDirectory, ThumbnailScriptPath, GenerateThumbnailOnParse, DeletedDirectory, UpdateCompatibleMetadata ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultLocalFileRepo ]
         description: |-
             File repository structures
             $wgLocalFileRepo is a single repository structure, and $wgForeignFileRepos is
@@ -596,7 +596,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Shortcut for the 'directory' setting of $wgForeignFileRepos.
             Only used if $wgUseSharedUploads is enabled.
@@ -605,7 +605,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Shortcut for the 'url' setting of $wgForeignFileRepos.
             Only used if $wgUseSharedUploads is enabled.
@@ -618,7 +618,7 @@ config-schema:
             Only used if $wgUseSharedUploads is enabled.
             @since 1.3
     RepositoryBaseUrl:
-        default: 'https://commons.wikimedia.org/wiki/File:'
+        default: "https://commons.wikimedia.org/wiki/File:"
         description: |-
             Shortcut for the 'descBaseUrl' setting of $wgForeignFileRepos.
             Only used if $wgUseSharedUploads is enabled.
@@ -641,7 +641,7 @@ config-schema:
             Only used if $wgUseSharedUploads is enabled.
             @since 1.4
     SharedUploadDBprefix:
-        default: ''
+        default: ""
         type: string
         description: |-
             Shortcut for the ForeignDBRepo 'tablePrefix' setting in $wgForeignFileRepos.
@@ -669,8 +669,8 @@ config-schema:
         default:
             fields: { description: true, date: false, categories: false }
             licensemessages: { local: generic-local, foreign: generic-foreign }
-            comment: { local: '', foreign: '' }
-            format: { filepage: $DESCRIPTION, description: $TEXT, ownwork: '', license: '', uncategorized: '' }
+            comment: { local: "", foreign: "" }
+            format: { filepage: $DESCRIPTION, description: $TEXT, ownwork: "", license: "", uncategorized: "" }
         type: object
         description: |-
             Configuration for file uploads using the embeddable upload dialog
@@ -679,7 +679,7 @@ config-schema:
             wikis using the action=query&meta=siteinfo API).
             See below for documentation of each property. None of the properties may be omitted.
     FileBackends:
-        default: {  }
+        default: { }
         type: object
         description: |-
             File backend structure configuration.
@@ -725,7 +725,7 @@ config-schema:
             These settings should be global to all wikis.
     ShowEXIF:
         dynamicDefault:
-            callback: [MediaWiki\MainConfigSchema, getDefaultShowEXIF]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultShowEXIF ]
         description: |-
             Whether to show Exif data.
             The effective default value is determined at runtime:
@@ -740,7 +740,7 @@ config-schema:
         default: null
     UpdateCompatibleMetadata:
         default: false
-        description: 'Shortcut for the ''updateCompatibleMetadata'' setting of $wgLocalFileRepo.'
+        description: "Shortcut for the 'updateCompatibleMetadata' setting of $wgLocalFileRepo."
     AllowCopyUploads:
         default: false
         description: |-
@@ -949,7 +949,7 @@ config-schema:
             $wgGroupPermissions TO RESTRICT UPLOADING to only those that you trust
     UploadSizeWarning:
         default: false
-        description: 'Warn if uploaded files are larger than this (in bytes), or false to disable'
+        description: "Warn if uploaded files are larger than this (in bytes), or false to disable"
     TrustedMediaFormats:
         default:
             - BITMAP
@@ -967,7 +967,7 @@ config-schema:
             to use this for further restrictions, like disabling direct
             [[media:...]] links for non-trusted formats.
     MediaHandlers:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Plugins for media file type handling.
@@ -1013,19 +1013,19 @@ config-schema:
             Use Image Magick instead of PHP builtin functions.
     ImageMagickConvertCommand:
         default: /usr/bin/convert
-        description: 'The convert command shipped with ImageMagick'
+        description: The convert command shipped with ImageMagick
     MaxInterlacingAreas:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Array of max pixel areas for interlacing per MIME type
             @since 1.27
     SharpenParameter:
         default: 0x0.4
-        description: 'Sharpening parameter to ImageMagick'
+        description: Sharpening parameter to ImageMagick
     SharpenReductionThreshold:
         default: 0.85
-        description: 'Reduction in linear dimensions below which sharpening will be enabled'
+        description: Reduction in linear dimensions below which sharpening will be enabled
     ImageMagickTempDir:
         default: false
         description: |-
@@ -1083,12 +1083,12 @@ config-schema:
     SVGConverters:
         default:
             ImageMagick: '$path/convert -background "#ffffff00" -thumbnail $widthx$height\! $input PNG:$output'
-            sodipodi: '$path/sodipodi -z -w $width -f $input -e $output'
-            inkscape: '$path/inkscape -z -w $width -f $input -e $output'
-            batik: 'java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d $output $input'
-            rsvg: '$path/rsvg-convert -w $width -h $height -o $output $input'
-            imgserv: '$path/imgserv-wrapper -i svg -o png -w$width $input $output'
-            ImagickExt: ['SvgHandler::rasterizeImagickExt']
+            sodipodi: $path/sodipodi -z -w $width -f $input -e $output
+            inkscape: $path/inkscape -z -w $width -f $input -e $output
+            batik: java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d $output $input
+            rsvg: $path/rsvg-convert -w $width -h $height -o $output $input
+            imgserv: $path/imgserv-wrapper -i svg -o png -w$width $input $output
+            ImagickExt: [ "SvgHandler::rasterizeImagickExt" ]
         type: object
         description: |-
             Scalable Vector Graphics (SVG) may be uploaded as images.
@@ -1099,13 +1099,13 @@ config-schema:
             are passed as parameters after $srcPath, $dstPath, $width, $height
     SVGConverter:
         default: ImageMagick
-        description: 'Pick a converter defined in $wgSVGConverters'
+        description: Pick a converter defined in $wgSVGConverters
     SVGConverterPath:
-        default: ''
-        description: 'If not in the executable PATH, specify the SVG converter path.'
+        default: ""
+        description: "If not in the executable PATH, specify the SVG converter path."
     SVGMaxSize:
         default: 5120
-        description: 'Don''t scale a SVG larger than this'
+        description: "Don't scale a SVG larger than this"
     SVGMetadataCutoff:
         default: 5242880
         description: |-
@@ -1179,7 +1179,7 @@ config-schema:
             $wgTiffThumbnailType = [ 'jpg', 'image/jpeg' ];
             ```
     ThumbnailEpoch:
-        default: '20030516000000'
+        default: "20030516000000"
         description: |-
             If rendered thumbnail files are older than this timestamp, they
             will be rerendered on demand as if the file didn't already exist.
@@ -1222,12 +1222,12 @@ config-schema:
             @since 1.7.0
     ShowArchiveThumbnails:
         default: true
-        description: 'Show thumbnails for old images on the image description page'
+        description: Show thumbnails for old images on the image description page
     EnableAutoRotation:
         default: null
         type:
             - boolean
-            - 'null'
+            - "null"
         description: |-
             If set to true, images that contain certain the exif orientation tag will
             be rotated accordingly. If set to null, try to auto-detect whether a scaler
@@ -1236,14 +1236,14 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Internal name of virus scanner. This serves as a key to the
             $wgAntivirusSetup array. Set this to NULL to disable virus scanning. If not
             null, every file uploaded will be scanned for viruses.
     AntivirusSetup:
         default:
-            clamav: { command: 'clamscan --no-summary ', codemap: { 0: 0, 1: 1, 52: -1, '*': false }, messagepattern: '/.*?:(.*)/sim' }
+            clamav: { command: "clamscan --no-summary ", codemap: { 0: 0, 1: 1, 52: -1, "*": false }, messagepattern: "/.*?:(.*)/sim" }
         type: object
         description: |-
             Configuration for different virus scanners. This an associative array of
@@ -1276,10 +1276,10 @@ config-schema:
             If not defined or the pattern does not match, the full message is shown to the user.
     AntivirusRequired:
         default: true
-        description: 'Determines if a failed virus scan (AV_SCAN_FAILED) will cause the file to be rejected.'
+        description: Determines if a failed virus scan (AV_SCAN_FAILED) will cause the file to be rejected.
     VerifyMimeType:
         default: true
-        description: 'Determines if the MIME type of uploaded files should be checked'
+        description: Determines if the MIME type of uploaded files should be checked
     MimeTypeFile:
         default: internal
         description: |-
@@ -1299,7 +1299,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Sets an external MIME detector program. The command must print only
             the MIME type to standard output.
@@ -1317,10 +1317,10 @@ config-schema:
             can be trusted.
     XMLMimeTypes:
         default:
-            'http://www.w3.org/2000/svg:svg': image/svg+xml
+            "http://www.w3.org/2000/svg:svg": image/svg+xml
             svg: image/svg+xml
-            'http://www.lysator.liu.se/~alla/dia/:diagram': application/x-dia-diagram
-            'http://www.w3.org/1999/xhtml:html': text/html
+            "http://www.lysator.liu.se/~alla/dia/:diagram": application/x-dia-diagram
+            "http://www.w3.org/1999/xhtml:html": text/html
             html: text/html
         type: object
         description: |-
@@ -1328,12 +1328,12 @@ config-schema:
             array = [ 'rootElement' => 'associatedMimeType' ]
     ImageLimits:
         default:
-            - [320, 240]
-            - [640, 480]
-            - [800, 600]
-            - [1024, 768]
-            - [1280, 1024]
-            - [2560, 2048]
+            - [ 320, 240 ]
+            - [ 640, 480 ]
+            - [ 800, 600 ]
+            - [ 1024, 768 ]
+            - [ 1280, 1024 ]
+            - [ 2560, 2048 ]
         type: array
         description: |-
             Limit images on image description pages to a user-selectable limit.
@@ -1369,7 +1369,7 @@ config-schema:
         default: null
         type:
             - array
-            - 'null'
+            - "null"
         description: |-
             When defined, is an array of image widths used as steps for thumbnail sizes.
             The thumbnail with smallest step that has larger value than requested will be shown
@@ -1382,7 +1382,7 @@ config-schema:
         default: null
         type:
             - number
-            - 'null'
+            - "null"
         description: |-
             Ratio of images that will use the thumbnail steps
             This is to allow for gradual roll out of thumbnail steps. It should be a number between 0 and 1.
@@ -1391,7 +1391,7 @@ config-schema:
         default: null
         type:
             - array
-            - 'null'
+            - "null"
         description: |-
             When defined, is an array of image widths used as buckets for thumbnail generation.
             The goal is to save resources by generating thumbnails based on reference buckets instead of
@@ -1412,7 +1412,7 @@ config-schema:
             If we want to render a thumbnail of width 220px, the 512px bucket will be used,
             because 220 + 50 = 270 and the closest bucket bigger than 270px is 512.
     UploadThumbnailRenderMap:
-        default: {  }
+        default: { }
         type: object
         description: |-
             When defined, is an array of thumbnail widths to be rendered at upload time. The idea is to
@@ -1450,7 +1450,7 @@ config-schema:
             (and free) TinyRGB profile when generating thumbnails.
             @since 1.26
     GalleryOptions:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Parameters for the "<gallery>" tag.
@@ -1473,7 +1473,7 @@ config-schema:
             by hardcoded px in wiki sourcecode.
     DirectoryMode:
         default: 511
-        description: 'Default value for chmod-ing of new directories.'
+        description: Default value for chmod-ing of new directories.
     ResponsiveImages:
         default: true
         description: |-
@@ -1503,7 +1503,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Path of the djvudump executable
             Enable this and $wgDjvuRenderer to enable djvu rendering
@@ -1514,7 +1514,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Path of the ddjvu DJVU renderer
             Enable this and $wgDjvuDump to enable djvu rendering
@@ -1523,7 +1523,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Path of the djvutxt DJVU text extraction utility
             Enable this and $wgDjvuDump to enable text layer extraction from djvu files
@@ -1534,14 +1534,14 @@ config-schema:
         default: pnmtojpeg
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Shell command for the DJVU post processor
             Default: pnmtojpeg, since ddjvu generates ppm output
             Set this to false to output the ppm file directly.
     DjvuOutputExtension:
         default: jpg
-        description: 'File extension for the DJVU post processor output'
+        description: File extension for the DJVU post processor output
     EmergencyContact:
         default: false
         description: |-
@@ -1598,10 +1598,10 @@ config-schema:
             emails for a given account. This is to prevent abuse by mail flooding.
     NewPasswordExpiry:
         default: 604800
-        description: 'The time, in seconds, when an emailed temporary password expires.'
+        description: "The time, in seconds, when an emailed temporary password expires."
     UserEmailConfirmationTokenExpiry:
         default: 604800
-        description: 'The time, in seconds, when an email confirmation email expires'
+        description: "The time, in seconds, when an email confirmation email expires"
     PasswordExpirationDays:
         default: false
         description: |-
@@ -1633,7 +1633,7 @@ config-schema:
             ```
     AdditionalMailParams:
         default: null
-        description: 'Additional email parameters, will be passed as the last argument to mail() call.'
+        description: "Additional email parameters, will be passed as the last argument to mail() call."
     AllowHTMLEmail:
         default: false
         description: |-
@@ -1690,7 +1690,7 @@ config-schema:
         default: false
         description: 'Use real name instead of username in e-mail "from" field.'
     UsersNotifiedOnAllChanges:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Array of usernames who will be sent a notification email for every change
@@ -1707,7 +1707,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Current wiki database schema name
             This should only contain alphanumeric and underscore characters ([A-Za-z0-9_]+).
@@ -1715,7 +1715,7 @@ config-schema:
             This is used to determine the current/local wiki ID (WikiMap::getCurrentWikiDbDomain).
             This should still be set even if $wgLBFactoryConf is configured.
     DBprefix:
-        default: ''
+        default: ""
         description: |-
             Current wiki database table name prefix
             This should only contain alphanumeric and underscore characters ([A-Za-z0-9_]+).
@@ -1725,19 +1725,19 @@ config-schema:
             This should still be set even if $wgLBFactoryConf is configured.
     DBserver:
         default: localhost
-        description: 'Database host name or IP address'
+        description: Database host name or IP address
     DBport:
         default: 5432
-        description: 'Database port number'
+        description: Database port number
     DBuser:
         default: wikiuser
-        description: 'Database username'
+        description: Database username
     DBpassword:
-        default: ''
-        description: 'Database user''s password'
+        default: ""
+        description: "Database user's password"
     DBtype:
         default: mysql
-        description: 'Database type'
+        description: Database type
     DBssl:
         default: false
         description: |-
@@ -1765,10 +1765,10 @@ config-schema:
             @since 1.42
     DBadminuser:
         default: null
-        description: 'Separate username for maintenance tasks. Leave as null to use the default.'
+        description: Separate username for maintenance tasks. Leave as null to use the default.
     DBadminpassword:
         default: null
-        description: 'Separate password for maintenance tasks. Leave as null to use the default.'
+        description: Separate password for maintenance tasks. Leave as null to use the default.
     SearchType:
         default: null
         description: |-
@@ -1791,10 +1791,10 @@ config-schema:
             (because it's namespaced for example), you can add a mapping for this in
             SearchMappings in extension.json.
     DBTableOptions:
-        default: 'ENGINE=InnoDB, DEFAULT CHARSET=binary'
-        description: 'MySQL table options to use during installation or update'
+        default: "ENGINE=InnoDB, DEFAULT CHARSET=binary"
+        description: MySQL table options to use during installation or update
     SQLMode:
-        default: ''
+        default: ""
         description: |-
             SQL Mode - default is turning off all modes, including strict, if set.
             null can be used to skip the setting for performance reasons and assume
@@ -1807,8 +1807,8 @@ config-schema:
             Will be used as default query group in ILoadBalancer::getConnection.
             @since 1.32
     SQLiteDataDir:
-        default: ''
-        description: 'To override default SQLite data directory ($docroot/../data)'
+        default: ""
+        description: To override default SQLite data directory ($docroot/../data)
     SharedDB:
         default: null
         description: |-
@@ -1829,9 +1829,9 @@ config-schema:
     SharedPrefix:
         default: false
         dynamicDefault:
-            use: [DBprefix]
-            callback: [MediaWiki\MainConfigSchema, getDefaultSharedPrefix]
-        description: '@see self::SharedDB'
+            use: [ DBprefix ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultSharedPrefix ]
+        description: "@see self::SharedDB"
     SharedTables:
         default:
             - user
@@ -1844,8 +1844,8 @@ config-schema:
     SharedSchema:
         default: false
         dynamicDefault:
-            use: [DBmwschema]
-            callback: [MediaWiki\MainConfigSchema, getDefaultSharedSchema]
+            use: [ DBmwschema ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultSharedSchema ]
         description: |-
             @see self::SharedDB
             @since 1.23
@@ -1921,12 +1921,12 @@ config-schema:
             @since 1.27
     DBerrorLog:
         default: false
-        description: 'File to log database errors to'
+        description: File to log database errors to
     DBerrorLogTZ:
         default: false
         dynamicDefault:
-            use: [Localtimezone]
-            callback: [MediaWiki\MainConfigSchema, getDefaultDBerrorLogTZ]
+            use: [ Localtimezone ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultDBerrorLogTZ ]
         description: |-
             Timezone to use in the error log.
             Defaults to the wiki timezone ($wgLocaltimezone).
@@ -1991,7 +1991,7 @@ config-schema:
             in milliseconds.
             @since 1.38
     VirtualDomainsMapping:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Mapping of virtual domain to external cluster db.
@@ -2034,7 +2034,7 @@ config-schema:
             History:
               - 1.44: Added
     ExternalLinksDomainGaps:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Gaps in the externallinks table for certain domains.
@@ -2052,7 +2052,7 @@ config-schema:
               - 1.41: Added
     ContentHandlers:
         default:
-            wikitext: { class: MediaWiki\Content\WikitextContentHandler, services: [TitleFactory, ParserFactory, GlobalIdGenerator, LanguageNameUtils, LinkRenderer, MagicWordFactory, ParsoidParserFactory] }
+            wikitext: { class: MediaWiki\Content\WikitextContentHandler, services: [ TitleFactory, ParserFactory, GlobalIdGenerator, LanguageNameUtils, LinkRenderer, MagicWordFactory, ParsoidParserFactory ] }
             javascript: MediaWiki\Content\JavaScriptContentHandler
             json: MediaWiki\Content\JsonContentHandler
             css: MediaWiki\Content\CssContentHandler
@@ -2065,7 +2065,7 @@ config-schema:
             that creates an instance of the appropriate ContentHandler subclass.
             @since 1.21
     NamespaceContentModels:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Associative array mapping namespace IDs to the name of the content model pages in that
@@ -2110,7 +2110,7 @@ config-schema:
             $wgExternalStores = [ "DB" ];
             ```
     ExternalServers:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Shortcut for setting `$wgLBFactoryConf["externalClusters"]`.
@@ -2166,7 +2166,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Specify the difference engine to use.
             Supported values:
@@ -2180,9 +2180,9 @@ config-schema:
         type:
             - string
             - boolean
-        description: 'Name of the external diff engine to use.'
+        description: Name of the external diff engine to use.
     Wikidiff2Options:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Options for wikidiff2:
@@ -2208,7 +2208,7 @@ config-schema:
         default: null
         type:
             - integer
-            - 'null'
+            - "null"
         description: |-
             Set a limit on server request wall clock time.
             If the Excimer extension is enabled, setting this will cause an exception
@@ -2238,25 +2238,25 @@ config-schema:
             @since 1.36
     MiserMode:
         default: false
-        description: 'Disable database-intensive features'
+        description: Disable database-intensive features
     DisableQueryPages:
         default: false
-        description: 'Disable all query pages if miser mode is on, not just some'
+        description: "Disable all query pages if miser mode is on, not just some"
     QueryCacheLimit:
         default: 1000
-        description: 'Number of rows to cache in ''querycache'' table when miser mode is on'
+        description: "Number of rows to cache in 'querycache' table when miser mode is on"
     WantedPagesThreshold:
         default: 1
         description: 'Number of links to a page required before it is deemed "wanted"'
     AllowSlowParserFunctions:
         default: false
-        description: 'Enable slow parser functions'
+        description: Enable slow parser functions
     AllowSchemaUpdates:
         default: true
-        description: 'Allow schema updates'
+        description: Allow schema updates
     MaxArticleSize:
         default: 2048
-        description: 'Maximum article size in kibibytes'
+        description: Maximum article size in kibibytes
     MemoryLimit:
         default: 50M
         description: |-
@@ -2266,7 +2266,7 @@ config-schema:
         default: null
         type:
             - object
-            - 'null'
+            - "null"
         description: |-
             Configuration for processing pool control, for use in high-traffic wikis.
             An implementation is provided in the PoolCounter extension.
@@ -2303,7 +2303,7 @@ config-schema:
             @since 1.16
     PoolCountClientConf:
         default:
-            servers: [127.0.0.1]
+            servers: [ 127.0.0.1 ]
             timeout: 0.1
         type: object
         description: |-
@@ -2340,7 +2340,7 @@ config-schema:
             For debugging
     MaximumMovedPages:
         default: 100
-        description: 'Maximum number of pages to move at once when moving subpages with a page.'
+        description: Maximum number of pages to move at once when moving subpages with a page.
     ForceDeferredUpdatesPreSend:
         default: false
         description: |-
@@ -2500,7 +2500,7 @@ config-schema:
             For MemcachedPeclBagOStuff parameters see {@link MemcachedPeclBagOStuff::__construct}
             For RedisBagOStuff parameters see {@link Wikimedia\ObjectCache\RedisBagOStuff::__construct}
     WANObjectCache:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Extra parameters to the WANObjectCache constructor.
@@ -2560,7 +2560,7 @@ config-schema:
     ParsoidCacheConfig:
         type: object
         properties:
-            StashType: { type: [integer, string, 'null'], default: null }
+            StashType: { type: [ integer, string, "null" ], default: null }
             StashDuration: { type: integer, default: 86400 }
             WarmParsoidParserCache: { type: boolean, default: false }
         description: |-
@@ -2599,8 +2599,8 @@ config-schema:
             parsoid-pcache: { default: { minCpuTime: 0 } }
         additionalProperties:
             type: object
-            description: 'A map of namespace IDs to filter definitions.'
-            additionalProperties: { type: object, description: 'A map of filter names to values.', properties: { minCpuTime: { type: number } } }
+            description: A map of namespace IDs to filter definitions.
+            additionalProperties: { type: object, description: A map of filter names to values., properties: { minCpuTime: { type: number } } }
         description: |-
             Per-namespace configuration for the ParserCache filter.
             There is one top level key for each cache name supported in ParserCacheFactory.
@@ -2615,7 +2615,7 @@ config-schema:
             under the "default" key will be used for pages in that namespace.
             @since 1.42
     ChronologyProtectorSecret:
-        default: ''
+        default: ""
         type: string
         description: |-
             Secret string for HMAC hashing in ChronologyProtector [optional]
@@ -2647,7 +2647,7 @@ config-schema:
             The default is 3600 (cache disabled).
     ObjectCacheSessionExpiry:
         default: 3600
-        description: 'The expiry time to use for session storage, in seconds.'
+        description: "The expiry time to use for session storage, in seconds."
     PHPSessionHandling:
         default: enable
         type: string
@@ -2676,9 +2676,9 @@ config-schema:
             @since 1.28
     MemCachedServers:
         default:
-            - '127.0.0.1:11211'
+            - "127.0.0.1:11211"
         type: array
-        description: 'The list of MemCached servers and port numbers'
+        description: The list of MemCached servers and port numbers
     MemCachedPersistent:
         default: false
         description: |-
@@ -2686,7 +2686,7 @@ config-schema:
             requests.
     MemCachedTimeout:
         default: 500000
-        description: 'Read/write timeout for MemCached server communication, in microseconds.'
+        description: "Read/write timeout for MemCached server communication, in microseconds."
     UseLocalMessageCache:
         default: false
         description: |-
@@ -2707,8 +2707,8 @@ config-schema:
         properties:
             class: { type: string, default: LocalisationCache }
             store: { type: string, default: detect }
-            storeClass: { type: [boolean, string], default: false }
-            storeDirectory: { type: [boolean, string], default: false }
+            storeClass: { type: [ boolean, string ], default: false }
+            storeDirectory: { type: [ boolean, string ], default: false }
             storeServer: { type: object, default: [] }
             forceRecache: { type: boolean, default: false }
             manualRecache: { type: boolean, default: false }
@@ -2740,9 +2740,9 @@ config-schema:
         default: null
     CachePages:
         default: true
-        description: 'Allow client-side caching of pages'
+        description: Allow client-side caching of pages
     CacheEpoch:
-        default: '20030516000000'
+        default: "20030516000000"
         description: |-
             Set this to current time to invalidate all prior cached pages. Affects both
             client-side and server-side caching.
@@ -2768,7 +2768,7 @@ config-schema:
             the MD5 hash of the title.  A value of 0 means all cache files will
             be put directly into the main file cache directory.
     RenderHashAppend:
-        default: ''
+        default: ""
         description: |-
             Append a configured value to the parser cache and the sitenotice key so
             that they can be kept separate for some class of activity.
@@ -2783,7 +2783,7 @@ config-schema:
             don't update as expected.
     SidebarCacheExpiry:
         default: 86400
-        description: 'Expiry time for the sidebar cache, in seconds'
+        description: "Expiry time for the sidebar cache, in seconds"
     UseGzip:
         default: false
         description: |-
@@ -2888,7 +2888,7 @@ config-schema:
             Default maximum age for raw CSS/JS accesses
             300 seconds = 5 minutes.
     CdnServers:
-        default: {  }
+        default: { }
         type: object
         description: |-
             List of proxy servers to purge on changes; default port is 80. Use IP addresses.
@@ -2897,7 +2897,7 @@ config-schema:
             For a list of trusted servers which *aren't* purged, see $wgSquidServersNoPurge.
             @since 1.34 Renamed from $wgSquidServers.
     CdnServersNoPurge:
-        default: {  }
+        default: { }
         type: object
         description: |-
             As with $wgCdnServers, except these servers aren't purged on page changes;
@@ -2906,7 +2906,7 @@ config-schema:
             @since 1.23 Supports CIDR ranges
             @since 1.34 Renamed from $wgSquidServersNoPurge
     HTCPRouting:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Routing configuration for HTCP multicast purging. Add elements here to
@@ -2955,7 +2955,7 @@ config-schema:
             @see self::HTCPRouting
     UsePrivateIPs:
         default: false
-        description: 'Should forwarded Private IPs be accepted?'
+        description: Should forwarded Private IPs be accepted?
     CdnMatchParameterOrder:
         default: true
         description: |-
@@ -2982,7 +2982,7 @@ config-schema:
             in a html element with lang=XX attribute. This behavior can be overridden
             via hooks, see Title::getPageLanguage.
     GrammarForms:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Some languages need different word forms, usually for different cases.
@@ -2993,10 +2993,10 @@ config-schema:
             ```
     InterwikiMagic:
         default: true
-        description: 'Treat language links as magic connectors, not inline links'
+        description: "Treat language links as magic connectors, not inline links"
     HideInterlanguageLinks:
         default: false
-        description: 'Hide interlanguage links from the sidebar'
+        description: Hide interlanguage links from the sidebar
     ExtraInterlanguageLinkPrefixes:
         default: []
         type: array
@@ -3019,7 +3019,7 @@ config-schema:
               then map that custom language code to a language name in
               ExtraLanguageNames.
     InterlanguageLinkCodeMap:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Map of interlanguage link codes to language codes. This is useful to override
@@ -3027,13 +3027,13 @@ config-schema:
             exactly
             @since 1.35
     ExtraLanguageNames:
-        default: {  }
+        default: { }
         type: object
-        description: 'List of language names or overrides for default names in Names.php'
+        description: List of language names or overrides for default names in Names.php
     ExtraLanguageCodes:
         default:
             bh: bho
-            'no': nb
+            no: nb
             simple: en
         type: object
         description: |-
@@ -3047,7 +3047,7 @@ config-schema:
             value in $wgExtraLanguageCodes will be used.
             @since 1.29
     DummyLanguageCodes:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Functionally the same as $wgExtraLanguageCodes, but deprecated. Instead of
@@ -3089,10 +3089,10 @@ config-schema:
             Interface messages will be loaded from the database.
     MaxMsgCacheEntrySize:
         default: 10000
-        description: 'Maximum entry size in the message cache, in bytes'
+        description: "Maximum entry size in the message cache, in bytes"
     DisableLangConversion:
         default: false
-        description: 'Whether to enable language variant conversion.'
+        description: Whether to enable language variant conversion.
     DisableTitleConversion:
         default: false
         description: |-
@@ -3109,7 +3109,7 @@ config-schema:
             Whether to enable the pig Latin variant of English (en-x-piglatin),
             used to ease variant development work.
     DisabledVariants:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Disabled variants array of language variant conversion.
@@ -3154,7 +3154,7 @@ config-schema:
             registration forms; edit the "loginlanguagelinks" message to
             customise these.
     ForceUIMsgAsContentMsg:
-        default: {  }
+        default: { }
         type: object
         description: |-
             When translating messages with wfMessage(), it is not always clear what
@@ -3187,7 +3187,7 @@ config-schema:
             @since 1.32
     Localtimezone:
         dynamicDefault:
-            callback: [MediaWiki\MainConfigSchema, getDefaultLocaltimezone]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultLocaltimezone ]
         description: |-
             Fake out the timezone that the server thinks it's in. This will be used for
             date display and not for what's stored in the DB. Leave to null to retain
@@ -3209,8 +3209,8 @@ config-schema:
         default: null
     LocalTZoffset:
         dynamicDefault:
-            use: [Localtimezone]
-            callback: [MediaWiki\MainConfigSchema, getDefaultLocalTZoffset]
+            use: [ Localtimezone ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultLocalTZoffset ]
         description: |-
             Set an offset from UTC in minutes to use for the default timezone setting
             for anonymous users and new user accounts.
@@ -3219,7 +3219,7 @@ config-schema:
             By default, this will be set to match $wgLocaltimezone.
         default: null
     OverrideUcfirstCharacters:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Map of Unicode characters for which capitalization is overridden in
@@ -3229,7 +3229,7 @@ config-schema:
             @since 1.34
     MimeType:
         default: text/html
-        description: 'The default Content-Type header.'
+        description: The default Content-Type header.
     Html5Version:
         default: null
         description: |-
@@ -3246,7 +3246,7 @@ config-schema:
             "Publish page"/"Publish changes".
             @since 1.28
     XhtmlNamespaces:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Permit other namespaces in addition to the w3.org default.
@@ -3259,7 +3259,7 @@ config-schema:
             element, but IE needs it there in some circumstances.
             This is ignored if $wgMimeType is set to a non-XML MIME type.
     SiteNotice:
-        default: ''
+        default: ""
         description: |-
             Site notice shown at the top of each page
             MediaWiki:Sitenotice page, which will override this. You can also
@@ -3277,7 +3277,7 @@ config-schema:
             @since 1.37
             @see https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html
     SkinMetaTags:
-        default: {  }
+        default: { }
         type: object
         description: |-
             An array of open graph tags which should be added by all skins.
@@ -3295,7 +3295,7 @@ config-schema:
             Fallback skin used when the skin defined by $wgDefaultSkin can't be found.
             @since 1.24
     SkipSkins:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Specify the names of skins that should not be presented in the list of
@@ -3306,7 +3306,7 @@ config-schema:
             @see \SkinFactory::getAllowedSkins
     DisableOutputCompression:
         default: false
-        description: 'Disable output compression (enabled by default if zlib is available)'
+        description: Disable output compression (enabled by default if zlib is available)
     FragmentMode:
         default:
             - html5
@@ -3345,7 +3345,7 @@ config-schema:
     FooterIcons:
         default:
             copyright: { copyright: [] }
-            poweredby: { mediawiki: { src: null, url: 'https://www.mediawiki.org/', alt: 'Powered by MediaWiki', lang: en } }
+            poweredby: { mediawiki: { src: null, url: "https://www.mediawiki.org/", alt: Powered by MediaWiki, lang: en } }
         type: object
         description: |-
             Abstract list of footer icons for skins in place of old copyrightico and poweredbyico code
@@ -3384,7 +3384,7 @@ config-schema:
             - false = split login and create account into two separate links
     Edititis:
         default: false
-        description: 'Display user edit counts in various prominent places.'
+        description: Display user edit counts in various prominent places.
     Send404Code:
         default: true
         description: |-
@@ -3429,7 +3429,7 @@ config-schema:
                 'wikit' => 'https://mySpecialWiki.com'
             ];
     ResourceModules:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Define extra client-side modules to be registered with ResourceLoader.
@@ -3665,7 +3665,7 @@ config-schema:
             ```
             @since 1.17
     ResourceModuleSkinStyles:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Add extra skin-specific styles to a resource module.
@@ -3742,7 +3742,7 @@ config-schema:
             ];
             ```
     ResourceLoaderSources:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Extensions should register foreign module sources here. 'local' is a
@@ -3755,13 +3755,13 @@ config-schema:
     ResourceBasePath:
         default: null
         dynamicDefault:
-            use: [ScriptPath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultResourceBasePath]
+            use: [ ScriptPath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultResourceBasePath ]
         description: |-
             The default 'remoteBasePath' value for instances of MediaWiki\ResourceLoader\FileModule.
             Defaults to $wgScriptPath.
     ResourceLoaderMaxage:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Override how long a CDN or browser may cache a ResourceLoader HTTP response.
@@ -3857,8 +3857,8 @@ config-schema:
     MetaNamespace:
         default: false
         dynamicDefault:
-            use: [Sitename]
-            callback: [MediaWiki\MainConfigSchema, getDefaultMetaNamespace]
+            use: [ Sitename ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultMetaNamespace ]
         description: |-
             Name of the project namespace. If left set to false, $wgSitename will be
             used instead.
@@ -3873,7 +3873,7 @@ config-schema:
         default:
             -2: Media
             -1: Special
-            0: ''
+            0: ""
             1: Talk
             2: User
             3: User_talk
@@ -3895,7 +3895,7 @@ config-schema:
             Must not be changed directly in configuration or by extensions, use $wgExtraNamespaces
             instead.
     ExtraNamespaces:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Additional namespaces. If the namespaces defined in Language.php and
@@ -3919,7 +3919,7 @@ config-schema:
             ```
             @todo Add a note about maintenance/namespaceDupes.php
     ExtraGenderNamespaces:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Same as above, but for namespaces with gender distinction.
@@ -3927,7 +3927,7 @@ config-schema:
             using $wgExtraNamespaces for the same index.
             @since 1.18
     NamespaceAliases:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Define extra namespace aliases.
@@ -3947,7 +3947,7 @@ config-schema:
             including those defined by other means.
     LegalTitleChars:
         default: ' %!"$&''()*,\-.\/0-9:;=?@A-Z\\^_`a-z~\x80-\xFF+'
-        deprecated: 'since 1.41; use Extension:TitleBlacklist to customize'
+        deprecated: "since 1.41; use Extension:TitleBlacklist to customize"
         description: |-
             Allowed title characters -- regex character class
             Don't change this unless you know what you're doing
@@ -3977,7 +3977,7 @@ config-schema:
             appearing with a capital at the beginning of a sentence will *not* go to the
             same place as links in the middle of a sentence using a lowercase initial.
     CapitalLinkOverrides:
-        default: {  }
+        default: { }
         type: object
         description: |-
             @since 1.16 - This can now be set per-namespace. Some special namespaces (such as Special,
@@ -4073,7 +4073,7 @@ config-schema:
             Note, recent changes feeds use only the first entry in this array. See $wgRCFeeds.
     InterwikiExpiry:
         default: 10800
-        description: 'Expiry time for cache of interwiki table'
+        description: Expiry time for cache of interwiki table
     InterwikiCache:
         default: false
         type:
@@ -4103,7 +4103,7 @@ config-schema:
             - 3: site levels
     InterwikiFallbackSite:
         default: wiki
-        description: 'Fallback site, if unable to resolve from cache'
+        description: "Fallback site, if unable to resolve from cache"
     RedirectSources:
         default: false
         description: |-
@@ -4127,7 +4127,7 @@ config-schema:
             @since 1.21
     MaxTocLevel:
         default: 999
-        description: 'Maximum indent level of toc.'
+        description: Maximum indent level of toc.
     MaxPPNodeCount:
         default: 1000000
         description: |-
@@ -4142,37 +4142,37 @@ config-schema:
             stop the parser before it hits the xdebug limit.
     MaxPPExpandDepth:
         default: 100
-        description: '@see self::MaxTemplateDepth'
+        description: "@see self::MaxTemplateDepth"
     UrlProtocols:
         default:
-            - 'bitcoin:'
-            - 'ftp://'
-            - 'ftps://'
-            - 'geo:'
-            - 'git://'
-            - 'gopher://'
-            - 'http://'
-            - 'https://'
-            - 'irc://'
-            - 'ircs://'
-            - 'magnet:'
-            - 'mailto:'
-            - 'matrix:'
-            - 'mms://'
-            - 'news:'
-            - 'nntp://'
-            - 'redis://'
-            - 'sftp://'
-            - 'sip:'
-            - 'sips:'
-            - 'sms:'
-            - 'ssh://'
-            - 'svn://'
-            - 'tel:'
-            - 'telnet://'
-            - 'urn:'
-            - 'worldwind://'
-            - 'xmpp:'
+            - "bitcoin:"
+            - "ftp://"
+            - "ftps://"
+            - "geo:"
+            - "git://"
+            - "gopher://"
+            - "http://"
+            - "https://"
+            - "irc://"
+            - "ircs://"
+            - "magnet:"
+            - "mailto:"
+            - "matrix:"
+            - "mms://"
+            - "news:"
+            - "nntp://"
+            - "redis://"
+            - "sftp://"
+            - "sip:"
+            - "sips:"
+            - "sms:"
+            - "ssh://"
+            - "svn://"
+            - "tel:"
+            - "telnet://"
+            - "urn:"
+            - "worldwind://"
+            - "xmpp:"
             - //
         type: array
         description: |-
@@ -4184,12 +4184,12 @@ config-schema:
             @see \MediaWiki\Utils\UrlUtils::parse()
     CleanSignatures:
         default: true
-        description: 'If true, removes (by substituting) templates in signatures.'
+        description: "If true, removes (by substituting) templates in signatures."
     AllowExternalImages:
         default: false
-        description: 'Whether to allow inline image pointing to other websites'
+        description: Whether to allow inline image pointing to other websites
     AllowExternalImagesFrom:
-        default: ''
+        default: ""
         description: |-
             If the above is false, you can specify an exception here. Image URLs
             that start with this string are then rendered, while all others are not.
@@ -4211,7 +4211,7 @@ config-schema:
             Or false to disable it
             @since 1.14
     TidyConfig:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Configuration for HTML postprocessing tool. Set this to a configuration
@@ -4304,7 +4304,7 @@ config-schema:
             externallinks dataset, use this value to override:
     AllowDisplayTitle:
         default: true
-        description: 'Allow DISPLAYTITLE to change title display'
+        description: Allow DISPLAYTITLE to change title display
     RestrictDisplayTitle:
         default: true
         description: |-
@@ -4323,7 +4323,7 @@ config-schema:
             Setting it to 'false' will disable the preprocessor cache.
     EnableScaryTranscluding:
         default: false
-        description: 'Enable interwiki transcluding.  Only when iw_trans=1 in the interwiki table.'
+        description: Enable interwiki transcluding.  Only when iw_trans=1 in the interwiki table.
     TranscludeCacheExpiry:
         default: 3600
         description: |-
@@ -4422,7 +4422,7 @@ config-schema:
             @since 1.36
     CentralIdLookupProviders:
         default:
-            local: { class: MediaWiki\User\CentralId\LocalIdLookup, services: [MainConfig, DBLoadBalancerFactory, HideUserUtils] }
+            local: { class: MediaWiki\User\CentralId\LocalIdLookup, services: [ MainConfig, DBLoadBalancerFactory, HideUserUtils ] }
         type: object
         description: |-
             Central ID lookup providers
@@ -4431,10 +4431,10 @@ config-schema:
     CentralIdLookupProvider:
         default: local
         type: string
-        description: 'Central ID lookup provider to use by default'
+        description: Central ID lookup provider to use by default
     UserRegistrationProviders:
         default:
-            local: { class: MediaWiki\User\Registration\LocalUserRegistrationProvider, services: [UserFactory, ConnectionProvider] }
+            local: { class: MediaWiki\User\Registration\LocalUserRegistrationProvider, services: [ UserFactory, ConnectionProvider ] }
         type: object
         description: |-
             User registration timestamp provider classes
@@ -4442,7 +4442,7 @@ config-schema:
     PasswordPolicy:
         default:
             policies: { bureaucrat: { MinimalPasswordLength: 10, MinimumPasswordLengthToLogin: 1 }, sysop: { MinimalPasswordLength: 10, MinimumPasswordLengthToLogin: 1 }, interface-admin: { MinimalPasswordLength: 10, MinimumPasswordLengthToLogin: 1 }, bot: { MinimalPasswordLength: 10, MinimumPasswordLengthToLogin: 1 }, default: { MinimalPasswordLength: { value: 8, suggestChangeOnLogin: true }, PasswordCannotBeSubstringInUsername: { value: true, suggestChangeOnLogin: true }, PasswordCannotMatchDefaults: { value: true, suggestChangeOnLogin: true }, MaximalPasswordLength: { value: 4096, suggestChangeOnLogin: true }, PasswordNotInCommonList: { value: true, suggestChangeOnLogin: true } } }
-            checks: { MinimalPasswordLength: [MediaWiki\Password\PasswordPolicyChecks, checkMinimalPasswordLength], MinimumPasswordLengthToLogin: [MediaWiki\Password\PasswordPolicyChecks, checkMinimumPasswordLengthToLogin], PasswordCannotBeSubstringInUsername: [MediaWiki\Password\PasswordPolicyChecks, checkPasswordCannotBeSubstringInUsername], PasswordCannotMatchDefaults: [MediaWiki\Password\PasswordPolicyChecks, checkPasswordCannotMatchDefaults], MaximalPasswordLength: [MediaWiki\Password\PasswordPolicyChecks, checkMaximalPasswordLength], PasswordNotInCommonList: [MediaWiki\Password\PasswordPolicyChecks, checkPasswordNotInCommonList] }
+            checks: { MinimalPasswordLength: [ MediaWiki\Password\PasswordPolicyChecks, checkMinimalPasswordLength ], MinimumPasswordLengthToLogin: [ MediaWiki\Password\PasswordPolicyChecks, checkMinimumPasswordLengthToLogin ], PasswordCannotBeSubstringInUsername: [ MediaWiki\Password\PasswordPolicyChecks, checkPasswordCannotBeSubstringInUsername ], PasswordCannotMatchDefaults: [ MediaWiki\Password\PasswordPolicyChecks, checkPasswordCannotMatchDefaults ], MaximalPasswordLength: [ MediaWiki\Password\PasswordPolicyChecks, checkMaximalPasswordLength ], PasswordNotInCommonList: [ MediaWiki\Password\PasswordPolicyChecks, checkPasswordNotInCommonList ] }
         type: object
         mergeStrategy: array_replace_recursive
         description: |-
@@ -4507,7 +4507,7 @@ config-schema:
         default: null
         type:
             - object
-            - 'null'
+            - "null"
         description: |-
             Configure AuthManager
             All providers are constructed using ObjectFactory, see that for the general
@@ -4526,8 +4526,8 @@ config-schema:
     AuthManagerAutoConfig:
         default:
             preauth: { MediaWiki\Auth\ThrottlePreAuthenticationProvider: { class: MediaWiki\Auth\ThrottlePreAuthenticationProvider, sort: 0 } }
-            primaryauth: { MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider: { class: MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider, services: [DBLoadBalancerFactory, UserOptionsLookup], args: [{ authoritative: false }], sort: 0 }, MediaWiki\Auth\LocalPasswordPrimaryAuthenticationProvider: { class: MediaWiki\Auth\LocalPasswordPrimaryAuthenticationProvider, services: [DBLoadBalancerFactory], args: [{ authoritative: true }], sort: 100 } }
-            secondaryauth: { MediaWiki\Auth\CheckBlocksSecondaryAuthenticationProvider: { class: MediaWiki\Auth\CheckBlocksSecondaryAuthenticationProvider, sort: 0 }, MediaWiki\Auth\ResetPasswordSecondaryAuthenticationProvider: { class: MediaWiki\Auth\ResetPasswordSecondaryAuthenticationProvider, sort: 100 }, MediaWiki\Auth\EmailNotificationSecondaryAuthenticationProvider: { class: MediaWiki\Auth\EmailNotificationSecondaryAuthenticationProvider, services: [DBLoadBalancerFactory], sort: 200 } }
+            primaryauth: { MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider: { class: MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider, services: [ DBLoadBalancerFactory, UserOptionsLookup ], args: [ { authoritative: false } ], sort: 0 }, MediaWiki\Auth\LocalPasswordPrimaryAuthenticationProvider: { class: MediaWiki\Auth\LocalPasswordPrimaryAuthenticationProvider, services: [ DBLoadBalancerFactory ], args: [ { authoritative: true } ], sort: 100 } }
+            secondaryauth: { MediaWiki\Auth\CheckBlocksSecondaryAuthenticationProvider: { class: MediaWiki\Auth\CheckBlocksSecondaryAuthenticationProvider, sort: 0 }, MediaWiki\Auth\ResetPasswordSecondaryAuthenticationProvider: { class: MediaWiki\Auth\ResetPasswordSecondaryAuthenticationProvider, sort: 100 }, MediaWiki\Auth\EmailNotificationSecondaryAuthenticationProvider: { class: MediaWiki\Auth\EmailNotificationSecondaryAuthenticationProvider, services: [ DBLoadBalancerFactory ], sort: 200 } }
         type: object
         mergeStrategy: array_plus_2d
         description: |-
@@ -4638,10 +4638,10 @@ config-schema:
         default:
             A: { class: MediaWiki\Password\MWOldPassword }
             B: { class: MediaWiki\Password\MWSaltedPassword }
-            pbkdf2-legacyA: { class: MediaWiki\Password\LayeredParameterizedPassword, types: [A, pbkdf2] }
-            pbkdf2-legacyB: { class: MediaWiki\Password\LayeredParameterizedPassword, types: [B, pbkdf2] }
+            pbkdf2-legacyA: { class: MediaWiki\Password\LayeredParameterizedPassword, types: [ A, pbkdf2 ] }
+            pbkdf2-legacyB: { class: MediaWiki\Password\LayeredParameterizedPassword, types: [ B, pbkdf2 ] }
             bcrypt: { class: MediaWiki\Password\BcryptPassword, cost: 9 }
-            pbkdf2: { class: MediaWiki\Password\Pbkdf2PasswordUsingOpenSSL, algo: sha512, cost: '30000', length: '64' }
+            pbkdf2: { class: MediaWiki\Password\Pbkdf2PasswordUsingOpenSSL, algo: sha512, cost: "30000", length: "64" }
             argon2: { class: MediaWiki\Password\Argon2Password, algo: auto }
         type: object
         description: |-
@@ -4676,7 +4676,7 @@ config-schema:
             has the effect of disabling password resets entirely
     MaxSigChars:
         default: 255
-        description: 'Maximum number of Unicode characters in signature'
+        description: Maximum number of Unicode characters in signature
     SignatureValidation:
         default: warning
         description: |-
@@ -4704,21 +4704,21 @@ config-schema:
             script ./maintenance/checkUsernames.php once you have changed this value.
     ReservedUsernames:
         default:
-            - 'MediaWiki default'
-            - 'Conversion script'
-            - 'Maintenance script'
-            - 'Template namespace initialisation script'
+            - MediaWiki default
+            - Conversion script
+            - Maintenance script
+            - Template namespace initialisation script
             - ScriptImporter
-            - 'Delete page script'
-            - 'Move page script'
-            - 'Command line script'
-            - 'Unknown user'
-            - 'msg:double-redirect-fixer'
-            - 'msg:usermessage-editor'
-            - 'msg:proxyblocker'
-            - 'msg:sorbs'
-            - 'msg:spambot_username'
-            - 'msg:autochange-username'
+            - Delete page script
+            - Move page script
+            - Command line script
+            - Unknown user
+            - "msg:double-redirect-fixer"
+            - "msg:usermessage-editor"
+            - "msg:proxyblocker"
+            - "msg:sorbs"
+            - "msg:spambot_username"
+            - "msg:autochange-username"
         type: array
         description: |-
             Array of usernames which may not be registered or logged in from
@@ -4751,7 +4751,7 @@ config-schema:
             imagesize: 2
             minordefault: 0
             newpageshidepatrolled: 0
-            nickname: ''
+            nickname: ""
             norollbackdiff: 0
             prefershttps: 1
             previewonfirst: 0
@@ -4807,7 +4807,7 @@ config-schema:
             only.
             @see self::ConditionalUserOptions
     ConditionalUserOptions:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Conditional defaults for user options
@@ -4836,15 +4836,15 @@ config-schema:
     HiddenPrefs:
         default: []
         type: array
-        description: 'An array of preferences to not show for the user'
+        description: An array of preferences to not show for the user
     InvalidUsernameCharacters:
-        default: '@:>='
+        default: "@:>="
         description: |-
             Characters to prevent during new account creations.
             This is used in a regular expression character class during
             registration (regex metacharacters like / are escaped).
     UserrightsInterwikiDelimiter:
-        default: '@'
+        default: "@"
         description: |-
             Character used as a delimiter when testing for interwiki userrights
             (In Special:UserRights, it is possible to modify users on different
@@ -4863,7 +4863,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Versioning for authentication tokens.
             If non-null, this is combined with the user's secret (the user_token field
@@ -4873,8 +4873,8 @@ config-schema:
     SessionProviders:
         type: object
         default:
-            MediaWiki\Session\CookieSessionProvider: { class: MediaWiki\Session\CookieSessionProvider, args: [{ priority: 30 }] }
-            MediaWiki\Session\BotPasswordSessionProvider: { class: MediaWiki\Session\BotPasswordSessionProvider, args: [{ priority: 75 }], services: [GrantsInfo] }
+            MediaWiki\Session\CookieSessionProvider: { class: MediaWiki\Session\CookieSessionProvider, args: [ { priority: 30 } ] }
+            MediaWiki\Session\BotPasswordSessionProvider: { class: MediaWiki\Session\BotPasswordSessionProvider, args: [ { priority: 75 } ], services: [ GrantsInfo ] }
         description: |-
             MediaWiki\Session\SessionProvider configuration.
             Values are ObjectFactory specifications for the SessionProviders to be
@@ -4885,14 +4885,14 @@ config-schema:
         properties:
             known: { type: boolean, default: false }
             enabled: { type: boolean, default: false }
-            actions: { type: array, default: [edit] }
+            actions: { type: array, default: [ edit ] }
             genPattern: { type: string, default: ~$1 }
-            matchPattern: { type: [string, array, 'null'], default: null }
-            reservedPattern: { type: [string, 'null'], default: ~$1 }
+            matchPattern: { type: [ string, array, "null" ], default: null }
+            reservedPattern: { type: [ string, "null" ], default: ~$1 }
             serialProvider: { type: object, default: { type: local, useYear: true } }
             serialMapping: { type: object, default: { type: readable-numeric } }
-            expireAfterDays: { type: [integer, 'null'], default: 90 }
-            notifyBeforeExpirationDays: { type: [integer, 'null'], default: 10 }
+            expireAfterDays: { type: [ integer, "null" ], default: 90 }
+            notifyBeforeExpirationDays: { type: [ integer, "null" ], default: 10 }
         type: object
         description: |-
             Configuration for automatic creation of temporary accounts on page save.
@@ -4965,10 +4965,10 @@ config-schema:
     AutoblockExemptions:
         default: []
         type: array
-        description: 'List of IP addresses or CIDR ranges that are exempt from autoblocks.'
+        description: List of IP addresses or CIDR ranges that are exempt from autoblocks.
     AutoblockExpiry:
         default: 86400
-        description: 'Number of seconds before autoblock entries expire. Default 86400 = 1 day.'
+        description: Number of seconds before autoblock entries expire. Default 86400 = 1 day.
     BlockAllowsUTEdit:
         default: true
         description: |-
@@ -5081,7 +5081,7 @@ config-schema:
             additionalProperties: { type: boolean }
         mergeStrategy: array_plus_2d
         default:
-            '*': { createaccount: true, read: true, edit: true, createpage: true, createtalk: true, viewmyprivateinfo: true, editmyprivateinfo: true, editmyoptions: true }
+            "*": { createaccount: true, read: true, edit: true, createpage: true, createtalk: true, viewmyprivateinfo: true, editmyprivateinfo: true, editmyoptions: true }
             user: { move: true, move-subpages: true, move-rootuserpages: true, move-categorypages: true, movefile: true, read: true, edit: true, createpage: true, createtalk: true, upload: true, reupload: true, reupload-shared: true, minoredit: true, editmyusercss: true, editmyuserjson: true, editmyuserjs: true, editmyuserjsredirect: true, sendemail: true, applychangetags: true, changetags: true, editcontentmodel: true, viewmywatchlist: true, editmywatchlist: true }
             autoconfirmed: { autoconfirmed: true, editsemiprotected: true }
             bot: { bot: true, autoconfirmed: true, editsemiprotected: true, nominornewtalk: true, autopatrol: true, suppressredirect: true, apihighlimits: true }
@@ -5120,7 +5120,7 @@ config-schema:
             @since 1.41
             @see \MediaWiki\User\UserGroupManager::getUserPrivilegedGroups()
     RevokePermissions:
-        default: {  }
+        default: { }
         type: object
         mergeStrategy: array_plus_2d
         description: |-
@@ -5130,7 +5130,7 @@ config-schema:
             Improperly setting this could mean that your users will be unable to perform
             certain essential tasks, so use at your own risk!
     GroupInheritsPermissions:
-        default: {  }
+        default: { }
         type: object
         additionalProperties:
             type: string
@@ -5150,13 +5150,13 @@ config-schema:
             @since 1.38
     ImplicitGroups:
         default:
-            - '*'
+            - "*"
             - user
             - autoconfirmed
         type: array
-        description: 'Implicit groups, aren''t shown on Special:Listusers or somewhere else'
+        description: "Implicit groups, aren't shown on Special:Listusers or somewhere else"
     GroupsAddToSelf:
-        default: {  }
+        default: { }
         type: object
         description: |-
             A map of group names that the user is in, to group names that those users
@@ -5176,9 +5176,9 @@ config-schema:
             This allows users in the '*' group (i.e. any user) to remove themselves from
             any group that they happen to be in.
     GroupsRemoveFromSelf:
-        default: {  }
+        default: { }
         type: object
-        description: '@see self::GroupsAddToSelf'
+        description: "@see self::GroupsAddToSelf"
     RestrictionTypes:
         default:
             - create
@@ -5194,7 +5194,7 @@ config-schema:
             applicable to a specific title (create and upload)
     RestrictionLevels:
         default:
-            - ''
+            - ""
             - autoconfirmed
             - sysop
         type: array
@@ -5230,7 +5230,7 @@ config-schema:
             'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility.
             'sysop' is not changed, since it really shouldn't be here.
     NamespaceProtection:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Set the minimum permissions required to edit pages in each
@@ -5238,7 +5238,7 @@ config-schema:
             have all of them to edit pages in that namespace.
             @note NS_MEDIAWIKI is implicitly restricted to 'editinterface'.
     NonincludableNamespaces:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Pages in namespaces in this array can not be used as templates.
@@ -5275,7 +5275,7 @@ config-schema:
             ```
     Autopromote:
         default:
-            autoconfirmed: ['&', [1, null], [2, null]]
+            autoconfirmed: [ "&", [ 1, null ], [ 2, null ] ]
         type: object
         description: |-
             Array containing the conditions of automatic promotion of a user to specific groups.
@@ -5357,7 +5357,7 @@ config-schema:
             only new groups the user was autopromoted to.
             @since 1.44
     AddGroups:
-        default: {  }
+        default: { }
         type: object
         mergeStrategy: array_merge_recursive
         description: |-
@@ -5381,10 +5381,10 @@ config-schema:
             $wgRemoveGroups['sysop'] = [ 'sysop', 'bot' ];
             ```
     RemoveGroups:
-        default: {  }
+        default: { }
         type: object
         mergeStrategy: array_merge_recursive
-        description: '@see self::AddGroups'
+        description: "@see self::AddGroups"
     AvailableRights:
         default: []
         type: array
@@ -5526,7 +5526,7 @@ config-schema:
     SummarySpamRegex:
         default: []
         type: array
-        description: 'Same as SpamRegex except for edit summaries'
+        description: Same as SpamRegex except for edit summaries
     EnableDnsBlacklist:
         default: false
         description: |-
@@ -5590,22 +5590,22 @@ config-schema:
             (transparent) proxies without needing to block the proxies themselves.
     RateLimits:
         default:
-            edit: { ip: [8, 60], newbie: [8, 60], user: [90, 60] }
-            move: { newbie: [2, 120], user: [8, 60] }
-            upload: { ip: [8, 60], newbie: [8, 60] }
-            rollback: { user: [10, 60], newbie: [5, 120] }
-            mailpassword: { ip: [5, 3600] }
-            sendemail: { ip: [5, 86400], newbie: [5, 86400], user: [20, 86400] }
-            changeemail: { ip-all: [10, 3600], user: [4, 86400] }
-            confirmemail: { ip-all: [10, 3600], user: [4, 86400] }
-            purge: { ip: [30, 60], user: [30, 60] }
-            linkpurge: { ip: [30, 60], user: [30, 60] }
-            renderfile: { ip: [700, 30], user: [700, 30] }
-            renderfile-nonstandard: { ip: [70, 30], user: [70, 30] }
-            stashedit: { ip: [30, 60], newbie: [30, 60] }
-            stashbasehtml: { ip: [5, 60], newbie: [5, 60] }
-            changetags: { ip: [8, 60], newbie: [8, 60] }
-            editcontentmodel: { newbie: [2, 120], user: [8, 60] }
+            edit: { ip: [ 8, 60 ], newbie: [ 8, 60 ], user: [ 90, 60 ] }
+            move: { newbie: [ 2, 120 ], user: [ 8, 60 ] }
+            upload: { ip: [ 8, 60 ], newbie: [ 8, 60 ] }
+            rollback: { user: [ 10, 60 ], newbie: [ 5, 120 ] }
+            mailpassword: { ip: [ 5, 3600 ] }
+            sendemail: { ip: [ 5, 86400 ], newbie: [ 5, 86400 ], user: [ 20, 86400 ] }
+            changeemail: { ip-all: [ 10, 3600 ], user: [ 4, 86400 ] }
+            confirmemail: { ip-all: [ 10, 3600 ], user: [ 4, 86400 ] }
+            purge: { ip: [ 30, 60 ], user: [ 30, 60 ] }
+            linkpurge: { ip: [ 30, 60 ], user: [ 30, 60 ] }
+            renderfile: { ip: [ 700, 30 ], user: [ 700, 30 ] }
+            renderfile-nonstandard: { ip: [ 70, 30 ], user: [ 70, 30 ] }
+            stashedit: { ip: [ 30, 60 ], newbie: [ 30, 60 ] }
+            stashbasehtml: { ip: [ 5, 60 ], newbie: [ 5, 60 ] }
+            changetags: { ip: [ 8, 60 ], newbie: [ 8, 60 ] }
+            editcontentmodel: { newbie: [ 2, 120 ], user: [ 8, 60 ] }
         type: object
         mergeStrategy: array_plus_2d
         description: |-
@@ -5792,7 +5792,7 @@ config-schema:
     EnableBotPasswords:
         default: true
         type: boolean
-        description: '@since 1.27'
+        description: "@since 1.27"
     BotPasswordsCluster:
         default: false
         type:
@@ -5815,7 +5815,7 @@ config-schema:
             @deprecated since 1.42 Use $wgVirtualDomainsMapping instead.
     SecretKey:
         default: false
-        description: 'This should always be customised in LocalSettings.php'
+        description: This should always be customised in LocalSettings.php
     AllowUserJs:
         default: false
         description: |-
@@ -5836,10 +5836,10 @@ config-schema:
             are available to users.
     UseSiteJs:
         default: true
-        description: 'Use the site''s Javascript page?'
+        description: "Use the site's Javascript page?"
     UseSiteCss:
         default: true
-        description: 'Use the site''s Cascading Style Sheets (CSS)?'
+        description: "Use the site's Cascading Style Sheets (CSS)?"
     BreakFrames:
         default: false
         description: |-
@@ -5893,20 +5893,20 @@ config-schema:
             @since 1.32
     CSPFalsePositiveUrls:
         default:
-            'https://3hub.co': true
-            'https://morepro.info': true
-            'https://p.ato.mx': true
-            'https://s.ato.mx': true
-            'https://adserver.adtech.de': true
-            'https://ums.adtechus.com': true
-            'https://cas.criteo.com': true
-            'https://cat.nl.eu.criteo.com': true
-            'https://atpixel.alephd.com': true
-            'https://rtb.metrigo.com': true
-            'https://d5p.de17a.com': true
-            'https://ad.lkqd.net/vpaid/vpaid.js': true
-            'https://ad.lkqd.net/vpaid/vpaid.js?fusion=1.0': true
-            'https://t.lkqd.net/t': true
+            "https://3hub.co": true
+            "https://morepro.info": true
+            "https://p.ato.mx": true
+            "https://s.ato.mx": true
+            "https://adserver.adtech.de": true
+            "https://ums.adtechus.com": true
+            "https://cas.criteo.com": true
+            "https://cat.nl.eu.criteo.com": true
+            "https://atpixel.alephd.com": true
+            "https://rtb.metrigo.com": true
+            "https://d5p.de17a.com": true
+            "https://ad.lkqd.net/vpaid/vpaid.js": true
+            "https://ad.lkqd.net/vpaid/vpaid.js?fusion=1.0": true
+            "https://t.lkqd.net/t": true
             chrome-extension: true
         type: object
         description: |-
@@ -5943,7 +5943,7 @@ config-schema:
             @since 1.27
     CookieExpiration:
         default: 2592000
-        description: 'Default cookie lifetime, in seconds. Setting to 0 makes all cookies session-only.'
+        description: "Default cookie lifetime, in seconds. Setting to 0 makes all cookies session-only."
     ExtendedLoginCookieExpiration:
         default: 15552000
         description: |-
@@ -5952,7 +5952,7 @@ config-schema:
             calculate the cookie lifetime. As with $wgCookieExpiration, 0 will make
             login cookies session-only.
     CookieDomain:
-        default: ''
+        default: ""
         description: |-
             Set to set an explicit domain on the login cookies eg, "justthis.domain.org"
             or ".any.subdomain.net"
@@ -5964,8 +5964,8 @@ config-schema:
     CookieSecure:
         default: detect
         dynamicDefault:
-            use: [ForceHTTPS]
-            callback: [MediaWiki\MainConfigSchema, getDefaultCookieSecure]
+            use: [ ForceHTTPS ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultCookieSecure ]
         description: |-
             Whether the "secure" flag should be set on the cookie. This can be:
               - true:      Set secure flag
@@ -5977,8 +5977,8 @@ config-schema:
     CookiePrefix:
         default: false
         dynamicDefault:
-            use: [SharedDB, SharedPrefix, SharedTables, DBname, DBprefix]
-            callback: [MediaWiki\MainConfigSchema, getDefaultCookiePrefix]
+            use: [ SharedDB, SharedPrefix, SharedTables, DBname, DBprefix ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultCookiePrefix ]
         description: |-
             Cookies generated by MediaWiki have names starting with this prefix. Set it
             to a string to use a custom prefix. Setting it to false causes the database
@@ -5993,7 +5993,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             The SameSite cookie attribute used for login cookies. This can be "Lax",
             "Strict", "None" or empty/null to omit the attribute.
@@ -6003,10 +6003,10 @@ config-schema:
     CacheVaryCookies:
         default: []
         type: array
-        description: 'A list of cookies that vary the cache (for use by extensions)'
+        description: A list of cookies that vary the cache (for use by extensions)
     SessionName:
         default: false
-        description: 'Override to customise the session name'
+        description: Override to customise the session name
     CookieSetOnAutoblock:
         default: true
         description: |-
@@ -6024,7 +6024,7 @@ config-schema:
             which case there is a possibility of an attacker discovering the names of revdeleted users,
             so it is best to use this in conjunction with $wgSecretKey being set).
     DebugLogFile:
-        default: ''
+        default: ""
         description: |-
             Enable verbose debug logging for all channels and log levels.
             See https://www.mediawiki.org/wiki/How_to_debug
@@ -6033,8 +6033,8 @@ config-schema:
             The debug log file should be not be web-accessible if it is used in
             a production environment, as may contain private data.
     DebugLogPrefix:
-        default: ''
-        description: 'Prefix for debug log lines'
+        default: ""
+        description: Prefix for debug log lines
     DebugRedirects:
         default: false
         description: |-
@@ -6082,7 +6082,7 @@ config-schema:
             Performance expectations for DB usage
             @since 1.26
     DebugLogGroups:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Map of string log group names to log destinations.
@@ -6136,7 +6136,7 @@ config-schema:
             Useful for developers and technical users trying to working on a closed wiki.
     SpecialVersionShowHooks:
         default: false
-        description: 'Show the contents of $wgHooks in Special:Version'
+        description: "Show the contents of $wgHooks in Special:Version"
     ShowExceptionDetails:
         default: false
         description: |-
@@ -6146,7 +6146,7 @@ config-schema:
             If set to false, only the exception type or class name will be exposed.
     LogExceptionBacktrace:
         default: true
-        description: 'If true, send the exception backtrace to the error log'
+        description: "If true, send the exception backtrace to the error log"
     PropagateErrors:
         default: true
         description: |-
@@ -6154,7 +6154,7 @@ config-schema:
             after logging them. The setting is ignored when the track_errors php.ini flag is true.
     ShowHostnames:
         default: false
-        description: 'Expose backend server host names through the API and various HTML comments'
+        description: Expose backend server host names through the API and various HTML comments
     OverrideHostname:
         default: false
         description: |-
@@ -6173,7 +6173,7 @@ config-schema:
             development warnings will not be generated for deprecations added in releases
             after the limit.
     Profiler:
-        default: {  }
+        default: { }
         type: object
         mergeStrategy: replace
         description: |-
@@ -6244,7 +6244,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Stats output target URI e.g. udp://127.0.0.1:8125
             If null, metrics will not be sent.
@@ -6254,7 +6254,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Stats output format
             If null, metrics will not be rendered nor sent.
@@ -6274,7 +6274,7 @@ config-schema:
         default: null
         type:
             - object
-            - 'null'
+            - "null"
         description: |-
             Configuration for OpenTelemetry instrumentation, or `null` to disable it.
             Possible keys:
@@ -6300,7 +6300,7 @@ config-schema:
             templates.
     EnableJavaScriptTest:
         default: false
-        description: 'Allow running of QUnit tests via [[Special:JavaScriptTest]].'
+        description: "Allow running of QUnit tests via [[Special:JavaScriptTest]]."
     CachePrefix:
         default: false
         description: |-
@@ -6315,7 +6315,7 @@ config-schema:
             @since 1.19
     DisableTextSearch:
         default: false
-        description: 'Set this to true to disable the full text search feature.'
+        description: Set this to true to disable the full text search feature.
     AdvancedSearchHighlighting:
         default: false
         description: |-
@@ -6348,7 +6348,7 @@ config-schema:
             sentence.
     SearchSuggestCacheExpiry:
         default: 1200
-        description: 'Expiry time for search suggestion responses'
+        description: Expiry time for search suggestion responses
     DisableSearchUpdate:
         default: false
         description: |-
@@ -6418,7 +6418,7 @@ config-schema:
             contributions page. E.g. searching for "1.2.3.4" will redirect to
             [[Special:Contributions/1.2.3.4]]
     SpecialSearchFormOptions:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Options for Special:Search completion widget form created by SearchFormWidget class.
@@ -6450,7 +6450,7 @@ config-schema:
             fall back to the old behavior (no merging).
     Diff:
         default: /usr/bin/diff
-        description: 'Path to the GNU diff utility.'
+        description: Path to the GNU diff utility.
     PreviewOnOpenNamespaces:
         default:
             14: true
@@ -6473,7 +6473,7 @@ config-schema:
             ting this variable false.
     CommandLineDarkBg:
         default: false
-        description: 'For colorized maintenance script output, is your terminal background dark ?'
+        description: "For colorized maintenance script output, is your terminal background dark ?"
     ReadOnly:
         default: null
         description: |-
@@ -6491,8 +6491,8 @@ config-schema:
     ReadOnlyFile:
         default: false
         dynamicDefault:
-            use: [UploadDirectory]
-            callback: [MediaWiki\MainConfigSchema, getDefaultReadOnlyFile]
+            use: [ UploadDirectory ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultReadOnlyFile ]
         description: |-
             If this lock file exists (size > 0), the wiki will be forced into read-only mode.
             Its contents will be shown to users as part of the read-only warning
@@ -6509,11 +6509,11 @@ config-schema:
             delete the old key from LocalSettings.php.
     GitBin:
         default: /usr/bin/git
-        description: 'Fully specified path to git binary'
+        description: Fully specified path to git binary
     GitRepositoryViewers:
         default:
-            'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)': 'https://gerrit.wikimedia.org/g/%R/+/%H'
-            'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)': 'https://gerrit.wikimedia.org/g/%R/+/%H'
+            "https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)": "https://gerrit.wikimedia.org/g/%R/+/%H"
+            "ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)": "https://gerrit.wikimedia.org/g/%R/+/%H"
         type: object
         description: |-
             Map GIT repository URLs to viewer URLs to provide links in Special:Version
@@ -6592,7 +6592,7 @@ config-schema:
             Special:Recentchangeslinked pages.
             @see \MediaWiki\SpecialPage\ChangesListSpecialPage::getLinkDays
     RCFeeds:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Configuration for feeds to which notifications about recent changes will be sent.
@@ -6696,7 +6696,7 @@ config-schema:
             @since 1.27
     Feed:
         default: true
-        description: 'Provide syndication feeds (RSS, Atom) for, e.g., Recentchanges, Newpages'
+        description: "Provide syndication feeds (RSS, Atom) for, e.g., Recentchanges, Newpages"
     FeedLimit:
         default: 50
         description: |-
@@ -6716,7 +6716,7 @@ config-schema:
             When generating Recentchanges RSS/Atom feed, diffs will not be generated for
             pages larger than this size.
     OverrideSiteFeed:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Override the site's default RSS/ATOM feed for recentchanges that appears on
@@ -6747,10 +6747,10 @@ config-schema:
             'atom', neither, or both.
     RCShowWatchingUsers:
         default: false
-        description: 'Show watching users in recent changes, watchlist and page history views'
+        description: "Show watching users in recent changes, watchlist and page history views"
     RCShowChangedSize:
         default: true
-        description: 'Show the amount of changed characters in recent changes'
+        description: Show the amount of changed characters in recent changes
     RCChangedSizeThreshold:
         default: 500
         description: |-
@@ -6856,10 +6856,10 @@ config-schema:
             and the purgeExpiredWatchlistItems.php maintenance script should be run periodically.
             @since 1.35
     WatchlistExpiryMaxDuration:
-        default: '1 year'
+        default: 1 year
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Relative maximum duration for watchlist expiries, as accepted by strtotime().
             This relates to finite watchlist expiries only. Pages can be watched indefinitely
@@ -6891,10 +6891,10 @@ config-schema:
             of the page will also be used as the link text if this variable is not set.
     RightsIcon:
         default: null
-        description: 'Override for copyright metadata.'
+        description: Override for copyright metadata.
     UseCopyrightUpload:
         default: false
-        description: 'Set this to true if you want detailed copyright information forms on Upload.'
+        description: Set this to true if you want detailed copyright information forms on Upload.
     MaxCredits:
         default: 0
         description: |-
@@ -6909,7 +6909,7 @@ config-schema:
             If there are more than $wgMaxCredits authors, show $wgMaxCredits of them.
             Otherwise, link to a separate credits page.
     ImportSources:
-        default: {  }
+        default: { }
         type: object
         description: |-
             List of interwiki prefixes for wikis we'll accept as sources for
@@ -6950,7 +6950,7 @@ config-schema:
             could get bogged down by very very long pages.
     ExportAllowListContributors:
         default: false
-        description: 'Return distinct author list (when not returning full history)'
+        description: Return distinct author list (when not returning full history)
     ExportMaxLinkDepth:
         default: 0
         description: |-
@@ -6967,7 +6967,7 @@ config-schema:
         description: 'Whether to allow the "export all pages in namespace" option'
     ExportAllowAll:
         default: false
-        description: 'Whether to allow exporting the entire wiki into a single file'
+        description: Whether to allow exporting the entire wiki into a single file
     ExportPagelistLimit:
         default: 5000
         description: |-
@@ -6975,7 +6975,7 @@ config-schema:
             GetPagesFromNamespace functions.
             @since 1.27
     XmlDumpSchemaVersion:
-        default: '0.11'
+        default: "0.11"
         description: |-
             The schema to use by default when generating XML dumps. This allows sites to control
             explicitly when to make breaking changes to their export and dump format.
@@ -7001,7 +7001,7 @@ config-schema:
             A list of callback functions which are called once MediaWiki is fully
             initialised
     ExtensionMessagesFiles:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Extension messages files.
@@ -7024,7 +7024,7 @@ config-schema:
             $wgExtensionMessagesFiles['ConfirmEdit'] = __DIR__.'/ConfirmEdit.i18n.php';
             ```
     MessagesDirs:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Extension messages directories.
@@ -7047,7 +7047,7 @@ config-schema:
             ```
             @since 1.23
     TranslationAliasesDirs:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Message directories containing JSON files for localisation of special page aliases.
@@ -7071,7 +7071,7 @@ config-schema:
             @unstable EXPERIMENTAL
             @since 1.42
     ExtensionEntryPointListFiles:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Array of files with list(s) of extension entry points to be used in
@@ -7079,9 +7079,9 @@ config-schema:
             @since 1.22
     EnableParserLimitReporting:
         default: true
-        description: 'Whether to include the NewPP limit report as a HTML comment'
+        description: Whether to include the NewPP limit report as a HTML comment
     ValidSkinNames:
-        default: {  }
+        default: { }
         type: object
         description: |-
             List of valid skin names
@@ -7102,14 +7102,14 @@ config-schema:
             skin to load. Use Skin::getSkinNames() as an accessor if you wish to have access to the
             full list.
     SpecialPages:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Special page list. This is an associative array mapping the (canonical) names of
             special pages to either a class name or a ObjectFactory spec to be instantiated, or a callback to use for
             creating the special page object. In all cases, the result must be an instance of SpecialPage.
     ExtensionCredits:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Add information about an installed extension, keyed by its type.
@@ -7157,7 +7157,7 @@ config-schema:
               as "GPL-2.0-or-later" or "MIT" (https://spdx.org/licenses/ for a list of identifiers).
             @see \MediaWiki\Specials\SpecialVersion::getCredits
     Hooks:
-        default: {  }
+        default: { }
         type: object
         mergeStrategy: array_merge_recursive
         description: |-
@@ -7201,9 +7201,9 @@ config-schema:
             refreshLinks: MediaWiki\JobQueue\Jobs\RefreshLinksJob
             deleteLinks: MediaWiki\JobQueue\Jobs\DeleteLinksJob
             htmlCacheUpdate: MediaWiki\JobQueue\Jobs\HTMLCacheUpdateJob
-            sendMail: { class: EmaillingJob, services: [Emailer] }
+            sendMail: { class: EmaillingJob, services: [ Emailer ] }
             enotifNotify: EnotifNotifyJob
-            fixDoubleRedirect: { class: MediaWiki\JobQueue\Jobs\DoubleRedirectJob, services: [RevisionLookup, MagicWordFactory, WikiPageFactory], needsPage: true }
+            fixDoubleRedirect: { class: MediaWiki\JobQueue\Jobs\DoubleRedirectJob, services: [ RevisionLookup, MagicWordFactory, WikiPageFactory ], needsPage: true }
             AssembleUploadChunks: MediaWiki\JobQueue\Jobs\AssembleUploadChunksJob
             PublishStashedFile: MediaWiki\JobQueue\Jobs\PublishStashedFileJob
             ThumbnailRender: MediaWiki\JobQueue\Jobs\ThumbnailRenderJob
@@ -7220,12 +7220,12 @@ config-schema:
             clearWatchlistNotifications: MediaWiki\Watchlist\ClearWatchlistNotificationsJob
             userOptionsUpdate: UserOptionsUpdateJob
             revertedTagUpdate: MediaWiki\JobQueue\Jobs\RevertedTagUpdateJob
-            'null': MediaWiki\JobQueue\Jobs\NullJob
+            "null": MediaWiki\JobQueue\Jobs\NullJob
             userEditCountInit: UserEditCountInitJob
-            parsoidCachePrewarm: { class: MediaWiki\JobQueue\Jobs\ParsoidCachePrewarmJob, services: [ParserOutputAccess, PageStore, RevisionLookup, ParsoidSiteConfig], needsPage: false }
-            renameUserTable: { class: MediaWiki\RenameUser\Job\RenameUserTableJob, services: [MainConfig, DBLoadBalancerFactory] }
-            renameUserDerived: { class: MediaWiki\RenameUser\Job\RenameUserDerivedJob, services: [RenameUserFactory, UserFactory] }
-            renameUser: { class: MediaWiki\RenameUser\Job\RenameUserTableJob, services: [MainConfig, DBLoadBalancerFactory] }
+            parsoidCachePrewarm: { class: MediaWiki\JobQueue\Jobs\ParsoidCachePrewarmJob, services: [ ParserOutputAccess, PageStore, RevisionLookup, ParsoidSiteConfig ], needsPage: false }
+            renameUserTable: { class: MediaWiki\RenameUser\Job\RenameUserTableJob, services: [ MainConfig, DBLoadBalancerFactory ] }
+            renameUserDerived: { class: MediaWiki\RenameUser\Job\RenameUserDerivedJob, services: [ RenameUserFactory, UserFactory ] }
+            renameUser: { class: MediaWiki\RenameUser\Job\RenameUserTableJob, services: [ MainConfig, DBLoadBalancerFactory ] }
         type: object
         description: |-
             Maps jobs to their handlers; extensions
@@ -7258,7 +7258,7 @@ config-schema:
               machine on your cluster has 'outside' web access you could restrict uploadFromUrl )
             These settings should be global to all wikis.
     JobBackoffThrottling:
-        default: {  }
+        default: { }
         type: object
         additionalProperties:
             type: number
@@ -7294,7 +7294,7 @@ config-schema:
             @since 1.29
     SpecialPageCacheUpdates:
         default:
-            Statistics: [MediaWiki\Deferred\SiteStatsUpdate, cacheUpdate]
+            Statistics: [ MediaWiki\Deferred\SiteStatsUpdate, cacheUpdate ]
         type: object
         description: |-
             Additional functions to be performed with updateSpecialPages.
@@ -7316,7 +7316,7 @@ config-schema:
             category instead of listing them as articles.
     CategoryPagingLimit:
         default: 200
-        description: 'Paging limit for categories'
+        description: Paging limit for categories
     CategoryCollation:
         default: uppercase
         description: |-
@@ -7373,7 +7373,7 @@ config-schema:
             @since 1.23
     LogTypes:
         default:
-            - ''
+            - ""
             - block
             - protect
             - rights
@@ -7426,7 +7426,7 @@ config-schema:
             used for the link text.
     LogNames:
         default:
-            '': all-logs-page
+            "": all-logs-page
             block: blocklogpage
             protect: protectlogpage
             rights: rightslog
@@ -7446,7 +7446,7 @@ config-schema:
             where TYPE is your log type, you don't need to use this array.
     LogHeaders:
         default:
-            '': alllogstext
+            "": alllogstext
             block: blocklogtext
             delete: dellogpagetext
             import: importlogpagetext
@@ -7465,7 +7465,7 @@ config-schema:
             @since 1.19, if you follow the naming convention log-description-TYPE,
             where TYPE is your log type, yoy don't need to use this array.
     LogActions:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Maps log actions to message keys, for formatting log entries of each type
@@ -7474,9 +7474,9 @@ config-schema:
             Extensions with custom log types may add to this array.
     LogActionsHandlers:
         default:
-            block/block: { class: MediaWiki\Logging\BlockLogFormatter, services: [TitleParser, NamespaceInfo] }
-            block/reblock: { class: MediaWiki\Logging\BlockLogFormatter, services: [TitleParser, NamespaceInfo] }
-            block/unblock: { class: MediaWiki\Logging\BlockLogFormatter, services: [TitleParser, NamespaceInfo] }
+            block/block: { class: MediaWiki\Logging\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }
+            block/reblock: { class: MediaWiki\Logging\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }
+            block/unblock: { class: MediaWiki\Logging\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }
             contentmodel/change: MediaWiki\Logging\ContentModelLogFormatter
             contentmodel/new: MediaWiki\Logging\ContentModelLogFormatter
             delete/delete: MediaWiki\Logging\DeleteLogFormatter
@@ -7494,23 +7494,23 @@ config-schema:
             managetags/create: MediaWiki\Logging\LogFormatter
             managetags/deactivate: MediaWiki\Logging\LogFormatter
             managetags/delete: MediaWiki\Logging\LogFormatter
-            merge/merge: { class: MediaWiki\Logging\MergeLogFormatter, services: [TitleParser] }
-            merge/merge-into: { class: MediaWiki\Logging\MergeLogFormatter, services: [TitleParser] }
-            move/move: { class: MediaWiki\Logging\MoveLogFormatter, services: [TitleParser] }
-            move/move_redir: { class: MediaWiki\Logging\MoveLogFormatter, services: [TitleParser] }
+            merge/merge: { class: MediaWiki\Logging\MergeLogFormatter, services: [ TitleParser ] }
+            merge/merge-into: { class: MediaWiki\Logging\MergeLogFormatter, services: [ TitleParser ] }
+            move/move: { class: MediaWiki\Logging\MoveLogFormatter, services: [ TitleParser ] }
+            move/move_redir: { class: MediaWiki\Logging\MoveLogFormatter, services: [ TitleParser ] }
             patrol/patrol: MediaWiki\Logging\PatrolLogFormatter
             patrol/autopatrol: MediaWiki\Logging\PatrolLogFormatter
-            protect/modify: { class: MediaWiki\Logging\ProtectLogFormatter, services: [TitleParser] }
-            protect/move_prot: { class: MediaWiki\Logging\ProtectLogFormatter, services: [TitleParser] }
-            protect/protect: { class: MediaWiki\Logging\ProtectLogFormatter, services: [TitleParser] }
-            protect/unprotect: { class: MediaWiki\Logging\ProtectLogFormatter, services: [TitleParser] }
-            renameuser/renameuser: { class: MediaWiki\Logging\RenameuserLogFormatter, services: [TitleParser] }
+            protect/modify: { class: MediaWiki\Logging\ProtectLogFormatter, services: [ TitleParser ] }
+            protect/move_prot: { class: MediaWiki\Logging\ProtectLogFormatter, services: [ TitleParser ] }
+            protect/protect: { class: MediaWiki\Logging\ProtectLogFormatter, services: [ TitleParser ] }
+            protect/unprotect: { class: MediaWiki\Logging\ProtectLogFormatter, services: [ TitleParser ] }
+            renameuser/renameuser: { class: MediaWiki\Logging\RenameuserLogFormatter, services: [ TitleParser ] }
             rights/autopromote: MediaWiki\Logging\RightsLogFormatter
             rights/rights: MediaWiki\Logging\RightsLogFormatter
-            suppress/block: { class: MediaWiki\Logging\BlockLogFormatter, services: [TitleParser, NamespaceInfo] }
+            suppress/block: { class: MediaWiki\Logging\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }
             suppress/delete: MediaWiki\Logging\DeleteLogFormatter
             suppress/event: MediaWiki\Logging\DeleteLogFormatter
-            suppress/reblock: { class: MediaWiki\Logging\BlockLogFormatter, services: [TitleParser, NamespaceInfo] }
+            suppress/reblock: { class: MediaWiki\Logging\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }
             suppress/revision: MediaWiki\Logging\DeleteLogFormatter
             tag/update: MediaWiki\Logging\TagLogFormatter
             upload/overwrite: MediaWiki\Logging\UploadLogFormatter
@@ -7526,17 +7526,17 @@ config-schema:
             @see \MediaWiki\Logging\LogFormatter
     ActionFilteredLogs:
         default:
-            block: { block: [block], reblock: [reblock], unblock: [unblock] }
-            contentmodel: { change: [change], new: [new] }
-            delete: { delete: [delete], delete_redir: [delete_redir, delete_redir2], restore: [restore], event: [event], revision: [revision] }
-            import: { interwiki: [interwiki], upload: [upload] }
-            managetags: { create: [create], delete: [delete], activate: [activate], deactivate: [deactivate] }
-            move: { move: [move], move_redir: [move_redir] }
-            newusers: { create: [create, newusers], create2: [create2], autocreate: [autocreate], byemail: [byemail] }
-            protect: { protect: [protect], modify: [modify], unprotect: [unprotect], move_prot: [move_prot] }
-            rights: { rights: [rights], autopromote: [autopromote] }
-            suppress: { event: [event], revision: [revision], delete: [delete], block: [block], reblock: [reblock] }
-            upload: { upload: [upload], overwrite: [overwrite], revert: [revert] }
+            block: { block: [ block ], reblock: [ reblock ], unblock: [ unblock ] }
+            contentmodel: { change: [ change ], new: [ new ] }
+            delete: { delete: [ delete ], delete_redir: [ delete_redir, delete_redir2 ], restore: [ restore ], event: [ event ], revision: [ revision ] }
+            import: { interwiki: [ interwiki ], upload: [ upload ] }
+            managetags: { create: [ create ], delete: [ delete ], activate: [ activate ], deactivate: [ deactivate ] }
+            move: { move: [ move ], move_redir: [ move_redir ] }
+            newusers: { create: [ create, newusers ], create2: [ create2 ], autocreate: [ autocreate ], byemail: [ byemail ] }
+            protect: { protect: [ protect ], modify: [ modify ], unprotect: [ unprotect ], move_prot: [ move_prot ] }
+            rights: { rights: [ rights ], autopromote: [ autopromote ] }
+            suppress: { event: [ event ], revision: [ revision ], delete: [ delete ], block: [ block ], reblock: [ reblock ] }
+            upload: { upload: [ upload ], overwrite: [ overwrite ], revert: [ revert ] }
         type: object
         description: |-
             List of log types that can be filtered by action types
@@ -7546,7 +7546,7 @@ config-schema:
             @since 1.27
     NewUserLog:
         default: true
-        description: 'Maintain a log of newusers at Special:Log/newusers?'
+        description: "Maintain a log of newusers at Special:Log/newusers?"
     PageCreationLog:
         default: true
         description: |-
@@ -7554,7 +7554,7 @@ config-schema:
             @since 1.32
     AllowSpecialInclusion:
         default: true
-        description: 'Allow special page inclusions such as {{Special:Allpages}}'
+        description: "Allow special page inclusions such as {{Special:Allpages}}"
     DisableQueryPageUpdate:
         default: false
         description: |-
@@ -7583,7 +7583,7 @@ config-schema:
             at Special:Contributions.
             @since 1.30
     Actions:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Map of allowed values for the "title=foo&action=<action>" parameter.
@@ -7591,13 +7591,13 @@ config-schema:
             See ActionFactory for the syntax. Core defaults are in ActionFactory::CORE_ACTIONS,
             anything here overrides that.
     DefaultRobotPolicy:
-        default: 'index,follow'
+        default: "index,follow"
         description: |-
             Default robot policy.  The default policy is to encourage indexing and fol-
             lowing of links.  It may be overridden on a per-namespace and/or per-page
             basis.
     NamespaceRobotPolicies:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Robot policies per namespaces. The default policy is given above, the array
@@ -7612,7 +7612,7 @@ config-schema:
             $wgNamespaceRobotPolicies = [ NS_TALK => 'noindex' ];
             ```
     ArticleRobotPolicies:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Robot policies per article. These override the per-namespace robot policies.
@@ -7641,7 +7641,7 @@ config-schema:
         default: null
         type:
             - array
-            - 'null'
+            - "null"
         description: |-
             An array of namespace keys in which the __INDEX__/__NOINDEX__ magic words
             will not function, so users can't decide whether pages in that namespace are
@@ -7663,7 +7663,7 @@ config-schema:
             requiring POST.
             @since 1.21
     APIModules:
-        default: {  }
+        default: { }
         type: object
         description: |-
             API module extensions.
@@ -7695,7 +7695,7 @@ config-schema:
             Extension modules may override the core modules.
             See ApiMain::MODULES for a list of the core modules.
     APIFormatModules:
-        default: {  }
+        default: { }
         type: object
         description: |-
             API format module extensions.
@@ -7703,7 +7703,7 @@ config-schema:
             Extension modules may override the core modules.
             See ApiMain::FORMATS for a list of the core format modules.
     APIMetaModules:
-        default: {  }
+        default: { }
         type: object
         description: |-
             API Query meta module extensions.
@@ -7711,7 +7711,7 @@ config-schema:
             Extension modules may override the core modules.
             See ApiQuery::QUERY_META_MODULES for a list of the core meta modules.
     APIPropModules:
-        default: {  }
+        default: { }
         type: object
         description: |-
             API Query prop module extensions.
@@ -7719,7 +7719,7 @@ config-schema:
             Extension modules may override the core modules.
             See ApiQuery::QUERY_PROP_MODULES for a list of the core prop modules.
     APIListModules:
-        default: {  }
+        default: { }
         type: object
         description: |-
             API Query list module extensions.
@@ -7749,13 +7749,13 @@ config-schema:
             This should be lower than the 'max lag' value in $wgLBFactoryConf.
     APIRequestLog:
         default: false
-        deprecated: 'since 1.43; use api or api-request $wgDebugLogGroups channel'
+        deprecated: since 1.43; use api or api-request $wgDebugLogGroups channel
         description: |-
             Log file or URL (TCP or UDP) to log API requests to, or false to disable
             API request logging
     APICacheHelpTimeout:
         default: 3600
-        description: 'Set the timeout for the API help text cache. If set to 0, caching disabled'
+        description: "Set the timeout for the API help text cache. If set to 0, caching disabled"
     APIUselessQueryPages:
         default:
             - MIMEsearch
@@ -7766,9 +7766,9 @@ config-schema:
             API queries.
     AjaxLicensePreview:
         default: true
-        description: 'Enable previewing licences via AJAX.'
+        description: Enable previewing licences via AJAX.
     CrossSiteAJAXdomains:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Settings for incoming cross-site AJAX requests:
@@ -7788,7 +7788,7 @@ config-schema:
             ];
             ```
     CrossSiteAJAXdomainExceptions:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Domains that should not be allowed to make AJAX requests,
@@ -7808,7 +7808,7 @@ config-schema:
             - Access-Control-Max-Age
             - Authorization
         type: array
-        description: 'List of allowed headers for cross-origin API requests.'
+        description: List of allowed headers for cross-origin API requests.
     RestAPIAdditionalRouteFiles:
         default: []
         type: array
@@ -7816,12 +7816,12 @@ config-schema:
             Additional REST API Route files.
             A common usage is to enable development/experimental endpoints only on test wikis.
     RestSandboxSpecs:
-        default: {  }
+        default: { }
         type: object
         additionalProperties:
             type: object
-            properties: { url: { type: string, format: url }, name: { type: string }, msg: { type: string, description: 'a message key' } }
-            required: [url]
+            properties: { url: { type: string, format: url }, name: { type: string }, msg: { type: string, description: a message key } }
+            required: [ url ]
         description: |-
             A list of OpenAPI specs to be made available for exploration on
             Special:RestSandbox. If none are given, Special:RestSandbox is disabled.
@@ -7837,7 +7837,7 @@ config-schema:
             document.
     MaxShellMemory:
         default: 307200
-        description: 'Maximum amount of virtual memory available to shell processes under linux, in KiB.'
+        description: "Maximum amount of virtual memory available to shell processes under linux, in KiB."
     MaxShellFileSize:
         default: 102400
         description: |-
@@ -7845,7 +7845,7 @@ config-schema:
             ImageMagick convert for example can be fairly hungry for scratch space
     MaxShellTime:
         default: 180
-        description: 'Maximum CPU time in seconds for shell processes under Linux'
+        description: Maximum CPU time in seconds for shell processes under Linux
     MaxShellWallClockTime:
         default: 180
         description: |-
@@ -7873,7 +7873,7 @@ config-schema:
             https://gerrit.wikimedia.org/r/#/c/40784
     PhpCli:
         default: /usr/bin/php
-        description: 'Executable path of the PHP cli binary. Should be set up on install.'
+        description: Executable path of the PHP cli binary. Should be set up on install.
     ShellRestrictionMethod:
         default: autodetect
         type:
@@ -7893,7 +7893,7 @@ config-schema:
             default: null
         type: object
         additionalProperties:
-            type: [string, boolean, 'null']
+            type: [ string, boolean, "null" ]
         description: |-
             Shell commands can be run on a remote server using Shellbox. To use this
             feature, set this to the URLs mapped by the service, and also configure $wgShellboxSecretKey.
@@ -7906,7 +7906,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             The secret key for HMAC verification of Shellbox requests. Set this to
             a long random string.
@@ -7915,7 +7915,7 @@ config-schema:
         default: /bin/sh
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             The POSIX-compatible shell to use when running scripts. This is used by
             some media handling shell commands.
@@ -7958,12 +7958,12 @@ config-schema:
             @since 1.29
     AsyncHTTPTimeout:
         default: 25
-        description: 'Timeout for Asynchronous (background) HTTP requests, in seconds.'
+        description: "Timeout for Asynchronous (background) HTTP requests, in seconds."
     HTTPProxy:
-        default: ''
-        description: 'Proxy to use for CURL requests.'
+        default: ""
+        description: Proxy to use for CURL requests.
     LocalVirtualHosts:
-        default: {  }
+        default: { }
         type: object
         description: |-
             A list of URL domains that will be routed to the proxy specified by
@@ -8011,10 +8011,10 @@ config-schema:
             @since 1.23
     UpdateRowsPerJob:
         default: 300
-        description: 'Number of rows to update per job'
+        description: Number of rows to update per job
     UpdateRowsPerQuery:
         default: 100
-        description: 'Number of rows to update per query'
+        description: Number of rows to update per query
     RedirectOnLogin:
         default: null
         description: |-
@@ -8142,7 +8142,7 @@ config-schema:
     EditRecoveryExpiry:
         default: 2592000
         type: integer
-        description: 'Number of seconds to keep edit recovery data after the edit is stored.'
+        description: Number of seconds to keep edit recovery data after the edit is stored.
     UseCodexSpecialBlock:
         default: false
         type: boolean
@@ -8164,7 +8164,7 @@ config-schema:
             Whether to show indicators on a page when it is protected.
             @since 1.43
     OutputPipelineStages:
-        default: {  }
+        default: { }
         type: object
         description: |-
             OutputPipelineStages to add to the DefaultOutputPipeline.
diff --git a/package-lock.json b/package-lock.json
index 29c5874..a9a321c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
 				"chai-openapi-response-validator": "^0.14.2",
 				"domino": "2.1.0",
 				"dotenv": "8.2.0",
-				"eslint-config-wikimedia": "0.29.1",
+				"eslint-config-wikimedia": "0.30.0",
 				"grunt": "1.6.1",
 				"grunt-banana-checker": "0.13.0",
 				"grunt-contrib-watch": "1.1.0",
@@ -7841,11 +7841,10 @@
 			}
 		},
 		"node_modules/eslint-config-wikimedia": {
-			"version": "0.29.1",
-			"resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.29.1.tgz",
-			"integrity": "sha512-4dbL5o3hKGSvreyrGZWLPoTDLFubZ575IQOPhUaTcpbTsi0u05TBEMsOyYkthTaK21vsFQqhSYtxp/xU93BSdA==",
+			"version": "0.30.0",
+			"resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.30.0.tgz",
+			"integrity": "sha512-i8ESzSoo0x3Jur/0JhAgCVPxbV51zfdI3MN3MVQPnjiFdmo21CNKmiBBmw8JnJ3fx/d5zHDrBa+yDjxSLpnDlA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"browserslist-config-wikimedia": "^0.7.0",
 				"eslint": "^8.57.0",
@@ -17227,8 +17226,13 @@
 			}
 		},
 		"node_modules/wdio-mediawiki": {
-			"resolved": "tests/selenium/wdio-mediawiki",
-			"link": true
+			"version": "3.0.0",
+			"resolved": "file:tests/selenium/wdio-mediawiki",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"mwbot": "2.1.3"
+			}
 		},
 		"node_modules/web-streams-polyfill": {
 			"version": "3.3.3",
@@ -17806,14 +17810,6 @@
 			"dependencies": {
 				"safe-buffer": "~5.2.0"
 			}
-		},
-		"tests/selenium/wdio-mediawiki": {
-			"version": "3.0.0",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"mwbot": "2.1.3"
-			}
 		}
 	},
 	"dependencies": {
@@ -23527,9 +23523,9 @@
 			}
 		},
 		"eslint-config-wikimedia": {
-			"version": "0.29.1",
-			"resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.29.1.tgz",
-			"integrity": "sha512-4dbL5o3hKGSvreyrGZWLPoTDLFubZ575IQOPhUaTcpbTsi0u05TBEMsOyYkthTaK21vsFQqhSYtxp/xU93BSdA==",
+			"version": "0.30.0",
+			"resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.30.0.tgz",
+			"integrity": "sha512-i8ESzSoo0x3Jur/0JhAgCVPxbV51zfdI3MN3MVQPnjiFdmo21CNKmiBBmw8JnJ3fx/d5zHDrBa+yDjxSLpnDlA==",
 			"dev": true,
 			"requires": {
 				"browserslist-config-wikimedia": "^0.7.0",
@@ -30497,7 +30493,8 @@
 			}
 		},
 		"wdio-mediawiki": {
-			"version": "file:tests/selenium/wdio-mediawiki",
+			"version": "3.0.0",
+			"dev": true,
 			"requires": {
 				"mwbot": "2.1.3"
 			}
diff --git a/package.json b/package.json
index e2df268..bffa2dc 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
 		"chai-openapi-response-validator": "^0.14.2",
 		"domino": "2.1.0",
 		"dotenv": "8.2.0",
-		"eslint-config-wikimedia": "0.29.1",
+		"eslint-config-wikimedia": "0.30.0",
 		"grunt": "1.6.1",
 		"grunt-banana-checker": "0.13.0",
 		"grunt-contrib-watch": "1.1.0",
diff --git a/resources/src/mediawiki.debug/debug.js b/resources/src/mediawiki.debug/debug.js
index 509d9e9..78c6168 100644
--- a/resources/src/mediawiki.debug/debug.js
+++ b/resources/src/mediawiki.debug/debug.js
@@ -1,5 +1,3 @@
-/* eslint-disable es-x/no-array-prototype-includes */
-
 ( function () {
 	'use strict';
 
diff --git a/resources/src/startup/startup.js b/resources/src/startup/startup.js
index 2f0d132..e01d813 100644
--- a/resources/src/startup/startup.js
+++ b/resources/src/startup/startup.js
@@ -49,9 +49,9 @@ function isCompatible() {
 		// https://caniuse.com/mdn-javascript_builtins_regexp_flags
 		// Edge 79+ (Chromium-based, rejects MSEdgeHTML-based Edge <= 18)
 		//
-		// eslint-disable-next-line es-x/no-promise, es-x/no-promise-prototype-finally, dot-notation
+		// eslint-disable-next-line es-x/no-promise-prototype-finally, dot-notation
 		typeof Promise === 'function' && Promise.prototype[ 'finally' ] &&
-		// eslint-disable-next-line es-x/no-regexp-prototype-flags
+
 		/./g.flags === 'g' &&
 
 		// Ensure ES2017 grammar and syntax support, including:
diff --git a/tests/api-testing/REST/PageHistory.js b/tests/api-testing/REST/PageHistory.js
index 73d7ba4..ca4d963 100644
--- a/tests/api-testing/REST/PageHistory.js
+++ b/tests/api-testing/REST/PageHistory.js
@@ -232,7 +232,7 @@ describe( 'Page History', () => {
 		it( 'Should return 400 for invalid parameter', async () => {
 			const res = await client.get( `/v1/page/${ title }/history/counts/editts` );
 			assert.equal( res.status, 400 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -241,7 +241,7 @@ describe( 'Page History', () => {
 			const res = await client.get( `/v1/page/${ title2 }/history/counts/edits` );
 
 			assert.equal( res.status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 
 		} );
@@ -274,7 +274,7 @@ describe( 'Page History', () => {
 			await mindy.action( 'delete', { title: titleToDelete, token: await mindy.token() }, 'POST' );
 			const res = await client.get( `/v1/page/${ titleToDelete }/history/counts/edits` );
 			assert.equal( res.status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
@@ -335,7 +335,7 @@ describe( 'Page History', () => {
 			const { status: editorsStatus, header: editorsHeader } = res;
 			assert.equal( editorsStatus, 404 );
 			assert.match( editorsHeader[ 'content-type' ], /^application\/json/ );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -436,7 +436,7 @@ describe( 'Page History', () => {
 			const res = await client.get( `/v1/page/${ title }/history`, { filter: 'anon' } );
 
 			assert.equal( res.status, 400 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -445,7 +445,7 @@ describe( 'Page History', () => {
 			const res = await client.get( `/v1/page/${ title2 }/history`, { filter: 'bot' } );
 
 			assert.equal( res.status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -533,7 +533,7 @@ describe( 'Page History', () => {
 			const res = await client.get( `/v1/page/${ title }/history`, { newer_than: -1 } );
 
 			assert.equal( res.status, 400 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -543,7 +543,7 @@ describe( 'Page History', () => {
 			const res = await client.get( `/v1/page/${ title }/history`, { newer_than: id1, older_than: id2 } );
 
 			assert.equal( res.status, 400 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -554,7 +554,7 @@ describe( 'Page History', () => {
 			const res = await client.get( `/v1/page/${ title }/history`, { newer_than: edit.newrevid } );
 
 			assert.equal( res.status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
diff --git a/tests/api-testing/REST/PageLanguageLinks.js b/tests/api-testing/REST/PageLanguageLinks.js
index 235d0d5..c29676b 100644
--- a/tests/api-testing/REST/PageLanguageLinks.js
+++ b/tests/api-testing/REST/PageLanguageLinks.js
@@ -39,7 +39,7 @@ describe( 'Page language links', () => {
 			const dummyPageTitle = utils.title( 'DummyPage_' );
 			const { status, text } = await client.get( `/v1/page/${ dummyPageTitle }/links/language` );
 			assert.deepEqual( status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
diff --git a/tests/api-testing/REST/PageMediaLinks.js b/tests/api-testing/REST/PageMediaLinks.js
index 947ce82..fe57bd1 100644
--- a/tests/api-testing/REST/PageMediaLinks.js
+++ b/tests/api-testing/REST/PageMediaLinks.js
@@ -39,7 +39,7 @@ describe( 'Page media links', () => {
 			const dummyPageTitle = utils.title( 'DummyPage_' );
 			const { status, text } = await client.get( `/v1/page/${ dummyPageTitle }/links/media` );
 			assert.deepEqual( status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
diff --git a/tests/api-testing/REST/RevisionCompare.js b/tests/api-testing/REST/RevisionCompare.js
index 99360b6..0b93c82 100644
--- a/tests/api-testing/REST/RevisionCompare.js
+++ b/tests/api-testing/REST/RevisionCompare.js
@@ -31,7 +31,7 @@ describe( 'Revision Compare', () => {
 		it( 'should return 400 if revision id is not an integer', async () => {
 			const { status, text } = await client.get( `/v1/revision/${ validRevId }/compare/${ invalidRevId }` );
 			assert.equal( status, 400 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -54,7 +54,7 @@ describe( 'Revision Compare', () => {
 		it( 'should return 404 for revision that does not exist', async () => {
 			const { status, text } = await client.get( `/v1/revision/${ validRevId }/compare/${ nonExistentRevId }` );
 			assert.strictEqual( status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -63,7 +63,7 @@ describe( 'Revision Compare', () => {
 			const { newrevid: pageTwoRev } = await mindy.edit( pageTwo, { text: 'Page 2 edit' } );
 			const { status, text } = await client.get( `/v1/revision/${ pageOneRev }/compare/${ pageTwoRev }` );
 			assert.strictEqual( status, 400 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
diff --git a/tests/api-testing/REST/Transform.js b/tests/api-testing/REST/Transform.js
index 98ff736..9813d91 100644
--- a/tests/api-testing/REST/Transform.js
+++ b/tests/api-testing/REST/Transform.js
@@ -90,7 +90,7 @@ function validateSpec( response ) {
 }
 
 function validateDefaultSpec( response ) {
-	// eslint-disable-next-line no-unused-expressions
+
 	expect( response.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 }
 
diff --git a/tests/api-testing/REST/content.v1/Creation.js b/tests/api-testing/REST/content.v1/Creation.js
index 89e0dc6..06f2d62 100644
--- a/tests/api-testing/REST/content.v1/Creation.js
+++ b/tests/api-testing/REST/content.v1/Creation.js
@@ -163,7 +163,7 @@ describe( 'POST /page', () => {
 				assert.equal( editStatus, 400 );
 				assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 				assert.nestedProperty( editBody, 'messageTranslations' );
-				// eslint-disable-next-line no-unused-expressions
+
 				expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 			} );
 		} );
@@ -183,7 +183,7 @@ describe( 'POST /page', () => {
 			assert.equal( editStatus, 403 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -202,7 +202,7 @@ describe( 'POST /page', () => {
 			assert.equal( editStatus, 403 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -222,7 +222,7 @@ describe( 'POST /page', () => {
 			assert.equal( editStatus, 400 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 
 		} );
@@ -242,7 +242,7 @@ describe( 'POST /page', () => {
 			assert.equal( editStatus, 400 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
@@ -266,7 +266,7 @@ describe( 'POST /page', () => {
 			assert.equal( editStatus, 409 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
@@ -294,7 +294,7 @@ describe( 'POST /page', () => {
 			assert.equal( editStatus, 403 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
diff --git a/tests/api-testing/REST/content.v1/Update.js b/tests/api-testing/REST/content.v1/Update.js
index a2cbfb3..6b3102e 100644
--- a/tests/api-testing/REST/content.v1/Update.js
+++ b/tests/api-testing/REST/content.v1/Update.js
@@ -222,7 +222,7 @@ describe( 'PUT /page/{title}', () => {
 				assert.equal( editStatus, 400 );
 				assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 				assert.nestedProperty( editBody, 'messageTranslations' );
-				// eslint-disable-next-line no-unused-expressions
+
 				expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 			} );
 		} );
@@ -241,7 +241,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 403 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -259,7 +259,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 403 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -279,7 +279,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 400 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -299,7 +299,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 400 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -317,7 +317,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 400 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
@@ -338,7 +338,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 404 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -360,7 +360,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 409 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -383,7 +383,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 409 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
@@ -413,7 +413,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 403 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
-- 
2.39.5

$ date
--- stdout ---
Tue May 27 00:09:35 UTC 2025

--- end ---
$ git clone file:///srv/git/mediawiki-core.git repo --depth=1 -b master
--- stderr ---
Cloning into 'repo'...
Updating files:  72% (8042/11157)
Updating files:  73% (8145/11157)
Updating files:  74% (8257/11157)
Updating files:  75% (8368/11157)
Updating files:  76% (8480/11157)
Updating files:  77% (8591/11157)
Updating files:  78% (8703/11157)
Updating files:  79% (8815/11157)
Updating files:  80% (8926/11157)
Updating files:  81% (9038/11157)
Updating files:  82% (9149/11157)
Updating files:  83% (9261/11157)
Updating files:  84% (9372/11157)
Updating files:  85% (9484/11157)
Updating files:  86% (9596/11157)
Updating files:  87% (9707/11157)
Updating files:  88% (9819/11157)
Updating files:  89% (9930/11157)
Updating files:  90% (10042/11157)
Updating files:  91% (10153/11157)
Updating files:  92% (10265/11157)
Updating files:  93% (10377/11157)
Updating files:  94% (10488/11157)
Updating files:  95% (10600/11157)
Updating files:  96% (10711/11157)
Updating files:  97% (10823/11157)
Updating files:  98% (10934/11157)
Updating files:  99% (11046/11157)
Updating files: 100% (11157/11157)
Updating files: 100% (11157/11157), done.
--- 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 ---
bd73486e6409d5402f0db504f7f8b1653b11b521 refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@puppeteer/browsers": {
      "name": "@puppeteer/browsers",
      "severity": "high",
      "isDirect": false,
      "via": [
        "tar-fs"
      ],
      "effects": [
        "@wdio/utils",
        "puppeteer-core"
      ],
      "range": "1.4.2 - 2.2.3",
      "nodes": [
        "node_modules/@puppeteer/browsers"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/cli": {
      "name": "@wdio/cli",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "@wdio/utils",
        "webdriverio"
      ],
      "effects": [],
      "range": "7.16.5 - 8.44.1",
      "nodes": [
        "node_modules/@wdio/cli"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/config": {
      "name": "@wdio/config",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/utils"
      ],
      "effects": [],
      "range": "8.15.0 - 8.43.0",
      "nodes": [
        "node_modules/@wdio/config"
      ],
      "fixAvailable": true
    },
    "@wdio/globals": {
      "name": "@wdio/globals",
      "severity": "high",
      "isDirect": false,
      "via": [
        "expect-webdriverio",
        "webdriverio"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "range": "<=9.0.4",
      "nodes": [
        "node_modules/@wdio/globals"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/local-runner": {
      "name": "@wdio/local-runner",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/runner"
      ],
      "effects": [],
      "range": "7.16.5 - 8.44.1",
      "nodes": [
        "node_modules/@wdio/local-runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/mocha-framework": {
      "name": "@wdio/mocha-framework",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/utils"
      ],
      "effects": [],
      "range": "8.15.0 - 8.41.0",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/runner": {
      "name": "@wdio/runner",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "@wdio/utils",
        "expect-webdriverio",
        "webdriver",
        "webdriverio"
      ],
      "effects": [
        "@wdio/local-runner"
      ],
      "range": "7.16.5 - 9.0.4",
      "nodes": [
        "node_modules/@wdio/runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/utils": {
      "name": "@wdio/utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@puppeteer/browsers"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/config",
        "@wdio/mocha-framework",
        "@wdio/runner",
        "webdriver",
        "webdriverio"
      ],
      "range": "8.15.0 - 8.41.0",
      "nodes": [
        "node_modules/@wdio/utils"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "axios": {
      "name": "axios",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1097679,
          "name": "axios",
          "dependency": "axios",
          "title": "Axios Cross-Site Request Forgery Vulnerability",
          "url": "https://github.com/advisories/GHSA-wf5p-g6vw-rhxx",
          "severity": "moderate",
          "cwe": [
            "CWE-352"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N"
          },
          "range": ">=0.8.1 <0.28.0"
        },
        {
          "source": 1103617,
          "name": "axios",
          "dependency": "axios",
          "title": "axios Requests Vulnerable To Possible SSRF and Credential Leakage via Absolute URL",
          "url": "https://github.com/advisories/GHSA-jr5f-v2jv-69x6",
          "severity": "high",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<0.30.0"
        }
      ],
      "effects": [
        "openapi-validator"
      ],
      "range": "<=0.29.0",
      "nodes": [
        "node_modules/axios"
      ],
      "fixAvailable": {
        "name": "chai-openapi-response-validator",
        "version": "0.14.1",
        "isSemVerMajor": true
      }
    },
    "chai-openapi-response-validator": {
      "name": "chai-openapi-response-validator",
      "severity": "high",
      "isDirect": true,
      "via": [
        "openapi-validator"
      ],
      "effects": [],
      "range": "0.11.2 || >=0.14.2-alpha.0",
      "nodes": [
        "node_modules/chai-openapi-response-validator"
      ],
      "fixAvailable": {
        "name": "chai-openapi-response-validator",
        "version": "0.14.1",
        "isSemVerMajor": true
      }
    },
    "expect-webdriverio": {
      "name": "expect-webdriverio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/globals",
        "webdriverio"
      ],
      "effects": [
        "@wdio/globals",
        "@wdio/runner"
      ],
      "range": "4.0.0-alpha.0 - 4.0.0-alpha.6 || 4.0.1 - 5.0.0-alpha.2",
      "nodes": [
        "node_modules/expect-webdriverio"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [],
      "range": ">=0.1.6",
      "nodes": [
        "node_modules/mwbot"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "0.1.5",
        "isSemVerMajor": true
      }
    },
    "openapi-validator": {
      "name": "openapi-validator",
      "severity": "high",
      "isDirect": false,
      "via": [
        "axios"
      ],
      "effects": [
        "chai-openapi-response-validator"
      ],
      "range": ">=0.14.2-alpha.0",
      "nodes": [
        "node_modules/openapi-validator"
      ],
      "fixAvailable": {
        "name": "chai-openapi-response-validator",
        "version": "0.14.1",
        "isSemVerMajor": true
      }
    },
    "puppeteer-core": {
      "name": "puppeteer-core",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@puppeteer/browsers",
        "ws"
      ],
      "effects": [
        "webdriverio"
      ],
      "range": "11.0.0 - 22.13.0",
      "nodes": [
        "node_modules/puppeteer-core"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "request": {
      "name": "request",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "tough-cookie"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "0.1.5",
        "isSemVerMajor": true
      }
    },
    "tar-fs": {
      "name": "tar-fs",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1104676,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File",
          "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=3.0.0 <3.0.7"
        }
      ],
      "effects": [
        "@puppeteer/browsers"
      ],
      "range": "3.0.0 - 3.0.6",
      "nodes": [
        "node_modules/tar-fs"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097682,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/tough-cookie"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "0.1.5",
        "isSemVerMajor": true
      }
    },
    "webdriver": {
      "name": "webdriver",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "@wdio/utils"
      ],
      "effects": [],
      "range": "8.15.0 - 8.44.0",
      "nodes": [
        "node_modules/webdriver"
      ],
      "fixAvailable": true
    },
    "webdriverio": {
      "name": "webdriverio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "@wdio/utils",
        "puppeteer-core",
        "webdriver"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/globals",
        "@wdio/runner",
        "expect-webdriverio"
      ],
      "range": "7.16.5 - 8.44.1",
      "nodes": [
        "node_modules/webdriverio"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "ws": {
      "name": "ws",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1098392,
          "name": "ws",
          "dependency": "ws",
          "title": "ws affected by a DoS when handling a request with many HTTP headers",
          "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q",
          "severity": "high",
          "cwe": [
            "CWE-476"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=8.0.0 <8.17.1"
        }
      ],
      "effects": [
        "puppeteer-core"
      ],
      "range": "8.0.0 - 8.17.0",
      "nodes": [
        "node_modules/puppeteer-core/node_modules/ws"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 3,
      "high": 17,
      "critical": 0,
      "total": 20
    },
    "dependencies": {
      "prod": 1,
      "dev": 1442,
      "optional": 5,
      "peer": 1,
      "peerOptional": 0,
      "total": 1442
    }
  }
}

--- 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.
> MediaWiki\Composer\VersionChecker::onEvent
Loading composer repositories with package information
Updating dependencies
Lock file operations: 136 installs, 0 updates, 0 removals
  - Locking composer/pcre (3.3.2)
  - Locking composer/semver (3.4.3)
  - Locking composer/spdx-licenses (1.5.8)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking cssjanus/cssjanus (v2.3.0)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.0.0)
  - Locking doctrine/cache (2.2.0)
  - Locking doctrine/dbal (3.9.4)
  - Locking doctrine/deprecations (1.1.5)
  - Locking doctrine/event-manager (2.0.1)
  - Locking doctrine/instantiator (2.0.0)
  - Locking doctrine/sql-formatter (1.3.0)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking giorgiosironi/eris (0.14.1)
  - Locking guzzlehttp/guzzle (7.9.3)
  - Locking guzzlehttp/promises (2.2.0)
  - Locking guzzlehttp/psr7 (2.7.1)
  - Locking hamcrest/hamcrest-php (v2.1.1)
  - Locking johnkary/phpunit-speedtrap (v4.0.1)
  - Locking justinrainbow/json-schema (5.3.0)
  - Locking liuggio/statsd-php-client (v1.0.18)
  - Locking mck89/peast (v1.17.0)
  - Locking mediawiki/mediawiki-codesniffer (v47.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.15.1)
  - Locking mediawiki/minus-x (1.1.3)
  - Locking mediawiki/phan-taint-check-plugin (6.1.0)
  - Locking microsoft/tolerant-php-parser (v0.1.2)
  - Locking monolog/monolog (2.9.3)
  - Locking myclabs/deep-copy (1.13.1)
  - Locking netresearch/jsonmapper (v4.5.0)
  - Locking nikic/php-parser (v5.4.0)
  - Locking oojs/oojs-ui (v0.51.7)
  - Locking pear/console_getopt (v1.4.3)
  - Locking pear/mail (v2.0.0)
  - Locking pear/mail_mime (1.10.12)
  - Locking pear/net_smtp (1.12.1)
  - Locking pear/net_socket (v1.2.2)
  - Locking pear/net_url2 (v2.2.3)
  - Locking pear/pear-core-minimal (v1.10.16)
  - Locking pear/pear_exception (v1.0.2)
  - Locking phan/phan (5.4.5)
  - Locking phar-io/manifest (2.0.4)
  - Locking phar-io/version (3.2.1)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking php-parallel-lint/php-parallel-lint (v1.4.0)
  - Locking phpcsstandards/phpcsextra (1.2.1)
  - Locking phpcsstandards/phpcsutils (1.0.12)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.6.2)
  - Locking phpdocumentor/type-resolver (1.10.0)
  - Locking phpstan/phpdoc-parser (2.1.0)
  - Locking phpunit/php-code-coverage (9.2.32)
  - Locking phpunit/php-file-iterator (3.0.6)
  - Locking phpunit/php-invoker (3.1.1)
  - Locking phpunit/php-text-template (2.0.4)
  - Locking phpunit/php-timer (5.0.3)
  - Locking phpunit/phpunit (9.6.21)
  - Locking psr/cache (3.0.0)
  - Locking psr/container (1.1.2)
  - Locking psr/http-client (1.0.3)
  - Locking psr/http-factory (1.1.0)
  - Locking psr/http-message (1.1)
  - Locking psr/log (1.1.4)
  - Locking psy/psysh (v0.12.8)
  - Locking ralouphie/getallheaders (3.0.3)
  - Locking sabre/event (5.1.7)
  - Locking sebastian/cli-parser (1.0.2)
  - Locking sebastian/code-unit (1.0.8)
  - Locking sebastian/code-unit-reverse-lookup (2.0.3)
  - Locking sebastian/comparator (4.0.8)
  - Locking sebastian/complexity (2.0.3)
  - Locking sebastian/diff (4.0.6)
  - Locking sebastian/environment (5.1.5)
  - Locking sebastian/exporter (4.0.6)
  - Locking sebastian/global-state (5.0.7)
  - Locking sebastian/lines-of-code (1.0.4)
  - Locking sebastian/object-enumerator (4.0.4)
  - Locking sebastian/object-reflector (2.0.4)
  - Locking sebastian/recursion-context (4.0.5)
  - Locking sebastian/resource-operations (3.0.4)
  - Locking sebastian/type (3.2.1)
  - Locking sebastian/version (3.0.2)
  - Locking seld/jsonlint (1.11.0)
  - Locking squizlabs/php_codesniffer (3.12.2)
  - Locking symfony/console (v7.2.6)
  - Locking symfony/deprecation-contracts (v3.6.0)
  - Locking symfony/polyfill-php80 (v1.32.0)
  - Locking symfony/polyfill-php81 (v1.32.0)
  - Locking symfony/polyfill-php82 (v1.32.0)
  - Locking symfony/polyfill-php83 (v1.32.0)
  - Locking symfony/service-contracts (v3.6.0)
  - Locking symfony/string (v7.2.6)
  - Locking symfony/var-dumper (v7.2.6)
  - Locking symfony/yaml (v5.4.45)
  - Locking theseer/tokenizer (1.2.3)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (1.11.0)
  - Locking wikimedia/alea (1.0.0)
  - Locking wikimedia/assert (v0.5.1)
  - Locking wikimedia/at-ease (v3.0.0)
  - Locking wikimedia/base-convert (v2.0.2)
  - Locking wikimedia/bcp-47-code (v2.0.1)
  - Locking wikimedia/cdb (3.0.0)
  - Locking wikimedia/cldr-plural-rule-parser (v2.0.0)
  - Locking wikimedia/common-passwords (v0.5.1)
  - Locking wikimedia/composer-merge-plugin (v2.1.0)
  - Locking wikimedia/html-formatter (4.1.0)
  - Locking wikimedia/idle-dom (v2.0.1)
  - Locking wikimedia/ip-utils (5.0.0)
  - Locking wikimedia/json-codec (v3.0.3)
  - Locking wikimedia/langconv (0.5.0)
  - Locking wikimedia/less.php (v5.2.1)
  - Locking wikimedia/minify (2.9.0)
  - Locking wikimedia/normalized-exception (v2.1.1)
  - Locking wikimedia/object-factory (v5.0.1)
  - Locking wikimedia/parsoid (v0.22.0-a4)
  - Locking wikimedia/php-session-serializer (3.0.1)
  - Locking wikimedia/purtle (v2.0.0)
  - Locking wikimedia/relpath (4.0.2)
  - Locking wikimedia/remex-html (4.1.2)
  - Locking wikimedia/request-timeout (v2.0.2)
  - Locking wikimedia/running-stat (v2.1.0)
  - Locking wikimedia/scoped-callback (v5.0.0)
  - Locking wikimedia/services (4.0.0)
  - Locking wikimedia/shellbox (4.2.0)
  - Locking wikimedia/testing-access-wrapper (3.0.0)
  - Locking wikimedia/timestamp (v4.2.0)
  - Locking wikimedia/utfnormal (4.0.0)
  - Locking wikimedia/wait-condition-loop (v2.0.2)
  - Locking wikimedia/wikipeg (4.0.2)
  - Locking wikimedia/wrappedstring (v4.0.1)
  - Locking wikimedia/xmp-reader (0.9.4)
  - Locking wikimedia/zest-css (3.0.2)
  - Locking wmde/hamcrest-html-matchers (v1.1.0)
  - Locking zordius/lightncandy (v1.2.6)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 136 installs, 0 updates, 0 removals
  - Downloading wikimedia/composer-merge-plugin (v2.1.0)
  - Downloading cssjanus/cssjanus (v2.3.0)
  - Downloading doctrine/event-manager (2.0.1)
  - Downloading doctrine/cache (2.2.0)
  - Downloading doctrine/dbal (3.9.4)
  - Downloading doctrine/sql-formatter (1.3.0)
  - Downloading johnkary/phpunit-speedtrap (v4.0.1)
  - Downloading composer/spdx-licenses (1.5.8)
  - Downloading oojs/oojs-ui (v0.51.7)
  - Downloading pear/pear_exception (v1.0.2)
  - Downloading pear/console_getopt (v1.4.3)
  - Downloading pear/pear-core-minimal (v1.10.16)
  - Downloading pear/mail (v2.0.0)
  - Downloading pear/mail_mime (1.10.12)
  - Downloading pear/net_socket (v1.2.2)
  - Downloading pear/net_smtp (1.12.1)
  - Downloading symfony/var-dumper (v7.2.6)
  - Downloading psy/psysh (v0.12.8)
  - Downloading symfony/polyfill-php82 (v1.32.0)
  - Downloading wikimedia/cldr-plural-rule-parser (v2.0.0)
  - Downloading wikimedia/common-passwords (v0.5.1)
  - Downloading wikimedia/html-formatter (4.1.0)
  - Downloading wikimedia/langconv (0.5.0)
  - Downloading wikimedia/less.php (v5.2.1)
  - Downloading wikimedia/minify (2.9.0)
  - Downloading wikimedia/wikipeg (4.0.2)
  - Downloading wikimedia/parsoid (v0.22.0-a4)
  - Downloading wikimedia/php-session-serializer (3.0.1)
  - Downloading wikimedia/relpath (4.0.2)
  - Downloading wikimedia/request-timeout (v2.0.2)
  - Downloading wikimedia/running-stat (v2.1.0)
  - Downloading monolog/monolog (2.9.3)
  - Downloading wikimedia/shellbox (4.2.0)
  - Downloading wikimedia/wait-condition-loop (v2.0.2)
  - Downloading wikimedia/wrappedstring (v4.0.1)
  - Downloading wikimedia/xmp-reader (0.9.4)
  - Downloading wmde/hamcrest-html-matchers (v1.1.0)
  0/37 [>---------------------------]   0%
 15/37 [===========>----------------]  40%
 21/37 [===============>------------]  56%
 29/37 [=====================>------]  78%
 34/37 [=========================>--]  91%
 36/37 [===========================>]  97%
 37/37 [============================] 100%
  - Installing wikimedia/composer-merge-plugin (v2.1.0): Extracting archive
  - Installing squizlabs/php_codesniffer (3.12.2): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v1.0.0): Extracting archive
  - Installing composer/pcre (3.3.2): Extracting archive
  - Installing cssjanus/cssjanus (v2.3.0): Extracting archive
  - Installing psr/log (1.1.4): Extracting archive
  - Installing psr/cache (3.0.0): Extracting archive
  - Installing doctrine/event-manager (2.0.1): Extracting archive
  - Installing doctrine/deprecations (1.1.5): Extracting archive
  - Installing doctrine/cache (2.2.0): Extracting archive
  - Installing doctrine/dbal (3.9.4): Extracting archive
  - Installing doctrine/sql-formatter (1.3.0): Extracting archive
  - Installing giorgiosironi/eris (0.14.1): Extracting archive
  - Installing guzzlehttp/promises (2.2.0): Extracting archive
  - Installing ralouphie/getallheaders (3.0.3): Extracting archive
  - Installing psr/http-message (1.1): Extracting archive
  - Installing psr/http-factory (1.1.0): Extracting archive
  - Installing guzzlehttp/psr7 (2.7.1): Extracting archive
  - Installing sebastian/version (3.0.2): Extracting archive
  - Installing sebastian/type (3.2.1): Extracting archive
  - Installing sebastian/resource-operations (3.0.4): Extracting archive
  - Installing sebastian/recursion-context (4.0.5): Extracting archive
  - Installing sebastian/object-reflector (2.0.4): Extracting archive
  - Installing sebastian/object-enumerator (4.0.4): Extracting archive
  - Installing sebastian/global-state (5.0.7): Extracting archive
  - Installing sebastian/exporter (4.0.6): Extracting archive
  - Installing sebastian/environment (5.1.5): Extracting archive
  - Installing sebastian/diff (4.0.6): Extracting archive
  - Installing sebastian/comparator (4.0.8): Extracting archive
  - Installing sebastian/code-unit (1.0.8): Extracting archive
  - Installing sebastian/cli-parser (1.0.2): Extracting archive
  - Installing phpunit/php-timer (5.0.3): Extracting archive
  - Installing phpunit/php-text-template (2.0.4): Extracting archive
  - Installing phpunit/php-invoker (3.1.1): Extracting archive
  - Installing phpunit/php-file-iterator (3.0.6): Extracting archive
  - Installing theseer/tokenizer (1.2.3): Extracting archive
  - Installing nikic/php-parser (v5.4.0): Extracting archive
  - Installing sebastian/lines-of-code (1.0.4): Extracting archive
  - Installing sebastian/complexity (2.0.3): Extracting archive
  - Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive
  - Installing phpunit/php-code-coverage (9.2.32): Extracting archive
  - Installing phar-io/version (3.2.1): Extracting archive
  - Installing phar-io/manifest (2.0.4): Extracting archive
  - Installing myclabs/deep-copy (1.13.1): Extracting archive
  - Installing doctrine/instantiator (2.0.0): Extracting archive
  - Installing phpunit/phpunit (9.6.21): Extracting archive
  - Installing johnkary/phpunit-speedtrap (v4.0.1): Extracting archive
  - Installing mck89/peast (v1.17.0): Extracting archive
  - Installing symfony/polyfill-php80 (v1.32.0): Extracting archive
  - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive
  - Installing composer/spdx-licenses (1.5.8): Extracting archive
  - Installing composer/semver (3.4.3): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v47.0.0): Extracting archive
  - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
  - Installing symfony/string (v7.2.6): Extracting archive
  - Installing symfony/deprecation-contracts (v3.6.0): Extracting archive
  - Installing psr/container (1.1.2): Extracting archive
  - Installing symfony/service-contracts (v3.6.0): Extracting archive
  - Installing symfony/console (v7.2.6): Extracting archive
  - Installing sabre/event (5.1.7): Extracting archive
  - Installing netresearch/jsonmapper (v4.5.0): Extracting archive
  - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive
  - Installing webmozart/assert (1.11.0): Extracting archive
  - Installing phpstan/phpdoc-parser (2.1.0): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing phpdocumentor/type-resolver (1.10.0): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.6.2): Extracting archive
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
  - Installing composer/xdebug-handler (3.0.5): Extracting archive
  - Installing phan/phan (5.4.5): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (6.1.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.15.1): Extracting archive
  - Installing mediawiki/minus-x (1.1.3): Extracting archive
  - Installing oojs/oojs-ui (v0.51.7): Extracting archive
  - Installing pear/pear_exception (v1.0.2): Extracting archive
  - Installing pear/console_getopt (v1.4.3): Extracting archive
  - Installing pear/pear-core-minimal (v1.10.16): Extracting archive
  - Installing pear/mail (v2.0.0): Extracting archive
  - Installing pear/mail_mime (1.10.12): Extracting archive
  - Installing pear/net_socket (v1.2.2): Extracting archive
  - Installing pear/net_smtp (1.12.1): Extracting archive
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
  - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
  - Installing psr/http-client (1.0.3): Extracting archive
  - Installing symfony/var-dumper (v7.2.6): Extracting archive
  - Installing psy/psysh (v0.12.8): Extracting archive
  - Installing seld/jsonlint (1.11.0): Extracting archive
  - Installing symfony/polyfill-php81 (v1.32.0): Extracting archive
  - Installing symfony/polyfill-php82 (v1.32.0): Extracting archive
  - Installing symfony/polyfill-php83 (v1.32.0): Extracting archive
  - Installing symfony/yaml (v5.4.45): Extracting archive
  - Installing wikimedia/alea (1.0.0): Extracting archive
  - Installing wikimedia/at-ease (v3.0.0): Extracting archive
  - Installing wikimedia/cdb (3.0.0): Extracting archive
  - Installing wikimedia/cldr-plural-rule-parser (v2.0.0): Extracting archive
  - Installing wikimedia/common-passwords (v0.5.1): Extracting archive
  - Installing wikimedia/html-formatter (4.1.0): Extracting archive
  - Installing wikimedia/assert (v0.5.1): Extracting archive
  - Installing wikimedia/langconv (0.5.0): Extracting archive
  - Installing wikimedia/less.php (v5.2.1): Extracting archive
  - Installing pear/net_url2 (v2.2.3): Extracting archive
  - Installing wikimedia/minify (2.9.0): Extracting archive
  - Installing wikimedia/zest-css (3.0.2): Extracting archive
  - Installing wikimedia/wikipeg (4.0.2): Extracting archive
  - Installing wikimedia/scoped-callback (v5.0.0): Extracting archive
  - Installing wikimedia/utfnormal (4.0.0): Extracting archive
  - Installing wikimedia/remex-html (4.1.2): Extracting archive
  - Installing wikimedia/object-factory (v5.0.1): Extracting archive
  - Installing wikimedia/json-codec (v3.0.3): Extracting archive
  - Installing wikimedia/base-convert (v2.0.2): Extracting archive
  - Installing wikimedia/ip-utils (5.0.0): Extracting archive
  - Installing wikimedia/idle-dom (v2.0.1): Extracting archive
  - Installing wikimedia/bcp-47-code (v2.0.1): Extracting archive
  - Installing liuggio/statsd-php-client (v1.0.18): Extracting archive
  - Installing justinrainbow/json-schema (5.3.0): Extracting archive
  - Installing wikimedia/parsoid (v0.22.0-a4): Extracting archive
  - Installing wikimedia/php-session-serializer (3.0.1): Extracting archive
  - Installing wikimedia/purtle (v2.0.0): Extracting archive
  - Installing wikimedia/relpath (4.0.2): Extracting archive
  - Installing wikimedia/normalized-exception (v2.1.1): Extracting archive
  - Installing wikimedia/request-timeout (v2.0.2): Extracting archive
  - Installing wikimedia/running-stat (v2.1.0): Extracting archive
  - Installing wikimedia/services (4.0.0): Extracting archive
  - Installing monolog/monolog (2.9.3): Extracting archive
  - Installing guzzlehttp/guzzle (7.9.3): Extracting archive
  - Installing wikimedia/shellbox (4.2.0): Extracting archive
  - Installing wikimedia/testing-access-wrapper (3.0.0): Extracting archive
  - Installing wikimedia/wait-condition-loop (v2.0.2): Extracting archive
  - Installing wikimedia/wrappedstring (v4.0.1): Extracting archive
  - Installing wikimedia/timestamp (v4.2.0): Extracting archive
  - Installing wikimedia/xmp-reader (0.9.4): Extracting archive
  - Installing hamcrest/hamcrest-php (v2.1.1): Extracting archive
  - Installing wmde/hamcrest-html-matchers (v1.1.0): Extracting archive
  - Installing zordius/lightncandy (v1.2.6): Extracting archive
   0/133 [>---------------------------]   0%
  20/133 [====>-----------------------]  15%
  30/133 [======>---------------------]  22%
  40/133 [========>-------------------]  30%
  60/133 [============>---------------]  45%
  69/133 [==============>-------------]  51%
  89/133 [==================>---------]  66%
  98/133 [====================>-------]  73%
 107/133 [======================>-----]  80%
 124/133 [==========================>-]  93%
 133/133 [============================] 100%
27 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating optimized autoload files
51 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> MediaWiki\Composer\ComposerVendorHtaccessCreator::onEvent
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils

--- end ---
Upgrading n:eslint-config-wikimedia from 0.29.1 -> 0.30.0
$ /usr/bin/npm install
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.0.0-rc.2',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.0.0-rc.2',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated lodash.isequal@4.5.0: This package is deprecated. Use require('node:util').isDeepStrictEqual instead.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated 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 fstream@1.0.12: This package is no longer supported.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
--- stdout ---

added 1440 packages, and audited 1441 packages in 27s

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

21 vulnerabilities (4 moderate, 17 high)

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

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

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.

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

--- end ---
$ /usr/bin/npm install grunt-eslint@24.3.0 --save-exact
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.0.0-rc.2',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.0.0-rc.2',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---

up to date, audited 1441 packages in 4s

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

21 vulnerabilities (4 moderate, 17 high)

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

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

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.

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

--- end ---
$ ./node_modules/.bin/eslint . --fix
--- stdout ---

/src/repo/docs/config-schema.yaml
   277:1   warning  This line has a length of 111. Maximum allowed is 100  max-len
   410:1   warning  This line has a length of 112. Maximum allowed is 100  max-len
   431:1   warning  This line has a length of 198. Maximum allowed is 100  max-len
   439:1   warning  This line has a length of 107. Maximum allowed is 100  max-len
   441:1   warning  This line has a length of 107. Maximum allowed is 100  max-len
   448:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
   449:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
   460:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
   461:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
   468:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
   471:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
   476:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
   484:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
   485:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
   489:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
   490:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
   493:1   warning  This line has a length of 106. Maximum allowed is 100  max-len
   496:1   warning  This line has a length of 108. Maximum allowed is 100  max-len
   498:1   warning  This line has a length of 107. Maximum allowed is 100  max-len
   502:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
   503:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
   504:1   warning  This line has a length of 107. Maximum allowed is 100  max-len
   505:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
   506:1   warning  This line has a length of 106. Maximum allowed is 100  max-len
   509:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
   510:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
   513:1   warning  This line has a length of 109. Maximum allowed is 100  max-len
   515:1   warning  This line has a length of 106. Maximum allowed is 100  max-len
   516:1   warning  This line has a length of 108. Maximum allowed is 100  max-len
   517:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
   518:1   warning  This line has a length of 107. Maximum allowed is 100  max-len
   519:1   warning  This line has a length of 107. Maximum allowed is 100  max-len
   522:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
   524:1   warning  This line has a length of 108. Maximum allowed is 100  max-len
   527:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
   530:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
   532:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
   533:1   warning  This line has a length of 107. Maximum allowed is 100  max-len
   538:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  1088:1   warning  This line has a length of 108. Maximum allowed is 100  max-len
  1274:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  1279:1   warning  This line has a length of 107. Maximum allowed is 100  max-len
  1378:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  1379:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  1388:1   warning  This line has a length of 108. Maximum allowed is 100  max-len
  1397:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  1400:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  1405:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  1406:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  1418:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  1419:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  1428:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  1436:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  1442:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  1458:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  1614:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  1871:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  1872:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  1874:1   warning  This line has a length of 106. Maximum allowed is 100  max-len
  1876:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  1880:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  1881:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  1882:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  1883:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  1884:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  2010:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  2055:1   warning  This line has a length of 208. Maximum allowed is 100  max-len
  2086:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  2087:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  2173:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  2440:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  2441:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  2467:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  2486:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  2493:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  2501:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  2532:1   warning  This line has a length of 106. Maximum allowed is 100  max-len
  2543:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  2547:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  2554:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  2580:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  2581:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  2603:1   warning  This line has a length of 143. Maximum allowed is 100  max-len
  2873:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  2882:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  3273:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  3334:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  3341:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  3342:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  3351:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  3369:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  3404:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  3405:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  3551:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  3730:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  3946:1   warning  This line has a length of 106. Maximum allowed is 100  max-len
  3957:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  3983:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  3985:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  4085:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  4425:1   warning  This line has a length of 132. Maximum allowed is 100  max-len
  4437:1   warning  This line has a length of 134. Maximum allowed is 100  max-len
  4444:1   warning  This line has a length of 693. Maximum allowed is 100  max-len
  4445:1   warning  This line has a length of 656. Maximum allowed is 100  max-len
  4520:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  4528:1   warning  This line has a length of 143. Maximum allowed is 100  max-len
  4529:1   warning  This line has a length of 477. Maximum allowed is 100  max-len
  4530:1   warning  This line has a length of 500. Maximum allowed is 100  max-len
  4540:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  4542:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  4641:1   warning  This line has a length of 108. Maximum allowed is 100  max-len
  4642:1   warning  This line has a length of 108. Maximum allowed is 100  max-len
  4684:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  4685:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  4689:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  4815:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  4818:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  4831:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  4832:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  4876:1   warning  This line has a length of 131. Maximum allowed is 100  max-len
  4877:1   warning  This line has a length of 167. Maximum allowed is 100  max-len
  4955:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  4957:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  4960:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  4961:1   warning  This line has a length of 109. Maximum allowed is 100  max-len
  5019:12  error    Mixed spaces and tabs                                  no-mixed-spaces-and-tabs
  5019:13  error    Unexpected tabs                                        yml/no-tab-indent
  5085:1   warning  This line has a length of 470. Maximum allowed is 100  max-len
  5087:1   warning  This line has a length of 161. Maximum allowed is 100  max-len
  5088:1   warning  This line has a length of 776. Maximum allowed is 100  max-len
  5089:1   warning  This line has a length of 166. Maximum allowed is 100  max-len
  5091:1   warning  This line has a length of 152. Maximum allowed is 100  max-len
  5207:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  5307:1   warning  This line has a length of 106. Maximum allowed is 100  max-len
  5309:1   warning  This line has a length of 109. Maximum allowed is 100  max-len
  5326:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  5328:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  5355:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  5356:1   warning  This line has a length of 109. Maximum allowed is 100  max-len
  5490:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  5492:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  5494:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  5495:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  5512:1   warning  This line has a length of 119. Maximum allowed is 100  max-len
  5589:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  5679:1   warning  This line has a length of 207. Maximum allowed is 100  max-len
  5682:1   warning  This line has a length of 134. Maximum allowed is 100  max-len
  5683:1   warning  This line has a length of 144. Maximum allowed is 100  max-len
  5684:1   warning  This line has a length of 184. Maximum allowed is 100  max-len
  5686:1   warning  This line has a length of 184. Maximum allowed is 100  max-len
  5687:1   warning  This line has a length of 259. Maximum allowed is 100  max-len
  5688:1   warning  This line has a length of 296. Maximum allowed is 100  max-len
  5690:1   warning  This line has a length of 168. Maximum allowed is 100  max-len
  5696:1   warning  This line has a length of 269. Maximum allowed is 100  max-len
  5698:1   warning  This line has a length of 153. Maximum allowed is 100  max-len
  5788:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  5930:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  5932:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  6013:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  6014:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  6015:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  6016:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  6022:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  6023:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  6024:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  6076:1   warning  This line has a length of 133. Maximum allowed is 100  max-len
  6077:1   warning  This line has a length of 108. Maximum allowed is 100  max-len
  6078:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  6281:1   warning  This line has a length of 113. Maximum allowed is 100  max-len
  6460:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  6817:1   warning  This line has a length of 135. Maximum allowed is 100  max-len
  6818:1   warning  This line has a length of 149. Maximum allowed is 100  max-len
  6819:1   warning  This line has a length of 139. Maximum allowed is 100  max-len
  6820:1   warning  This line has a length of 151. Maximum allowed is 100  max-len
  6881:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  6887:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  7014:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  7031:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  7032:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  7033:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  7055:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  7057:1   warning  This line has a length of 106. Maximum allowed is 100  max-len
  7068:1   warning  This line has a length of 118. Maximum allowed is 100  max-len
  7089:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  7090:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  7109:1   warning  This line has a length of 117. Maximum allowed is 100  max-len
  7110:1   warning  This line has a length of 106. Maximum allowed is 100  max-len
  7187:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  7190:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  7206:1   warning  This line has a length of 165. Maximum allowed is 100  max-len
  7225:1   warning  This line has a length of 188. Maximum allowed is 100  max-len
  7226:1   warning  This line has a length of 132. Maximum allowed is 100  max-len
  7227:1   warning  This line has a length of 133. Maximum allowed is 100  max-len
  7228:1   warning  This line has a length of 127. Maximum allowed is 100  max-len
  7277:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  7477:1   warning  This line has a length of 113. Maximum allowed is 100  max-len
  7478:1   warning  This line has a length of 115. Maximum allowed is 100  max-len
  7479:1   warning  This line has a length of 115. Maximum allowed is 100  max-len
  7498:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  7500:1   warning  This line has a length of 101. Maximum allowed is 100  max-len
  7503:1   warning  This line has a length of 103. Maximum allowed is 100  max-len
  7504:1   warning  This line has a length of 106. Maximum allowed is 100  max-len
  7505:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  7506:1   warning  This line has a length of 106. Maximum allowed is 100  max-len
  7507:1   warning  This line has a length of 113. Maximum allowed is 100  max-len
  7510:1   warning  This line has a length of 116. Maximum allowed is 100  max-len
  7513:1   warning  This line has a length of 118. Maximum allowed is 100  max-len
  7531:1   warning  This line has a length of 153. Maximum allowed is 100  max-len
  7533:1   warning  This line has a length of 118. Maximum allowed is 100  max-len
  7535:1   warning  This line has a length of 126. Maximum allowed is 100  max-len
  7536:1   warning  This line has a length of 117. Maximum allowed is 100  max-len
  7538:1   warning  This line has a length of 126. Maximum allowed is 100  max-len
  7823:1   warning  This line has a length of 137. Maximum allowed is 100  max-len
  7899:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  8064:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  8065:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  8066:1   warning  This line has a length of 102. Maximum allowed is 100  max-len
  8067:1   warning  This line has a length of 106. Maximum allowed is 100  max-len
  8071:1   warning  This line has a length of 105. Maximum allowed is 100  max-len
  8072:1   warning  This line has a length of 104. Maximum allowed is 100  max-len
  8182:12  error    Mixed spaces and tabs                                  no-mixed-spaces-and-tabs
  8182:13  error    Unexpected tabs                                        yml/no-tab-indent
  8183:12  error    Mixed spaces and tabs                                  no-mixed-spaces-and-tabs
  8183:13  error    Unexpected tabs                                        yml/no-tab-indent
  8184:12  error    Mixed spaces and tabs                                  no-mixed-spaces-and-tabs
  8184:13  error    Unexpected tabs                                        yml/no-tab-indent
  8185:12  error    Mixed spaces and tabs                                  no-mixed-spaces-and-tabs
  8185:13  error    Unexpected tabs                                        yml/no-tab-indent

/src/repo/resources/src/jquery/jquery.makeCollapsible.js
  425:1  warning  Syntax error in namepath: ~'wikipage.collapsibleContent'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.action.edit/edit.js
  12:1  warning  Syntax error in namepath: ~'wikipage.editform'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.action/mediawiki.action.view.postEdit.js
  21:1  warning  Syntax error in namepath: ~'postEdit'               jsdoc/valid-types
  36:1  warning  Syntax error in namepath: ~'postEdit.afterRemoval'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.authenticationPopup/index.js
  38:1  warning  The type 'userinfo' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.base/errorLogger.js
   8:1  warning  Syntax error in namepath: ~'global.error'  jsdoc/valid-types
  22:1  warning  Syntax error in namepath: ~'error.caught'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.base/log.js
  14:1  warning  Found more than one @return declaration  jsdoc/require-returns
  14:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.base/mediawiki.base.js
  217:1  warning  The type 'mediawiki' is undefined  jsdoc/no-undefined-types
  243:1  warning  The type 'mediawiki' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.diff/inlineFormatToggle.js
  150:1  warning  Syntax error in namepath: ~'wikipage.diff.wikitextDiffBody'  jsdoc/valid-types
  162:1  warning  Syntax error in namepath: ~'wikipage.diff.diffTypeSwitch'    jsdoc/valid-types

/src/repo/resources/src/mediawiki.editRecovery/edit.js
  184:1  warning  Syntax error in namepath: ~'editRecovery.loadEnd'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.htmlform/cond-state.js
  48:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.htmlform/htmlform.js
  5:1  warning  Syntax error in namepath: ~'htmlform.enhance'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.inspect.js
   61:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
   91:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  112:2  warning  Found more than one @return declaration  jsdoc/require-returns
  112:2  warning  Found more than one @return declaration  jsdoc/require-returns-check
  121:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  152:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  164:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  175:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  203:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.jqueryMsg/mediawiki.jqueryMsg.js
  142:1  warning  Found more than one @return declaration  jsdoc/require-returns
  142:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.language.months/months.js
  44:1  warning  The type 'Months' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.notification.convertmessagebox.js
  13:1  warning  Syntax error in namepath: (require("mediawiki.notification.convertmessagebox"))  jsdoc/valid-types

/src/repo/resources/src/mediawiki.page.preview.js
  416:1  warning  Syntax error in namepath: ~'wikipage.tableOfContents'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.page.ready/ready.js
   96:1  warning  Syntax error in namepath: ~'wikipage.indicators'  jsdoc/valid-types
  116:1  warning  Syntax error in namepath: ~'wikipage.content'     jsdoc/valid-types
  137:1  warning  Syntax error in namepath: ~'wikipage.categories'  jsdoc/valid-types
  153:1  warning  Syntax error in namepath: ~'wikipage.diff'        jsdoc/valid-types
  184:1  warning  Syntax error in namepath: ~'skin.logout'          jsdoc/valid-types

/src/repo/resources/src/mediawiki.page.watch.ajax/watch-ajax.js
  128:1  warning  Syntax error in namepath: ~'wikipage.watchlistChange'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.rcfilters/Controller.js
  330:1  warning  Found more than one @return declaration                  jsdoc/require-returns
  330:1  warning  Found more than one @return declaration                  jsdoc/require-returns-check
  550:1  warning  Syntax error in namepath: ~'RcFilters.highlight.enable'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.rcfilters/dm/FilterItem.js
   81:1  warning  Found more than one @return declaration  jsdoc/require-returns
   81:1  warning  Found more than one @return declaration  jsdoc/require-returns-check
  335:1  warning  The type 'update' is undefined           jsdoc/no-undefined-types
  351:1  warning  The type 'update' is undefined           jsdoc/no-undefined-types
  366:1  warning  The type 'update' is undefined           jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.rcfilters/dm/FiltersViewModel.js
  1185:1  warning  The type 'searchChange' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.rcfilters/mw.rcfilters.js
  176:1  warning  Syntax error in namepath: ~'structuredChangeFilters.ui.initialized'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.rcfilters/ui/FilterTagMultiselectWidget.js
  408:1  warning  Syntax error in namepath: ~'RcFilters.popup.open'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.searchSuggest/searchSuggest.js
  36:1  warning  The type 'ResponseMetaData' is undefined  jsdoc/no-undefined-types
  43:1  warning  The type 'ResponseFunction' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/App.vue
  229:1  warning  The type 'AbortableSearchFetch' is undefined  jsdoc/no-undefined-types
  275:1  warning  The type 'SearchSubmitEvent' is undefined     jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/fetch.js
  21:1  warning  The type 'RequestInit' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/instrumentation.js
   2:1  warning  The type 'FetchEndEvent' is undefined         jsdoc/no-undefined-types
  16:1  warning  The type 'SuggestionClickEvent' is undefined  jsdoc/no-undefined-types
  16:1  warning  The type 'SearchSubmitEvent' is undefined     jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/restSearchClient.js
   4:1  warning  Syntax error in type: import('./urlGenerator.js').UrlGenerator  jsdoc/valid-types
  11:1  warning  The type 'RestResult' is undefined                              jsdoc/no-undefined-types
  17:1  warning  The type 'SearchResult' is undefined                            jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/urlGenerator.js
   2:1  warning  The type 'Record' is undefined        jsdoc/no-undefined-types
   9:1  warning  The type 'RestResult' is undefined    jsdoc/no-undefined-types
   9:1  warning  The type 'SearchResult' is undefined  jsdoc/no-undefined-types
  29:1  warning  The type 'RestResult' is undefined    jsdoc/no-undefined-types
  29:1  warning  The type 'SearchResult' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.special.apisandbox/ApiSandboxLayout.js
  44:1  warning  Found more than one @return declaration  jsdoc/require-returns
  44:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.special.block/init.js
  26:1  warning  Syntax error in namepath: ~'SpecialBlock.block'  jsdoc/valid-types
  36:1  warning  Syntax error in namepath: ~'SpecialBlock.form'   jsdoc/valid-types

/src/repo/resources/src/mediawiki.template.js
   26:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types
   40:1  warning  The type 'TemplateRenderFunction' is undefined   jsdoc/no-undefined-types
   45:1  warning  The type 'TemplateCompileFunction' is undefined  jsdoc/no-undefined-types
   61:1  warning  The type 'TemplateCompiler' is undefined         jsdoc/no-undefined-types
   88:1  warning  The type 'TemplateCompiler' is undefined         jsdoc/no-undefined-types
  107:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types
  125:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types
  147:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.util/util.js
  626:1  warning  Syntax error in namepath: ~'util.addPortlet'      jsdoc/valid-types
  795:1  warning  Syntax error in namepath: ~'util.addPortletLink'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.widgets.datetime/DateTimeFormatter.js
  268:1  warning  The type 'FieldSpecificationObject' is undefined  jsdoc/no-undefined-types
  632:1  warning  The type 'CalendarGridData' is undefined          jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.widgets.datetime/DiscordianDateTimeFormatter.js
  74:1  warning  The type 'FieldSpecificationObject' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.widgets.datetime/ProlepticGregorianDateTimeFormatter.js
  306:1  warning  The type 'FieldSpecificationObject' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.widgets/mw.widgets.NamespaceInputWidget.js
  50:1  warning  The type 'DropdownOptions' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/startup/mediawiki.loader.js
  61:1  warning  Syntax error in namepath: ~'resourceloader.exception'  jsdoc/valid-types

/src/repo/tests/qunit/data/testrunner.js
  112:2  warning  Missing JSDoc @return declaration  jsdoc/require-returns

/src/repo/tests/selenium/wdio-mediawiki/Util.js
  35:1  warning  This line has a length of 107. Maximum allowed is 100  max-len

/src/repo/tests/selenium/wdio-mediawiki/wdio-defaults.conf.js
  99:1  warning  This line has a length of 108. Maximum allowed is 100  max-len

✖ 314 problems (10 errors, 304 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":"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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/.fresnel.yml","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":"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":"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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/.svgo.config.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/.vsls.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/Gruntfile.js","messages":[],"suppressedMessages":[{"ruleId":"security/detect-non-literal-fs-filename","severity":1,"message":"Found existsSync from package \"fs\" with non literal argument at index 0","line":32,"column":9,"nodeType":"CallExpression","endLine":32,"endColumn":33,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"security/detect-non-literal-fs-filename","severity":1,"message":"Found existsSync from package \"fs\" with non literal argument at index 0","line":37,"column":9,"nodeType":"CallExpression","endLine":37,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/bundlesize.config.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/composer.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/docker-compose.yml","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":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/docs/abstract-schema-changes.schema.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/docs/abstract-schema-table.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/docs/abstract-schema.schema.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/docs/config-schema.yaml","messages":[{"ruleId":"max-len","severity":1,"message":"This line has a length of 111. Maximum allowed is 100.","line":277,"column":1,"nodeType":"Program","messageId":"max","endLine":277,"endColumn":112},{"ruleId":"max-len","severity":1,"message":"This line has a length of 112. Maximum allowed is 100.","line":410,"column":1,"nodeType":"Program","messageId":"max","endLine":410,"endColumn":113},{"ruleId":"max-len","severity":1,"message":"This line has a length of 198. Maximum allowed is 100.","line":431,"column":1,"nodeType":"Program","messageId":"max","endLine":431,"endColumn":199},{"ruleId":"max-len","severity":1,"message":"This line has a length of 107. Maximum allowed is 100.","line":439,"column":1,"nodeType":"Program","messageId":"max","endLine":439,"endColumn":108},{"ruleId":"max-len","severity":1,"message":"This line has a length of 107. Maximum allowed is 100.","line":441,"column":1,"nodeType":"Program","messageId":"max","endLine":441,"endColumn":108},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":448,"column":1,"nodeType":"Program","messageId":"max","endLine":448,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":449,"column":1,"nodeType":"Program","messageId":"max","endLine":449,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":460,"column":1,"nodeType":"Program","messageId":"max","endLine":460,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":461,"column":1,"nodeType":"Program","messageId":"max","endLine":461,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":468,"column":1,"nodeType":"Program","messageId":"max","endLine":468,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":471,"column":1,"nodeType":"Program","messageId":"max","endLine":471,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":476,"column":1,"nodeType":"Program","messageId":"max","endLine":476,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":484,"column":1,"nodeType":"Program","messageId":"max","endLine":484,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":485,"column":1,"nodeType":"Program","messageId":"max","endLine":485,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":489,"column":1,"nodeType":"Program","messageId":"max","endLine":489,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":490,"column":1,"nodeType":"Program","messageId":"max","endLine":490,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 106. Maximum allowed is 100.","line":493,"column":1,"nodeType":"Program","messageId":"max","endLine":493,"endColumn":107},{"ruleId":"max-len","severity":1,"message":"This line has a length of 108. Maximum allowed is 100.","line":496,"column":1,"nodeType":"Program","messageId":"max","endLine":496,"endColumn":109},{"ruleId":"max-len","severity":1,"message":"This line has a length of 107. Maximum allowed is 100.","line":498,"column":1,"nodeType":"Program","messageId":"max","endLine":498,"endColumn":108},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":502,"column":1,"nodeType":"Program","messageId":"max","endLine":502,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":503,"column":1,"nodeType":"Program","messageId":"max","endLine":503,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 107. Maximum allowed is 100.","line":504,"column":1,"nodeType":"Program","messageId":"max","endLine":504,"endColumn":108},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":505,"column":1,"nodeType":"Program","messageId":"max","endLine":505,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 106. Maximum allowed is 100.","line":506,"column":1,"nodeType":"Program","messageId":"max","endLine":506,"endColumn":107},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":509,"column":1,"nodeType":"Program","messageId":"max","endLine":509,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":510,"column":1,"nodeType":"Program","messageId":"max","endLine":510,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 109. Maximum allowed is 100.","line":513,"column":1,"nodeType":"Program","messageId":"max","endLine":513,"endColumn":110},{"ruleId":"max-len","severity":1,"message":"This line has a length of 106. Maximum allowed is 100.","line":515,"column":1,"nodeType":"Program","messageId":"max","endLine":515,"endColumn":107},{"ruleId":"max-len","severity":1,"message":"This line has a length of 108. Maximum allowed is 100.","line":516,"column":1,"nodeType":"Program","messageId":"max","endLine":516,"endColumn":109},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":517,"column":1,"nodeType":"Program","messageId":"max","endLine":517,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 107. Maximum allowed is 100.","line":518,"column":1,"nodeType":"Program","messageId":"max","endLine":518,"endColumn":108},{"ruleId":"max-len","severity":1,"message":"This line has a length of 107. Maximum allowed is 100.","line":519,"column":1,"nodeType":"Program","messageId":"max","endLine":519,"endColumn":108},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":522,"column":1,"nodeType":"Program","messageId":"max","endLine":522,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 108. Maximum allowed is 100.","line":524,"column":1,"nodeType":"Program","messageId":"max","endLine":524,"endColumn":109},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":527,"column":1,"nodeType":"Program","messageId":"max","endLine":527,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":530,"column":1,"nodeType":"Program","messageId":"max","endLine":530,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":532,"column":1,"nodeType":"Program","messageId":"max","endLine":532,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 107. Maximum allowed is 100.","line":533,"column":1,"nodeType":"Program","messageId":"max","endLine":533,"endColumn":108},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":538,"column":1,"nodeType":"Program","messageId":"max","endLine":538,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 108. Maximum allowed is 100.","line":1088,"column":1,"nodeType":"Program","messageId":"max","endLine":1088,"endColumn":109},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":1274,"column":1,"nodeType":"Program","messageId":"max","endLine":1274,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 107. Maximum allowed is 100.","line":1279,"column":1,"nodeType":"Program","messageId":"max","endLine":1279,"endColumn":108},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":1378,"column":1,"nodeType":"Program","messageId":"max","endLine":1378,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":1379,"column":1,"nodeType":"Program","messageId":"max","endLine":1379,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 108. Maximum allowed is 100.","line":1388,"column":1,"nodeType":"Program","messageId":"max","endLine":1388,"endColumn":109},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":1397,"column":1,"nodeType":"Program","messageId":"max","endLine":1397,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":1400,"column":1,"nodeType":"Program","messageId":"max","endLine":1400,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":1405,"column":1,"nodeType":"Program","messageId":"max","endLine":1405,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":1406,"column":1,"nodeType":"Program","messageId":"max","endLine":1406,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":1418,"column":1,"nodeType":"Program","messageId":"max","endLine":1418,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":1419,"column":1,"nodeType":"Program","messageId":"max","endLine":1419,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":1428,"column":1,"nodeType":"Program","messageId":"max","endLine":1428,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":1436,"column":1,"nodeType":"Program","messageId":"max","endLine":1436,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":1442,"column":1,"nodeType":"Program","messageId":"max","endLine":1442,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":1458,"column":1,"nodeType":"Program","messageId":"max","endLine":1458,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":1614,"column":1,"nodeType":"Program","messageId":"max","endLine":1614,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":1871,"column":1,"nodeType":"Program","messageId":"max","endLine":1871,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":1872,"column":1,"nodeType":"Program","messageId":"max","endLine":1872,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 106. Maximum allowed is 100.","line":1874,"column":1,"nodeType":"Program","messageId":"max","endLine":1874,"endColumn":107},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":1876,"column":1,"nodeType":"Program","messageId":"max","endLine":1876,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":1880,"column":1,"nodeType":"Program","messageId":"max","endLine":1880,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":1881,"column":1,"nodeType":"Program","messageId":"max","endLine":1881,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":1882,"column":1,"nodeType":"Program","messageId":"max","endLine":1882,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":1883,"column":1,"nodeType":"Program","messageId":"max","endLine":1883,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":1884,"column":1,"nodeType":"Program","messageId":"max","endLine":1884,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":2010,"column":1,"nodeType":"Program","messageId":"max","endLine":2010,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 208. Maximum allowed is 100.","line":2055,"column":1,"nodeType":"Program","messageId":"max","endLine":2055,"endColumn":209},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":2086,"column":1,"nodeType":"Program","messageId":"max","endLine":2086,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":2087,"column":1,"nodeType":"Program","messageId":"max","endLine":2087,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":2173,"column":1,"nodeType":"Program","messageId":"max","endLine":2173,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":2440,"column":1,"nodeType":"Program","messageId":"max","endLine":2440,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":2441,"column":1,"nodeType":"Program","messageId":"max","endLine":2441,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":2467,"column":1,"nodeType":"Program","messageId":"max","endLine":2467,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":2486,"column":1,"nodeType":"Program","messageId":"max","endLine":2486,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":2493,"column":1,"nodeType":"Program","messageId":"max","endLine":2493,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":2501,"column":1,"nodeType":"Program","messageId":"max","endLine":2501,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 106. Maximum allowed is 100.","line":2532,"column":1,"nodeType":"Program","messageId":"max","endLine":2532,"endColumn":107},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":2543,"column":1,"nodeType":"Program","messageId":"max","endLine":2543,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":2547,"column":1,"nodeType":"Program","messageId":"max","endLine":2547,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":2554,"column":1,"nodeType":"Program","messageId":"max","endLine":2554,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":2580,"column":1,"nodeType":"Program","messageId":"max","endLine":2580,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":2581,"column":1,"nodeType":"Program","messageId":"max","endLine":2581,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 143. Maximum allowed is 100.","line":2603,"column":1,"nodeType":"Program","messageId":"max","endLine":2603,"endColumn":144},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":2873,"column":1,"nodeType":"Program","messageId":"max","endLine":2873,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":2882,"column":1,"nodeType":"Program","messageId":"max","endLine":2882,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":3273,"column":1,"nodeType":"Program","messageId":"max","endLine":3273,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":3334,"column":1,"nodeType":"Program","messageId":"max","endLine":3334,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":3341,"column":1,"nodeType":"Program","messageId":"max","endLine":3341,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":3342,"column":1,"nodeType":"Program","messageId":"max","endLine":3342,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":3351,"column":1,"nodeType":"Program","messageId":"max","endLine":3351,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":3369,"column":1,"nodeType":"Program","messageId":"max","endLine":3369,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":3404,"column":1,"nodeType":"Program","messageId":"max","endLine":3404,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":3405,"column":1,"nodeType":"Program","messageId":"max","endLine":3405,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":3551,"column":1,"nodeType":"Program","messageId":"max","endLine":3551,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":3730,"column":1,"nodeType":"Program","messageId":"max","endLine":3730,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 106. Maximum allowed is 100.","line":3946,"column":1,"nodeType":"Program","messageId":"max","endLine":3946,"endColumn":107},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":3957,"column":1,"nodeType":"Program","messageId":"max","endLine":3957,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":3983,"column":1,"nodeType":"Program","messageId":"max","endLine":3983,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":3985,"column":1,"nodeType":"Program","messageId":"max","endLine":3985,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":4085,"column":1,"nodeType":"Program","messageId":"max","endLine":4085,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 132. Maximum allowed is 100.","line":4425,"column":1,"nodeType":"Program","messageId":"max","endLine":4425,"endColumn":133},{"ruleId":"max-len","severity":1,"message":"This line has a length of 134. Maximum allowed is 100.","line":4437,"column":1,"nodeType":"Program","messageId":"max","endLine":4437,"endColumn":135},{"ruleId":"max-len","severity":1,"message":"This line has a length of 693. Maximum allowed is 100.","line":4444,"column":1,"nodeType":"Program","messageId":"max","endLine":4444,"endColumn":694},{"ruleId":"max-len","severity":1,"message":"This line has a length of 656. Maximum allowed is 100.","line":4445,"column":1,"nodeType":"Program","messageId":"max","endLine":4445,"endColumn":657},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":4520,"column":1,"nodeType":"Program","messageId":"max","endLine":4520,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 143. Maximum allowed is 100.","line":4528,"column":1,"nodeType":"Program","messageId":"max","endLine":4528,"endColumn":144},{"ruleId":"max-len","severity":1,"message":"This line has a length of 477. Maximum allowed is 100.","line":4529,"column":1,"nodeType":"Program","messageId":"max","endLine":4529,"endColumn":478},{"ruleId":"max-len","severity":1,"message":"This line has a length of 500. Maximum allowed is 100.","line":4530,"column":1,"nodeType":"Program","messageId":"max","endLine":4530,"endColumn":501},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":4540,"column":1,"nodeType":"Program","messageId":"max","endLine":4540,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":4542,"column":1,"nodeType":"Program","messageId":"max","endLine":4542,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 108. Maximum allowed is 100.","line":4641,"column":1,"nodeType":"Program","messageId":"max","endLine":4641,"endColumn":109},{"ruleId":"max-len","severity":1,"message":"This line has a length of 108. Maximum allowed is 100.","line":4642,"column":1,"nodeType":"Program","messageId":"max","endLine":4642,"endColumn":109},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":4684,"column":1,"nodeType":"Program","messageId":"max","endLine":4684,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":4685,"column":1,"nodeType":"Program","messageId":"max","endLine":4685,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":4689,"column":1,"nodeType":"Program","messageId":"max","endLine":4689,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":4815,"column":1,"nodeType":"Program","messageId":"max","endLine":4815,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":4818,"column":1,"nodeType":"Program","messageId":"max","endLine":4818,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":4831,"column":1,"nodeType":"Program","messageId":"max","endLine":4831,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":4832,"column":1,"nodeType":"Program","messageId":"max","endLine":4832,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 131. Maximum allowed is 100.","line":4876,"column":1,"nodeType":"Program","messageId":"max","endLine":4876,"endColumn":132},{"ruleId":"max-len","severity":1,"message":"This line has a length of 167. Maximum allowed is 100.","line":4877,"column":1,"nodeType":"Program","messageId":"max","endLine":4877,"endColumn":168},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":4955,"column":1,"nodeType":"Program","messageId":"max","endLine":4955,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":4957,"column":1,"nodeType":"Program","messageId":"max","endLine":4957,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":4960,"column":1,"nodeType":"Program","messageId":"max","endLine":4960,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 109. Maximum allowed is 100.","line":4961,"column":1,"nodeType":"Program","messageId":"max","endLine":4961,"endColumn":110},{"ruleId":"no-mixed-spaces-and-tabs","severity":2,"message":"Mixed spaces and tabs.","line":5019,"column":12,"nodeType":"Program","messageId":"mixedSpacesAndTabs","endLine":5019,"endColumn":14},{"ruleId":"yml/no-tab-indent","severity":2,"message":"Unexpected tabs.","line":5019,"column":13,"nodeType":null,"messageId":"disallow","endLine":5019,"endColumn":14},{"ruleId":"max-len","severity":1,"message":"This line has a length of 470. Maximum allowed is 100.","line":5085,"column":1,"nodeType":"Program","messageId":"max","endLine":5085,"endColumn":471},{"ruleId":"max-len","severity":1,"message":"This line has a length of 161. Maximum allowed is 100.","line":5087,"column":1,"nodeType":"Program","messageId":"max","endLine":5087,"endColumn":162},{"ruleId":"max-len","severity":1,"message":"This line has a length of 776. Maximum allowed is 100.","line":5088,"column":1,"nodeType":"Program","messageId":"max","endLine":5088,"endColumn":777},{"ruleId":"max-len","severity":1,"message":"This line has a length of 166. Maximum allowed is 100.","line":5089,"column":1,"nodeType":"Program","messageId":"max","endLine":5089,"endColumn":167},{"ruleId":"max-len","severity":1,"message":"This line has a length of 152. Maximum allowed is 100.","line":5091,"column":1,"nodeType":"Program","messageId":"max","endLine":5091,"endColumn":153},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":5207,"column":1,"nodeType":"Program","messageId":"max","endLine":5207,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 106. Maximum allowed is 100.","line":5307,"column":1,"nodeType":"Program","messageId":"max","endLine":5307,"endColumn":107},{"ruleId":"max-len","severity":1,"message":"This line has a length of 109. Maximum allowed is 100.","line":5309,"column":1,"nodeType":"Program","messageId":"max","endLine":5309,"endColumn":110},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":5326,"column":1,"nodeType":"Program","messageId":"max","endLine":5326,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":5328,"column":1,"nodeType":"Program","messageId":"max","endLine":5328,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":5355,"column":1,"nodeType":"Program","messageId":"max","endLine":5355,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 109. Maximum allowed is 100.","line":5356,"column":1,"nodeType":"Program","messageId":"max","endLine":5356,"endColumn":110},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":5490,"column":1,"nodeType":"Program","messageId":"max","endLine":5490,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":5492,"column":1,"nodeType":"Program","messageId":"max","endLine":5492,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":5494,"column":1,"nodeType":"Program","messageId":"max","endLine":5494,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":5495,"column":1,"nodeType":"Program","messageId":"max","endLine":5495,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 119. Maximum allowed is 100.","line":5512,"column":1,"nodeType":"Program","messageId":"max","endLine":5512,"endColumn":120},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":5589,"column":1,"nodeType":"Program","messageId":"max","endLine":5589,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 207. Maximum allowed is 100.","line":5679,"column":1,"nodeType":"Program","messageId":"max","endLine":5679,"endColumn":208},{"ruleId":"max-len","severity":1,"message":"This line has a length of 134. Maximum allowed is 100.","line":5682,"column":1,"nodeType":"Program","messageId":"max","endLine":5682,"endColumn":135},{"ruleId":"max-len","severity":1,"message":"This line has a length of 144. Maximum allowed is 100.","line":5683,"column":1,"nodeType":"Program","messageId":"max","endLine":5683,"endColumn":145},{"ruleId":"max-len","severity":1,"message":"This line has a length of 184. Maximum allowed is 100.","line":5684,"column":1,"nodeType":"Program","messageId":"max","endLine":5684,"endColumn":185},{"ruleId":"max-len","severity":1,"message":"This line has a length of 184. Maximum allowed is 100.","line":5686,"column":1,"nodeType":"Program","messageId":"max","endLine":5686,"endColumn":185},{"ruleId":"max-len","severity":1,"message":"This line has a length of 259. Maximum allowed is 100.","line":5687,"column":1,"nodeType":"Program","messageId":"max","endLine":5687,"endColumn":260},{"ruleId":"max-len","severity":1,"message":"This line has a length of 296. Maximum allowed is 100.","line":5688,"column":1,"nodeType":"Program","messageId":"max","endLine":5688,"endColumn":297},{"ruleId":"max-len","severity":1,"message":"This line has a length of 168. Maximum allowed is 100.","line":5690,"column":1,"nodeType":"Program","messageId":"max","endLine":5690,"endColumn":169},{"ruleId":"max-len","severity":1,"message":"This line has a length of 269. Maximum allowed is 100.","line":5696,"column":1,"nodeType":"Program","messageId":"max","endLine":5696,"endColumn":270},{"ruleId":"max-len","severity":1,"message":"This line has a length of 153. Maximum allowed is 100.","line":5698,"column":1,"nodeType":"Program","messageId":"max","endLine":5698,"endColumn":154},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":5788,"column":1,"nodeType":"Program","messageId":"max","endLine":5788,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":5930,"column":1,"nodeType":"Program","messageId":"max","endLine":5930,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":5932,"column":1,"nodeType":"Program","messageId":"max","endLine":5932,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":6013,"column":1,"nodeType":"Program","messageId":"max","endLine":6013,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":6014,"column":1,"nodeType":"Program","messageId":"max","endLine":6014,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":6015,"column":1,"nodeType":"Program","messageId":"max","endLine":6015,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":6016,"column":1,"nodeType":"Program","messageId":"max","endLine":6016,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":6022,"column":1,"nodeType":"Program","messageId":"max","endLine":6022,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":6023,"column":1,"nodeType":"Program","messageId":"max","endLine":6023,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":6024,"column":1,"nodeType":"Program","messageId":"max","endLine":6024,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 133. Maximum allowed is 100.","line":6076,"column":1,"nodeType":"Program","messageId":"max","endLine":6076,"endColumn":134},{"ruleId":"max-len","severity":1,"message":"This line has a length of 108. Maximum allowed is 100.","line":6077,"column":1,"nodeType":"Program","messageId":"max","endLine":6077,"endColumn":109},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":6078,"column":1,"nodeType":"Program","messageId":"max","endLine":6078,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 113. Maximum allowed is 100.","line":6281,"column":1,"nodeType":"Program","messageId":"max","endLine":6281,"endColumn":114},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":6460,"column":1,"nodeType":"Program","messageId":"max","endLine":6460,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 135. Maximum allowed is 100.","line":6817,"column":1,"nodeType":"Program","messageId":"max","endLine":6817,"endColumn":136},{"ruleId":"max-len","severity":1,"message":"This line has a length of 149. Maximum allowed is 100.","line":6818,"column":1,"nodeType":"Program","messageId":"max","endLine":6818,"endColumn":150},{"ruleId":"max-len","severity":1,"message":"This line has a length of 139. Maximum allowed is 100.","line":6819,"column":1,"nodeType":"Program","messageId":"max","endLine":6819,"endColumn":140},{"ruleId":"max-len","severity":1,"message":"This line has a length of 151. Maximum allowed is 100.","line":6820,"column":1,"nodeType":"Program","messageId":"max","endLine":6820,"endColumn":152},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":6881,"column":1,"nodeType":"Program","messageId":"max","endLine":6881,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":6887,"column":1,"nodeType":"Program","messageId":"max","endLine":6887,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":7014,"column":1,"nodeType":"Program","messageId":"max","endLine":7014,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":7031,"column":1,"nodeType":"Program","messageId":"max","endLine":7031,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":7032,"column":1,"nodeType":"Program","messageId":"max","endLine":7032,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":7033,"column":1,"nodeType":"Program","messageId":"max","endLine":7033,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":7055,"column":1,"nodeType":"Program","messageId":"max","endLine":7055,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 106. Maximum allowed is 100.","line":7057,"column":1,"nodeType":"Program","messageId":"max","endLine":7057,"endColumn":107},{"ruleId":"max-len","severity":1,"message":"This line has a length of 118. Maximum allowed is 100.","line":7068,"column":1,"nodeType":"Program","messageId":"max","endLine":7068,"endColumn":119},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":7089,"column":1,"nodeType":"Program","messageId":"max","endLine":7089,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":7090,"column":1,"nodeType":"Program","messageId":"max","endLine":7090,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 117. Maximum allowed is 100.","line":7109,"column":1,"nodeType":"Program","messageId":"max","endLine":7109,"endColumn":118},{"ruleId":"max-len","severity":1,"message":"This line has a length of 106. Maximum allowed is 100.","line":7110,"column":1,"nodeType":"Program","messageId":"max","endLine":7110,"endColumn":107},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":7187,"column":1,"nodeType":"Program","messageId":"max","endLine":7187,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":7190,"column":1,"nodeType":"Program","messageId":"max","endLine":7190,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 165. Maximum allowed is 100.","line":7206,"column":1,"nodeType":"Program","messageId":"max","endLine":7206,"endColumn":166},{"ruleId":"max-len","severity":1,"message":"This line has a length of 188. Maximum allowed is 100.","line":7225,"column":1,"nodeType":"Program","messageId":"max","endLine":7225,"endColumn":189},{"ruleId":"max-len","severity":1,"message":"This line has a length of 132. Maximum allowed is 100.","line":7226,"column":1,"nodeType":"Program","messageId":"max","endLine":7226,"endColumn":133},{"ruleId":"max-len","severity":1,"message":"This line has a length of 133. Maximum allowed is 100.","line":7227,"column":1,"nodeType":"Program","messageId":"max","endLine":7227,"endColumn":134},{"ruleId":"max-len","severity":1,"message":"This line has a length of 127. Maximum allowed is 100.","line":7228,"column":1,"nodeType":"Program","messageId":"max","endLine":7228,"endColumn":128},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":7277,"column":1,"nodeType":"Program","messageId":"max","endLine":7277,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 113. Maximum allowed is 100.","line":7477,"column":1,"nodeType":"Program","messageId":"max","endLine":7477,"endColumn":114},{"ruleId":"max-len","severity":1,"message":"This line has a length of 115. Maximum allowed is 100.","line":7478,"column":1,"nodeType":"Program","messageId":"max","endLine":7478,"endColumn":116},{"ruleId":"max-len","severity":1,"message":"This line has a length of 115. Maximum allowed is 100.","line":7479,"column":1,"nodeType":"Program","messageId":"max","endLine":7479,"endColumn":116},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":7498,"column":1,"nodeType":"Program","messageId":"max","endLine":7498,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":7500,"column":1,"nodeType":"Program","messageId":"max","endLine":7500,"endColumn":102},{"ruleId":"max-len","severity":1,"message":"This line has a length of 103. Maximum allowed is 100.","line":7503,"column":1,"nodeType":"Program","messageId":"max","endLine":7503,"endColumn":104},{"ruleId":"max-len","severity":1,"message":"This line has a length of 106. Maximum allowed is 100.","line":7504,"column":1,"nodeType":"Program","messageId":"max","endLine":7504,"endColumn":107},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":7505,"column":1,"nodeType":"Program","messageId":"max","endLine":7505,"endColumn":105},{"ruleId":"max-len","severity":1,"message":"This line has a length of 106. Maximum allowed is 100.","line":7506,"column":1,"nodeType":"Program","messageId":"max","endLine":7506,"endColumn":107},{"ruleId":"max-len","severity":1,"message":"This line has a length of 113. Maximum allowed is 100.","line":7507,"column":1,"nodeType":"Program","messageId":"max","endLine":7507,"endColumn":114},{"ruleId":"max-len","severity":1,"message":"This line has a length of 116. Maximum allowed is 100.","line":7510,"column":1,"nodeType":"Program","messageId":"max","endLine":7510,"endColumn":117},{"ruleId":"max-len","severity":1,"message":"This line has a length of 118. Maximum allowed is 100.","line":7513,"column":1,"nodeType":"Program","messageId":"max","endLine":7513,"endColumn":119},{"ruleId":"max-len","severity":1,"message":"This line has a length of 153. Maximum allowed is 100.","line":7531,"column":1,"nodeType":"Program","messageId":"max","endLine":7531,"endColumn":154},{"ruleId":"max-len","severity":1,"message":"This line has a length of 118. Maximum allowed is 100.","line":7533,"column":1,"nodeType":"Program","messageId":"max","endLine":7533,"endColumn":119},{"ruleId":"max-len","severity":1,"message":"This line has a length of 126. Maximum allowed is 100.","line":7535,"column":1,"nodeType":"Program","messageId":"max","endLine":7535,"endColumn":127},{"ruleId":"max-len","severity":1,"message":"This line has a length of 117. Maximum allowed is 100.","line":7536,"column":1,"nodeType":"Program","messageId":"max","endLine":7536,"endColumn":118},{"ruleId":"max-len","severity":1,"message":"This line has a length of 126. Maximum allowed is 100.","line":7538,"column":1,"nodeType":"Program","messageId":"max","endLine":7538,"endColumn":127},{"ruleId":"max-len","severity":1,"message":"This line has a length of 137. Maximum allowed is 100.","line":7823,"column":1,"nodeType":"Program","messageId":"max","endLine":7823,"endColumn":138},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":7899,"column":1,"nodeType":"Program","messageId":"max","endLine":7899,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":8064,"column":1,"nodeType":"Program","messageId":"max","endLine":8064,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":8065,"column":1,"nodeType":"Program","messageId":"max","endLine":8065,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":8066,"column":1,"nodeType":"Program","messageId":"max","endLine":8066,"endColumn":103},{"ruleId":"max-len","severity":1,"message":"This line has a length of 106. Maximum allowed is 100.","line":8067,"column":1,"nodeType":"Program","messageId":"max","endLine":8067,"endColumn":107},{"ruleId":"max-len","severity":1,"message":"This line has a length of 105. Maximum allowed is 100.","line":8071,"column":1,"nodeType":"Program","messageId":"max","endLine":8071,"endColumn":106},{"ruleId":"max-len","severity":1,"message":"This line has a length of 104. Maximum allowed is 100.","line":8072,"column":1,"nodeType":"Program","messageId":"max","endLine":8072,"endColumn":105},{"ruleId":"no-mixed-spaces-and-tabs","severity":2,"message":"Mixed spaces and tabs.","line":8182,"column":12,"nodeType":"Program","messageId":"mixedSpacesAndTabs","endLine":8182,"endColumn":14},{"ruleId":"yml/no-tab-indent","severity":2,"message":"Unexpected tabs.","line":8182,"column":13,"nodeType":null,"messageId":"disallow","endLine":8182,"endColumn":14},{"ruleId":"no-mixed-spaces-and-tabs","severity":2,"message":"Mixed spaces and tabs.","line":8183,"column":12,"nodeType":"Program","messageId":"mixedSpacesAndTabs","endLine":8183,"endColumn":14},{"ruleId":"yml/no-tab-indent","severity":2,"message":"Unexpected tabs.","line":8183,"column":13,"nodeType":null,"messageId":"disallow","endLine":8183,"endColumn":14},{"ruleId":"no-mixed-spaces-and-tabs","severity":2,"message":"Mixed spaces and tabs.","line":8184,"column":12,"nodeType":"Program","messageId":"mixedSpacesAndTabs","endLine":8184,"endColumn":14},{"ruleId":"yml/no-tab-indent","severity":2,"message":"Unexpected tabs.","line":8184,"column":13,"nodeType":null,"messageId":"disallow","endLine":8184,"endColumn":14},{"ruleId":"no-mixed-spaces-and-tabs","severity":2,"message":"Mixed spaces and tabs.","line":8185,"column":12,"nodeType":"Program","messageId":"mixedSpacesAndTabs","endLine":8185,"endColumn":14},{"ruleId":"yml/no-tab-indent","severity":2,"message":"Unexpected tabs.","line":8185,"column":13,"nodeType":null,"messageId":"disallow","endLine":8185,"endColumn":14}],"suppressedMessages":[],"errorCount":10,"fatalErrorCount":0,"warningCount":218,"fixableErrorCount":0,"fixableWarningCount":0,"source":"# This file is automatically generated using maintenance/generateConfigSchema.php.\n# Do not modify this file manually, edit includes/MainConfigSchema.php instead.\nconfig-schema:\n    ConfigRegistry:\n        default:\n            main: \"GlobalVarConfig::newInstance\"\n        type: object\n        description: |-\n            Registry of factory functions to create config objects:\n            The 'main' key must be set, and the value should be a valid\n            callable.\n            @since 1.23\n    Sitename:\n        default: MediaWiki\n        description: Name of the site. It must be changed in LocalSettings.php\n    Server:\n        default: false\n        description: |-\n            URL of the server.\n            **Example:**\n            ```\n            $wgServer = 'http://example.com';\n            ```\n            This must be set in LocalSettings.php. The MediaWiki installer does this\n            automatically since 1.18.\n            If you want to use protocol-relative URLs on your wiki, set this to a\n            protocol-relative URL like '//example.com' and set $wgCanonicalServer\n            to a fully qualified URL.\n    CanonicalServer:\n        default: false\n        description: |-\n            Canonical URL of the server, to use in IRC feeds and notification e-mails.\n            Must be fully qualified, even if $wgServer is protocol-relative.\n            Defaults to $wgServer, expanded to a fully qualified http:// URL if needed.\n            @since 1.18\n    ServerName:\n        default: false\n        description: |-\n            Server name. This is automatically computed by parsing the bare\n            hostname out of $wgCanonicalServer. It should not be customized.\n            @since 1.24\n    AssumeProxiesUseDefaultProtocolPorts:\n        default: true\n        type: boolean\n        description: |-\n            When the wiki is running behind a proxy and this is set to true, assumes that the proxy\n            exposes the wiki on the standard ports (443 for https and 80 for http).\n            @since 1.26\n    HttpsPort:\n        default: 443\n        description: |-\n            For installations where the canonical server is HTTP but HTTPS is optionally\n            supported, you can specify a non-standard HTTPS port here. $wgServer should\n            be a protocol-relative URL.\n            If HTTPS is always used, just specify the port number in $wgServer.\n            @see https://phabricator.wikimedia.org/T67184\n            @since 1.24\n    ForceHTTPS:\n        default: false\n        type: boolean\n        description: |-\n            If this is true, when an insecure HTTP request is received, always redirect\n            to HTTPS. This overrides and disables the preferhttps user preference, and it\n            overrides $wgSecureLogin.\n            $wgServer may be either https or protocol-relative. If $wgServer starts with\n            \"http://\", an exception will be thrown.\n            If a reverse proxy or CDN is used to forward requests from HTTPS to HTTP,\n            the request header \"X-Forwarded-Proto: https\" should be sent to suppress\n            the redirect.\n            In addition to setting this to true, for optimal security, the web server\n            should also be configured to send Strict-Transport-Security response headers.\n            @since 1.35\n    ScriptPath:\n        default: /wiki\n        description: |-\n            The path we should point to.\n            It might be a virtual path in case with use apache mod_rewrite for example.\n            This *needs* to be set correctly.\n            Other paths will be set to defaults based on it unless they are directly\n            set in LocalSettings.php\n    UsePathInfo:\n        dynamicDefault:\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultUsePathInfo ]\n        description: |-\n            Whether to support URLs like index.php/Page_title.\n            The effective default value is determined at runtime:\n            it will be enabled in environments where it is expected to be safe.\n            Override this to false if $_SERVER['PATH_INFO'] contains unexpectedly\n            incorrect garbage, or to true if it is really correct.\n            The default $wgArticlePath will be set based on this value at runtime, but if\n            you have customized it, having this incorrectly set to true can cause\n            redirect loops when \"pretty URLs\" are used.\n            @since 1.2.1\n        default: null\n    Script:\n        default: false\n        dynamicDefault:\n            use: [ ScriptPath ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultScript ]\n        description: |-\n            The URL path to index.php.\n            Defaults to \"{$wgScriptPath}/index.php\".\n    LoadScript:\n        default: false\n        dynamicDefault:\n            use: [ ScriptPath ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultLoadScript ]\n        description: |-\n            The URL path to load.php.\n            Defaults to \"{$wgScriptPath}/load.php\".\n            @since 1.17\n    RestPath:\n        default: false\n        dynamicDefault:\n            use: [ ScriptPath ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultRestPath ]\n        description: |-\n            The URL path to the REST API.\n            Defaults to \"{$wgScriptPath}/rest.php\"\n            @since 1.34\n    StylePath:\n        default: false\n        dynamicDefault:\n            use: [ ResourceBasePath ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultStylePath ]\n        description: |-\n            The URL path of the skins directory.\n            Defaults to \"{$wgResourceBasePath}/skins\".\n            @since 1.3\n    LocalStylePath:\n        default: false\n        dynamicDefault:\n            use: [ ScriptPath ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultLocalStylePath ]\n        description: |-\n            The URL path of the skins directory. Should not point to an external domain.\n            Defaults to \"{$wgScriptPath}/skins\".\n            @since 1.17\n    ExtensionAssetsPath:\n        default: false\n        dynamicDefault:\n            use: [ ResourceBasePath ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultExtensionAssetsPath ]\n        description: |-\n            The URL path of the extensions directory.\n            Defaults to \"{$wgResourceBasePath}/extensions\".\n            @since 1.16\n    ExtensionDirectory:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Extensions directory in the file system.\n            Defaults to \"{$IP}/extensions\" in Setup.php\n            @note This configuration variable is used to locate extensions while loading settings.\n            @since 1.25\n    StyleDirectory:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Skins directory in the file system.\n            Defaults to \"{$IP}/skins\" in Setup.php.\n            @note This configuration variable is used to locate skins while loading settings.\n            @since 1.3\n    ArticlePath:\n        default: false\n        dynamicDefault:\n            use: [ Script, UsePathInfo ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultArticlePath ]\n        description: |-\n            The URL path for primary article page views. This path should contain $1,\n            which is replaced by the article title.\n            Defaults to \"{$wgScript}/$1\" or \"{$wgScript}?title=$1\",\n            depending on $wgUsePathInfo.\n    UploadPath:\n        default: false\n        dynamicDefault:\n            use: [ ScriptPath ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultUploadPath ]\n        description: |-\n            The URL path for the images directory.\n            Defaults to \"{$wgScriptPath}/images\".\n    ImgAuthPath:\n        default: false\n        description: |-\n            The base path for img_auth.php. This is used to interpret the request URL\n            for requests to img_auth.php that do not match the base upload path. If\n            false, \"{$wgScriptPath}/img_auth.php\" is used.\n            Normally, requests to img_auth.php have a REQUEST_URI which matches\n            $wgUploadPath, and in that case, setting this should not be necessary.\n            This variable is used in case img_auth.php is accessed via a different path\n            than $wgUploadPath.\n            @since 1.35\n    ThumbPath:\n        default: false\n        description: |-\n            The base path for thumb_handler.php. This is used to interpret the request URL\n            for requests to thumb_handler.php that do not match the base upload path.\n            @since 1.36\n    UploadDirectory:\n        default: false\n        type:\n            - string\n            - boolean\n            - \"null\"\n        description: |-\n            The filesystem path of the images directory.\n            Defaults to \"{$IP}/images\" in Setup.php.\n    FileCacheDirectory:\n        default: false\n        dynamicDefault:\n            use: [ UploadDirectory ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultFileCacheDirectory ]\n        description: |-\n            Directory where the cached page will be saved.\n            Defaults to \"{$wgUploadDirectory}/cache\".\n    Logo:\n        default: false\n        dynamicDefault:\n            use: [ ResourceBasePath ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultLogo ]\n        description: |-\n            The URL path of the wiki logo. The logo size should be 135x135 pixels.\n            Defaults to \"$wgResourceBasePath/resources/assets/change-your-logo.svg\".\n            Developers should retrieve this logo (and other variants) using\n            the static function MediaWiki\\ResourceLoader\\SkinModule::getAvailableLogos\n            Ignored if $wgLogos is set.\n    Logos:\n        default: false\n        type:\n            - object\n            - boolean\n        description: |-\n            Specification for different versions of the wiki logo.\n            This is an array which should have the following k/v pairs:\n            All path values can be either absolute or relative URIs\n            The `1x` key is a path to the 1x version of square logo (should be 135x135 pixels)\n            The `1.5x` key is a path to the 1.5x version of square logo\n            The `2x` key is a path to the 2x version of square logo\n            The `svg` key is a path to the svg version of square logo\n            The `icon` key is a path to the version of the logo without wordmark and tagline\n            The `wordmark` key may be null or an array with the following fields\n             - `src` path to wordmark version\n             - `1x` path to svg wordmark version (if you want to\n                support browsers with SVG support with an SVG logo)\n             - `width` width of the logo in pixels\n             - `height` height of the logo in pixels\n            The `tagline` key may be null or array with the following fields\n             - `src` path to tagline image\n             - `width` width of the tagline in pixels\n             - `height` height of the tagline in pixels\n            @par Example:\n            @code\n            $wgLogos = [\n               '1x' => 'path/to/1x_version.png',\n               '1.5x' => 'path/to/1.5x_version.png',\n               '2x' => 'path/to/2x_version.png',\n               'svg' => 'path/to/svg_version.svg',\n               'icon' => 'path/to/icon.png',\n               'wordmark' => [\n                 'src' => 'path/to/wordmark_version.png',\n                 '1x' => 'path/to/wordmark_version.svg',\n                 'width' => 135,\n                 'height' => 20,\n               ],\n               'tagline' => [\n                 'src' => 'path/to/tagline_version.png',\n                 'width' => 135,\n                 'height' => 15,\n               ]\n            ];\n            @endcode\n            Defaults to [ \"1x\" => $wgLogo ],\n              or [ \"1x\" => \"$wgResourceBasePath/resources/assets/change-your-logo.svg\" ] if $wgLogo is not set.\n            @since 1.35\n    Favicon:\n        default: /favicon.ico\n        description: |-\n            The URL path of the icon.\n            @since 1.6\n    AppleTouchIcon:\n        default: false\n        description: |-\n            The URL path of the icon for iPhone and iPod Touch web app bookmarks.\n            Defaults to no icon.\n            @since 1.12\n    ReferrerPolicy:\n        default: false\n        type:\n            - array\n            - string\n            - boolean\n        description: |-\n            Value for the referrer policy meta tag.\n            One or more of the values defined in the Referrer Policy specification:\n            https://w3c.github.io/webappsec-referrer-policy/\n            ('no-referrer', 'no-referrer-when-downgrade', 'same-origin',\n            'origin', 'strict-origin', 'origin-when-cross-origin',\n            'strict-origin-when-cross-origin', or 'unsafe-url')\n            Setting it to false prevents the meta tag from being output\n            (which results in falling back to the Referrer-Policy header,\n            or 'no-referrer-when-downgrade' if that's not set either.)\n            Setting it to an array (supported since 1.31) will create a meta tag for\n            each value, in the reverse of the order (meaning that the first array element\n            will be the default and the others used as fallbacks for browsers which do not\n            understand it).\n            @since 1.25\n    TmpDirectory:\n        default: false\n        description: |-\n            The local filesystem path to a temporary directory. This must not be web-accessible.\n            When this setting is set to false, its value will automatically be decided\n            through the first call to wfTempDir(). See that method's implementation for\n            the actual detection logic.\n            To find the temporary path for the current wiki, developers must not use\n            this variable directly. Use the global function wfTempDir() instead.\n            The temporary directory is expected to be shared with other applications,\n            including other MediaWiki instances (which might not run the same version\n            or configuration). When storing files here, take care to avoid conflicts\n            with other instances of MediaWiki. For example, when caching the result\n            of a computation, the file name should incorporate the input of the\n            computation so that it cannot be confused for the result of a similar\n            computation by another MediaWiki instance.\n            @see \\wfTempDir()\n            @note Default changed to false in MediaWiki 1.20.\n    UploadBaseUrl:\n        default: \"\"\n        description: |-\n            If set, this URL is added to the start of $wgUploadPath to form a complete\n            upload URL.\n            @since 1.4\n    UploadStashScalerBaseUrl:\n        default: false\n        deprecated: since 1.36 Use thumbProxyUrl in $wgLocalFileRepo\n        description: |-\n            To enable remote on-demand scaling, set this to the thumbnail base URL.\n            Full thumbnail URL will be like $wgUploadStashScalerBaseUrl/e/e6/Foo.jpg/123px-Foo.jpg\n            where 'e6' are the first two characters of the MD5 hash of the file name.\n            @deprecated since 1.36 Use thumbProxyUrl in $wgLocalFileRepo\n            If $wgUploadStashScalerBaseUrl and thumbProxyUrl are both false, thumbs are\n            rendered locally as needed.\n            @since 1.17\n    ActionPaths:\n        default: { }\n        type: object\n        description: |-\n            To set 'pretty' URL paths for actions other than\n            plain page views, add to this array.\n            **Example:**\n            Set pretty URL for the edit action:\n            ```\n              'edit' => \"$wgScriptPath/edit/$1\"\n            ```\n            There must be an appropriate script or rewrite rule in place to handle these URLs.\n            @since 1.5\n    MainPageIsDomainRoot:\n        default: false\n        type: boolean\n        description: |-\n            When enabled, the domain root will show the wiki's main page,\n            instead of redirecting to the main page.\n            @since 1.34\n    EnableUploads:\n        default: false\n        description: |-\n            Allow users to upload files.\n            Use $wgLocalFileRepo to control how and where uploads are stored.\n            Disabled by default as for security reasons.\n            See <https://www.mediawiki.org/wiki/Manual:Configuring_file_uploads>.\n            @since 1.5\n    UploadStashMaxAge:\n        default: 21600\n        description: The maximum age of temporary (incomplete) uploaded files\n    EnableAsyncUploads:\n        default: false\n        description: |-\n            Enable deferred upload tasks that use the job queue.\n            Only enable this if job runners are set up for both the\n            'AssembleUploadChunks','PublishStashedFile' and 'UploadFromUrl' job types.\n    EnableAsyncUploadsByURL:\n        default: false\n        description: |-\n            Enable the async processing of upload by url in Special:Upload.\n            Only works if EnableAsyncUploads is also enabled\n    UploadMaintenance:\n        default: false\n        description: To disable file delete/restore temporarily\n    IllegalFileChars:\n        default: ':\\/\\\\'\n        deprecated: since 1.41; no longer customizable\n        description: |-\n            Additional characters that are not allowed in filenames. They are replaced with '-' when\n            uploading. Like $wgLegalTitleChars, this is a regexp character class.\n            Slashes and backslashes are disallowed regardless of this setting, but included here for\n            completeness.\n            @deprecated since 1.41; no longer customizable\n    DeletedDirectory:\n        default: false\n        dynamicDefault:\n            use: [ UploadDirectory ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultDeletedDirectory ]\n        description: |-\n            What directory to place deleted uploads in.\n            Defaults to \"{$wgUploadDirectory}/deleted\".\n    ImgAuthDetails:\n        default: false\n        description: Set this to true if you use img_auth and want the user to see details on why access failed.\n    ImgAuthUrlPathMap:\n        default: { }\n        type: object\n        description: |-\n            Map of relative URL directories to match to internal mwstore:// base storage paths.\n            For img_auth.php requests, everything after \"img_auth.php/\" is checked to see\n            if starts with any of the prefixes defined here. The prefixes should not overlap.\n            The prefix that matches has a corresponding storage path, which the rest of the URL\n            is assumed to be relative to. The file at that path (or a 404) is send to the client.\n            Example:\n            $wgImgAuthUrlPathMap['/timeline/'] = 'mwstore://local-fs/timeline-render/';\n            The above maps \".../img_auth.php/timeline/X\" to \"mwstore://local-fs/timeline-render/\".\n            The name \"local-fs\" should correspond by name to an entry in $wgFileBackends.\n            @see self::FileBackends\n    LocalFileRepo:\n        default: false\n        type:\n            - object\n            - boolean\n        dynamicDefault:\n            use: [ UploadDirectory, ScriptPath, Favicon, UploadBaseUrl, UploadPath, HashedUploadDirectory, ThumbnailScriptPath, GenerateThumbnailOnParse, DeletedDirectory, UpdateCompatibleMetadata ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultLocalFileRepo ]\n        description: |-\n            File repository structures\n            $wgLocalFileRepo is a single repository structure, and $wgForeignFileRepos is\n            an array of such structures. Each repository structure is an associative\n            array of properties configuring the repository.\n            Properties required for all repos:\n              - class            The class name for the repository. May come from the core or an extension.\n                                 The core repository classes are FileRepo, LocalRepo, ForeignDBRepo.\n              - name             A unique name for the repository (but $wgLocalFileRepo should be 'local').\n                                 The name should consist of alpha-numeric characters.\n            Optional common properties:\n              - backend          A file backend name (see $wgFileBackends). If not specified, or\n                                 if the name is not present in $wgFileBackends, an FSFileBackend\n                                 will automatically be configured.\n              - lockManager      If a file backend is automatically configured, this will be lock\n                                 manager name used. A lock manager named in $wgLockManagers, or one of\n                                 the default lock managers \"fsLockManager\" or \"nullLockManager\". Default\n                                 \"fsLockManager\".\n              - favicon          URL to a favicon. This is exposed via FileRepo::getInfo and\n                                 ApiQueryFileRepoInfo. Originally for use by MediaViewer (T77093).\n            For most core repos:\n              - zones            Associative array of zone names that each map to an array with:\n                                     container  : backend container name the zone is in\n                                     directory  : root path within container for the zone\n                                     url        : base URL to the root of the zone\n                                     urlsByExt  : map of file extension types to base URLs\n                                                  (useful for using a different cache for videos)\n                                 Zones default to using \"<repo name>-<zone name>\" as the container name\n                                 and default to using the container root as the zone's root directory.\n                                 Nesting of zone locations within other zones should be avoided.\n              - url              Public zone URL. The 'zones' settings take precedence.\n              - hashLevels       The number of directory levels for hash-based division of files.\n                                 Set this to 0 if you do not want MediaWiki to divide your images\n                                 directory into many subdirectories.\n                                 It is recommended to leave this enabled. In previous versions of\n                                 MediaWiki, some users set this to false to allow images to be added to\n                                 the wiki by copying them into $wgUploadDirectory and then running\n                                 maintenance/rebuildImages.php to register them in the database.\n                                 This is no longer supported, use maintenance/importImages.php instead.\n                                 Default: 2.\n              - deletedHashLevels\n                                 Optional 'hashLevels' override for the 'deleted' zone.\n              - thumbScriptUrl   The URL for thumb.php (optional, not recommended)\n              - transformVia404  Whether to skip media file transformation on parse and rely on a 404\n                                 handler instead.\n              - thumbProxyUrl    Optional. URL of where to proxy thumb.php requests to. This is\n                                 also used internally for remote thumbnailing of upload stash files.\n                                 Example: http://127.0.0.1:8888/wiki/dev/thumb/\n              - thumbProxySecret Optional value of the X-Swift-Secret header to use in requests to\n                                 thumbProxyUrl\n              - disableLocalTransform\n                                 If present and true, local image scaling will be disabled. If attempted,\n                                 it will show an error to the user and log an error message. To avoid an\n                                 error, thumbProxyUrl must be set, as well as either transformVia404\n                                 (preferred) or thumbScriptUrl.\n              - initialCapital   Equivalent to $wgCapitalLinks (or $wgCapitalLinkOverrides[NS_FILE],\n                                 determines whether filenames implicitly start with a capital letter.\n                                 The current implementation may give incorrect description page links\n                                 when the local $wgCapitalLinks and initialCapital are mismatched.\n              - pathDisclosureProtection\n                                 May be 'paranoid' to remove all parameters from error messages, 'none' to\n                                 leave the paths in unchanged, or 'simple' to replace paths with\n                                 placeholders. Default for LocalRepo is 'simple'.\n              - fileMode         This allows wikis to set the file mode when uploading/moving files. Default\n                                 is 0644.\n              - directory        The local filesystem directory where public files are stored. Not used for\n                                 some remote repos.\n              - thumbDir         The base thumbnail directory. Defaults to \"<directory>/thumb\".\n              - thumbUrl         The base thumbnail URL. Defaults to \"<url>/thumb\".\n              - isPrivate        Set this if measures should always be taken to keep the files private.\n                                 One should not trust this to assure that the files are not web readable;\n                                 the server configuration should be done manually depending on the backend.\n              - useJsonMetadata  Whether handler metadata should be stored in JSON format. Default: true.\n              - useSplitMetadata Whether handler metadata should be split up and stored in the text table.\n                                 Default: false.\n              - splitMetadataThreshold\n                                 If the media handler opts in, large metadata items will be split into a\n                                 separate blob in the database if the item is larger than this threshold.\n                                 Default: 1000\n              - updateCompatibleMetadata\n                                 When true, image metadata will be upgraded by reloading it from the original\n                                 file, if the handler indicates that it is out of date.\n                                 By default, when purging a file or otherwise refreshing file metadata, it\n                                 is only reloaded when the metadata is invalid. Valid data originally loaded\n                                 by a current or older compatible version is left unchanged. Enable this\n                                 to also reload and upgrade metadata that was stored by an older compatible\n                                 version. See also MediaHandler::isMetadataValid, and RefreshImageMetadata.\n                                 Default: false.\n              - reserializeMetadata\n                                 If true, image metadata will be automatically rewritten to the database\n                                 if its serialization format is out of date. Default: false\n            These settings describe a foreign MediaWiki installation. They are optional, and will be ignored\n            for local repositories:\n              - descBaseUrl       URL of image description pages, e.g. https://en.wikipedia.org/wiki/File:\n              - scriptDirUrl      URL of the MediaWiki installation, equivalent to $wgScriptPath, e.g.\n                                  https://en.wikipedia.org/w\n              - articleUrl        Equivalent to $wgArticlePath, e.g. https://en.wikipedia.org/wiki/$1\n              - fetchDescription  Fetch the text of the remote file description page and display them\n                                  on the local wiki.\n              - abbrvThreshold    File names over this size will use the short form of thumbnail names.\n                                  Short thumbnail names only have the width, parameters, and the extension.\n            ForeignDBRepo:\n              - dbType, dbServer, dbUser, dbPassword, dbName, dbFlags\n                                  equivalent to the corresponding member of $wgDBservers\n              - tablePrefix       Table prefix, the foreign wiki's $wgDBprefix\n              - hasSharedCache    Set to true if the foreign wiki's $wgMainCacheType is identical to,\n                                  and accessible from, this wiki.\n            ForeignAPIRepo:\n              - apibase              Use for the foreign API's URL\n              - apiThumbCacheExpiry  How long to locally cache thumbs for\n            If you leave $wgLocalFileRepo set to false, Setup will fill in appropriate values.\n            Otherwise, set $wgLocalFileRepo to a repository structure as described above.\n            If you set $wgUseInstantCommons to true, it will add an entry for Commons.\n            If you set $wgForeignFileRepos to an array of repository structures, those will\n            be searched after the local file repo.\n            Otherwise, you will only have access to local media files.\n            @see \\FileRepo::__construct for the default options.\n            @see Setup.php for an example usage and default initialization.\n    ForeignFileRepos:\n        default: []\n        type: array\n        description: |-\n            Enable the use of files from one or more other wikis.\n            If you operate multiple wikis, you can declare a shared upload path here.\n            Uploads to the local wiki will NOT be stored here - See $wgLocalFileRepo\n            and $wgUploadDirectory for that.\n            The wiki will only consider the foreign repository if no file of the given name\n            is found in the local repository (e.g. via `[[File:..]]` syntax).\n            @since 1.11\n            @see self::LocalFileRepo\n    UseInstantCommons:\n        default: false\n        description: |-\n            Use Wikimedia Commons as a foreign file repository.\n            This is a shortcut for adding an entry to $wgForeignFileRepos\n            for https://commons.wikimedia.org, using ForeignAPIRepo with the\n            default settings.\n            @since 1.16\n    UseSharedUploads:\n        default: false\n        type: boolean\n        description: |-\n            Shortcut for adding an entry to $wgForeignFileRepos.\n            Uses the following variables:\n            - directory: $wgSharedUploadDirectory.\n            - url: $wgSharedUploadPath.\n            - hashLevels: Based on $wgHashedSharedUploadDirectory.\n            - thumbScriptUrl: $wgSharedThumbnailScriptPath.\n            - transformVia404: Based on $wgGenerateThumbnailOnParse.\n            - descBaseUrl: $wgRepositoryBaseUrl.\n            - fetchDescription: $wgFetchCommonsDescriptions.\n            If $wgSharedUploadDBname is set, it uses the ForeignDBRepo\n            class, with also the following variables:\n            - dbName: $wgSharedUploadDBname.\n            - dbType: $wgDBtype.\n            - dbServer: $wgDBserver.\n            - dbUser: $wgDBuser.\n            - dbPassword: $wgDBpassword.\n            - dbFlags: Based on $wgDebugDumpSql.\n            - tablePrefix: $wgSharedUploadDBprefix,\n            - hasSharedCache: $wgCacheSharedUploads.\n            @since 1.3\n    SharedUploadDirectory:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Shortcut for the 'directory' setting of $wgForeignFileRepos.\n            Only used if $wgUseSharedUploads is enabled.\n            @since 1.3\n    SharedUploadPath:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Shortcut for the 'url' setting of $wgForeignFileRepos.\n            Only used if $wgUseSharedUploads is enabled.\n            @since 1.3\n    HashedSharedUploadDirectory:\n        default: true\n        type: boolean\n        description: |-\n            Shortcut for the 'hashLevels' setting of $wgForeignFileRepos.\n            Only used if $wgUseSharedUploads is enabled.\n            @since 1.3\n    RepositoryBaseUrl:\n        default: \"https://commons.wikimedia.org/wiki/File:\"\n        description: |-\n            Shortcut for the 'descBaseUrl' setting of $wgForeignFileRepos.\n            Only used if $wgUseSharedUploads is enabled.\n            @since 1.5\n    FetchCommonsDescriptions:\n        default: false\n        type: boolean\n        description: |-\n            Shortcut for the 'fetchDescription' setting of $wgForeignFileRepos.\n            Only used if $wgUseSharedUploads is enabled.\n            @since 1.5\n    SharedUploadDBname:\n        default: false\n        type:\n            - boolean\n            - string\n        description: |-\n            Shortcut for the ForeignDBRepo 'dbName' setting in $wgForeignFileRepos.\n            Set this to false if the uploads do not come from a wiki.\n            Only used if $wgUseSharedUploads is enabled.\n            @since 1.4\n    SharedUploadDBprefix:\n        default: \"\"\n        type: string\n        description: |-\n            Shortcut for the ForeignDBRepo 'tablePrefix' setting in $wgForeignFileRepos.\n            Only used if $wgUseSharedUploads is enabled.\n            @since 1.5\n    CacheSharedUploads:\n        default: true\n        type: boolean\n        description: |-\n            Shortcut for the ForeignDBRepo 'hasSharedCache' setting in $wgForeignFileRepos.\n            Only used if $wgUseSharedUploads is enabled.\n            @since 1.5\n    ForeignUploadTargets:\n        default:\n            - local\n        type: array\n        description: |-\n            Array of foreign file repo names (set in $wgForeignFileRepos above) that\n            are allowable upload targets. These wikis must have some method of\n            authentication (i.e. CentralAuth), and be CORS-enabled for this wiki.\n            The string 'local' signifies the default local file repository.\n            Example:\n            $wgForeignUploadTargets = [ 'shared' ];\n    UploadDialog:\n        default:\n            fields: { description: true, date: false, categories: false }\n            licensemessages: { local: generic-local, foreign: generic-foreign }\n            comment: { local: \"\", foreign: \"\" }\n            format: { filepage: $DESCRIPTION, description: $TEXT, ownwork: \"\", license: \"\", uncategorized: \"\" }\n        type: object\n        description: |-\n            Configuration for file uploads using the embeddable upload dialog\n            (https://www.mediawiki.org/wiki/Upload_dialog).\n            This applies also to foreign uploads to this wiki (the configuration is loaded by remote\n            wikis using the action=query&meta=siteinfo API).\n            See below for documentation of each property. None of the properties may be omitted.\n    FileBackends:\n        default: { }\n        type: object\n        description: |-\n            File backend structure configuration.\n            This is an array of file backend configuration arrays.\n            Each backend configuration has the following parameters:\n             - name        : A unique name for the backend\n             - class       : The file backend class to use\n             - wikiId      : A unique string that identifies the wiki (container prefix)\n             - lockManager : The name of a lock manager (see $wgLockManagers) [optional]\n            See FileBackend::__construct() for more details.\n            Additional parameters are specific to the file backend class used.\n            These settings should be global to all wikis when possible.\n            FileBackendMultiWrite::__construct() is augmented with a 'template' option that\n            can be used in any of the values of the 'backends' array. Its value is the name of\n            another backend in $wgFileBackends. When set, it pre-fills the array with all of the\n            configuration of the named backend. Explicitly set values in the array take precedence.\n            There are two particularly important aspects about each backend:\n              - a) Whether it is fully qualified or wiki-relative.\n                   By default, the paths of files are relative to the current wiki,\n                   which works via prefixing them with the current wiki ID when accessed.\n                   Setting 'domainId' forces the backend to be fully qualified by prefixing\n                   all paths with the specified value instead. This can be useful if\n                   multiple wikis need to share the same data. Note that 'name' is *not*\n                   part of any prefix and thus should not be relied upon for namespacing.\n              - b) Whether it is only defined for some wikis or is defined on all\n                   wikis in the wiki farm. Defining a backend globally is useful\n                   if multiple wikis need to share the same data.\n            One should be aware of these aspects when configuring a backend for use with\n            any basic feature or plugin. For example, suppose an extension stores data for\n            different wikis in different directories and sometimes needs to access data from\n            a foreign wiki's directory in order to render a page on given wiki. The extension\n            would need a fully qualified backend that is defined on all wikis in the wiki farm.\n    LockManagers:\n        default: []\n        type: array\n        description: |-\n            List of lock manager backend configurations.\n            Each backend configuration has the following parameters:\n             - name  : A unique name for the lock manager\n             - class : The lock manager class to use\n            See LockManager::__construct() for more details.\n            Additional parameters are specific to the lock manager class used.\n            These settings should be global to all wikis.\n    ShowEXIF:\n        dynamicDefault:\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultShowEXIF ]\n        description: |-\n            Whether to show Exif data.\n            The effective default value is determined at runtime:\n            enabled if PHP's EXIF extension module is loaded.\n            Requires PHP's Exif extension: https://www.php.net/manual/en/ref.exif.php\n            @note FOR WINDOWS USERS:\n            To enable Exif functions, add the following line to the \"Windows\n            extensions\" section of php.ini:\n            ```{.ini}\n            extension=extensions/php_exif.dll\n            ```\n        default: null\n    UpdateCompatibleMetadata:\n        default: false\n        description: \"Shortcut for the 'updateCompatibleMetadata' setting of $wgLocalFileRepo.\"\n    AllowCopyUploads:\n        default: false\n        description: |-\n            Allow for upload to be copied from an URL.\n            The timeout for copy uploads is set by $wgCopyUploadTimeout.\n            You have to assign the user right 'upload_by_url' to a user group, to use this.\n    CopyUploadsDomains:\n        default: []\n        type: array\n        description: |-\n            A list of domains copy uploads can come from\n            @since 1.20\n    CopyUploadsFromSpecialUpload:\n        default: false\n        description: |-\n            Enable copy uploads from Special:Upload. $wgAllowCopyUploads must also be\n            true. If $wgAllowCopyUploads is true, but this is false, you will only be\n            able to perform copy uploads from the API or extensions (e.g. UploadWizard).\n    CopyUploadProxy:\n        default: false\n        description: |-\n            Proxy to use for copy upload requests.\n            @since 1.20\n    CopyUploadTimeout:\n        default: false\n        type:\n            - boolean\n            - integer\n        description: |-\n            Different timeout for upload by url\n            This could be useful since when fetching large files, you may want a\n            timeout longer than the default $wgHTTPTimeout. False means fallback\n            to default.\n            @since 1.22\n    CopyUploadAllowOnWikiDomainConfig:\n        default: false\n        description: |-\n            If true, the value of $wgCopyUploadsDomains will be merged with the\n            contents of MediaWiki:Copyupload-allowed-domains.\n            @since 1.39\n    MaxUploadSize:\n        default: 104857600\n        description: |-\n            Max size for uploads, in bytes.\n            If not set to an array, applies to all uploads. If set to an array, per upload\n            type maximums can be set, using the file and url keys. If the `*` key is set\n            this value will be used as maximum for non-specified types.\n            The below example would set the maximum for all uploads to 250 KiB except,\n            for upload-by-url, which would have a maximum of 500 KiB.\n            **Example:**\n            ```\n            $wgMaxUploadSize = [\n                '*' => 250 * 1024,\n                'url' => 500 * 1024,\n            ];\n            ```\n            Default: 100 MiB.\n    MinUploadChunkSize:\n        default: 1024\n        description: |-\n            Minimum upload chunk size, in bytes.\n            When using chunked upload, non-final chunks smaller than this will be rejected.\n            Note that this may be further reduced by the `upload_max_filesize` and\n            `post_max_size` PHP settings. Use ApiUpload::getMinUploadChunkSize to\n            get the effective minimum chunk size used by MediaWiki.\n            Default: 1 KiB.\n            @since 1.26\n            @see \\ApiUpload::getMinUploadChunkSize\n    UploadNavigationUrl:\n        default: false\n        description: |-\n            Point the upload navigation link to an external URL\n            Useful if you want to use a shared repository by default\n            without disabling local uploads (use $wgEnableUploads = false for that).\n            **Example:**\n            ```\n            $wgUploadNavigationUrl = 'https://commons.wikimedia.org/wiki/Special:Upload';\n            ```\n    UploadMissingFileUrl:\n        default: false\n        description: |-\n            Point the upload link for missing files to an external URL, as with\n            $wgUploadNavigationUrl. The URL will get \"(?|&)wpDestFile=<filename>\"\n            appended to it as appropriate.\n    ThumbnailScriptPath:\n        default: false\n        description: |-\n            Give a path here to use thumb.php for thumbnail generation on client\n            request, instead of generating them on render and outputting a static URL.\n            This is necessary if some of your apache servers don't have read/write\n            access to the thumbnail path.\n            **Example:**\n            ```\n            $wgThumbnailScriptPath = \"{$wgScriptPath}/thumb.php\";\n            ```\n    SharedThumbnailScriptPath:\n        default: false\n        type:\n            - string\n            - boolean\n        description: |-\n            Shortcut for the 'thumbScriptUrl' setting of $wgForeignFileRepos.\n            Only used if $wgUseSharedUploads is enabled.\n            @since 1.3\n    HashedUploadDirectory:\n        default: true\n        type: boolean\n        description: |-\n            Shortcut for setting `hashLevels=2` in $wgLocalFileRepo.\n            @note Only used if $wgLocalFileRepo is not set.\n    FileExtensions:\n        default:\n            - png\n            - gif\n            - jpg\n            - jpeg\n            - webp\n        type: array\n        description: |-\n            This is the list of preferred extensions for uploading files. Uploading files\n            with extensions not in this list will trigger a warning.\n            @warning If you add any OpenOffice or Microsoft Office file formats here,\n            such as odt or doc, and untrusted users are allowed to upload files, then\n            your wiki will be vulnerable to cross-site request forgery (CSRF).\n    ProhibitedFileExtensions:\n        default:\n            - html\n            - htm\n            - js\n            - jsb\n            - mhtml\n            - mht\n            - xhtml\n            - xht\n            - php\n            - phtml\n            - php3\n            - php4\n            - php5\n            - phps\n            - phar\n            - shtml\n            - jhtml\n            - pl\n            - py\n            - cgi\n            - exe\n            - scr\n            - dll\n            - msi\n            - vbs\n            - bat\n            - com\n            - pif\n            - cmd\n            - vxd\n            - cpl\n            - xml\n        type: array\n        description: |-\n            Files with these extensions will never be allowed as uploads.\n            An array of file extensions to prevent being uploaded. You should\n            append to this array if you want to prevent additional file extensions.\n            @since 1.37; previously $wgFileBlacklist\n    MimeTypeExclusions:\n        default:\n            - text/html\n            - application/javascript\n            - text/javascript\n            - text/x-javascript\n            - application/x-shellscript\n            - application/x-php\n            - text/x-php\n            - text/x-python\n            - text/x-perl\n            - text/x-bash\n            - text/x-sh\n            - text/x-csh\n            - text/scriptlet\n            - application/x-msdownload\n            - application/x-msmetafile\n            - application/java\n            - application/xml\n            - text/xml\n        type: array\n        description: |-\n            Files with these MIME types will never be allowed as uploads\n            if $wgVerifyMimeType is enabled.\n            @since 1.37; previously $wgMimeTypeBlacklist\n    CheckFileExtensions:\n        default: true\n        description: |-\n            This is a flag to determine whether or not to check file extensions on upload.\n            @warning Setting this to false is insecure for public wikis.\n    StrictFileExtensions:\n        default: true\n        description: |-\n            If this is turned off, users may override the warning for files not covered\n            by $wgFileExtensions.\n            @warning Setting this to false is insecure for public wikis.\n    DisableUploadScriptChecks:\n        default: false\n        description: |-\n            Setting this to true will disable the upload system's checks for HTML/JavaScript.\n            @warning THIS IS VERY DANGEROUS on a publicly editable site, so USE\n            $wgGroupPermissions TO RESTRICT UPLOADING to only those that you trust\n    UploadSizeWarning:\n        default: false\n        description: \"Warn if uploaded files are larger than this (in bytes), or false to disable\"\n    TrustedMediaFormats:\n        default:\n            - BITMAP\n            - AUDIO\n            - VIDEO\n            - image/svg+xml\n            - application/pdf\n        type: array\n        description: |-\n            list of trusted media-types and MIME types.\n            Use the MEDIATYPE_xxx constants to represent media types.\n            This list is used by File::isSafeFile\n            Types not listed here will have a warning about unsafe content\n            displayed on the images description page. It would also be possible\n            to use this for further restrictions, like disabling direct\n            [[media:...]] links for non-trusted formats.\n    MediaHandlers:\n        default: { }\n        type: object\n        description: |-\n            Plugins for media file type handling.\n            Each entry in the array maps a MIME type to a class name\n            Core media handlers are listed in MediaHandlerFactory,\n            and extensions should use extension.json.\n    NativeImageLazyLoading:\n        default: false\n        type: boolean\n        description: |-\n            Toggles native image lazy loading, via the \"loading\" attribute.\n            @unstable EXPERIMENTAL\n            @since 1.34\n    ParserTestMediaHandlers:\n        default:\n            image/jpeg: MockBitmapHandler\n            image/png: MockBitmapHandler\n            image/gif: MockBitmapHandler\n            image/tiff: MockBitmapHandler\n            image/webp: MockBitmapHandler\n            image/x-ms-bmp: MockBitmapHandler\n            image/x-bmp: MockBitmapHandler\n            image/x-xcf: MockBitmapHandler\n            image/svg+xml: MockSvgHandler\n            image/vnd.djvu: MockDjVuHandler\n        type: object\n        description: |-\n            Media handler overrides for parser tests (they don't need to generate actual\n            thumbnails, so a mock will do)\n    UseImageResize:\n        default: true\n        description: |-\n            Whether to enable server-side image thumbnailing. If false, images will\n            always be sent to the client in full resolution, with appropriate width= and\n            height= attributes on the <img> tag for the client to do its own scaling.\n    UseImageMagick:\n        default: false\n        description: |-\n            Resizing can be done using PHP's internal image libraries or using\n            ImageMagick or another third-party converter, e.g. GraphicMagick.\n            These support more file formats than PHP, which only supports PNG,\n            GIF, JPG, XBM and WBMP.\n            Use Image Magick instead of PHP builtin functions.\n    ImageMagickConvertCommand:\n        default: /usr/bin/convert\n        description: The convert command shipped with ImageMagick\n    MaxInterlacingAreas:\n        default: { }\n        type: object\n        description: |-\n            Array of max pixel areas for interlacing per MIME type\n            @since 1.27\n    SharpenParameter:\n        default: 0x0.4\n        description: Sharpening parameter to ImageMagick\n    SharpenReductionThreshold:\n        default: 0.85\n        description: Reduction in linear dimensions below which sharpening will be enabled\n    ImageMagickTempDir:\n        default: false\n        description: |-\n            Temporary directory used for ImageMagick. The directory must exist. Leave\n            this set to false to let ImageMagick decide for itself.\n    CustomConvertCommand:\n        default: false\n        description: |-\n            Use another resizing converter, e.g. GraphicMagick\n            %s will be replaced with the source path, %d with the destination\n            %w and %h will be replaced with the width and height.\n            **Example for GraphicMagick:**\n            ```\n            $wgCustomConvertCommand = \"gm convert %s -resize %wx%h %d\"\n            ```\n            Leave as false to skip this.\n    JpegTran:\n        default: /usr/bin/jpegtran\n        description: |-\n            used for lossless jpeg rotation\n            @since 1.21\n    JpegPixelFormat:\n        default: yuv420\n        description: |-\n            At default setting of 'yuv420', JPEG thumbnails will use 4:2:0 chroma\n            subsampling to reduce file size, at the cost of possible color fringing\n            at sharp edges.\n            See https://en.wikipedia.org/wiki/Chroma_subsampling\n            Supported values:\n              false - use scaling system's default (same as pre-1.27 behavior)\n              'yuv444' - luma and chroma at same resolution\n              'yuv422' - chroma at 1/2 resolution horizontally, full vertically\n              'yuv420' - chroma at 1/2 resolution in both dimensions\n            This setting is currently supported only for the ImageMagick backend;\n            others may default to 4:2:0 or 4:4:4 or maintaining the source file's\n            sampling in the thumbnail.\n            @since 1.27\n    JpegQuality:\n        default: 80\n        description: |-\n            When scaling a JPEG thumbnail, this is the quality we request\n            from the backend. It should be an integer between 1 and 100,\n            with 100 indicating 100% quality.\n            @since 1.32\n    Exiv2Command:\n        default: /usr/bin/exiv2\n        description: |-\n            Some tests and extensions use exiv2 to manipulate the Exif metadata in some\n            image formats.\n    Exiftool:\n        default: /usr/bin/exiftool\n        description: |-\n            Path to exiftool binary. Used for lossless ICC profile swapping.\n            @since 1.26\n    SVGConverters:\n        default:\n            ImageMagick: '$path/convert -background \"#ffffff00\" -thumbnail $widthx$height\\! $input PNG:$output'\n            sodipodi: $path/sodipodi -z -w $width -f $input -e $output\n            inkscape: $path/inkscape -z -w $width -f $input -e $output\n            batik: java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d $output $input\n            rsvg: $path/rsvg-convert -w $width -h $height -o $output $input\n            imgserv: $path/imgserv-wrapper -i svg -o png -w$width $input $output\n            ImagickExt: [ \"SvgHandler::rasterizeImagickExt\" ]\n        type: object\n        description: |-\n            Scalable Vector Graphics (SVG) may be uploaded as images.\n            Since SVG support is not yet standard in browsers, it is\n            necessary to rasterize SVGs to PNG as a fallback format.\n            An external program is required to perform this conversion.\n            If set to an array, the first item is a PHP callable and any further items\n            are passed as parameters after $srcPath, $dstPath, $width, $height\n    SVGConverter:\n        default: ImageMagick\n        description: Pick a converter defined in $wgSVGConverters\n    SVGConverterPath:\n        default: \"\"\n        description: \"If not in the executable PATH, specify the SVG converter path.\"\n    SVGMaxSize:\n        default: 5120\n        description: \"Don't scale a SVG larger than this\"\n    SVGMetadataCutoff:\n        default: 5242880\n        description: |-\n            Don't read SVG metadata beyond this point.\n            Default is 5 MiB\n    SVGNativeRendering:\n        default: false\n        type:\n            - string\n            - boolean\n        description: |-\n            Whether native rendering by the browser agent is allowed\n            Default is false. Setting it to true disables all SVG conversion.\n            Setting to the string 'partial' will only allow native rendering\n            when the filesize is below SVGNativeRenderingSizeLimit and if the\n            file contains at most 1 language.\n            @since 1.41\n    SVGNativeRenderingSizeLimit:\n        default: 51200\n        description: |-\n            Filesize limit for allowing SVGs to render natively by the browser agent\n            Default is 50kB.\n            @since 1.41\n    MediaInTargetLanguage:\n        default: true\n        description: |-\n            Whether thumbnails should be generated in target language (usually, same as\n            page language), if available.\n            Currently, applies only to SVG images that use the systemLanguage attribute\n            to specify text language.\n            @since 1.33\n    MaxImageArea:\n        default: 12500000\n        type:\n            - string\n            - integer\n            - boolean\n        description: |-\n            The maximum number of pixels a source image can have if it is to be scaled\n            down by a scaler that requires the full source image to be decompressed\n            and stored in decompressed form, before the thumbnail is generated.\n            This provides a limit on memory usage for the decompression side of the\n            image scaler. The limit is used when scaling PNGs with any of the\n            built-in image scalers, such as ImageMagick or GD. It is ignored for\n            JPEGs with ImageMagick, and when using the VipsScaler extension.\n            If set to false, MediaWiki will not check the size of the image before\n            attempting to scale it. Extensions may still override this setting by\n            using the BitmapHandlerCheckImageArea hook.\n            The default is 50 MB if decompressed to RGBA form, which corresponds to\n            12.5 million pixels or 3500x3500.\n    MaxAnimatedGifArea:\n        default: 12500000\n        description: |-\n            Force thumbnailing of animated GIFs above this size to a single\n            frame instead of an animated thumbnail.  As of MW 1.17 this limit\n            is checked against the total size of all frames in the animation.\n            It probably makes sense to keep this equal to $wgMaxImageArea.\n    TiffThumbnailType:\n        default: []\n        type: array\n        mergeStrategy: replace\n        description: |-\n            Browsers don't support TIFF inline generally...\n            For inline display, we need to convert to PNG or JPEG.\n            Note scaling should work with ImageMagick, but may not with GD scaling.\n            **Example:**\n            ```\n            // PNG is lossless, but inefficient for photos\n            $wgTiffThumbnailType = [ 'png', 'image/png' ];\n            // JPEG is good for photos, but has no transparency support. Bad for diagrams.\n            $wgTiffThumbnailType = [ 'jpg', 'image/jpeg' ];\n            ```\n    ThumbnailEpoch:\n        default: \"20030516000000\"\n        description: |-\n            If rendered thumbnail files are older than this timestamp, they\n            will be rerendered on demand as if the file didn't already exist.\n            Update if there is some need to force thumbs and SVG rasterizations\n            to rerender, such as fixes to rendering bugs.\n    AttemptFailureEpoch:\n        default: 1\n        description: |-\n            Certain operations are avoided if there were too many recent failures,\n            for example, thumbnail generation. Bump this value to invalidate all\n            memory of failed operations and thus allow further attempts to resume.\n            This is useful when a cause for the failures has been found and fixed.\n    IgnoreImageErrors:\n        default: false\n        description: |-\n            If set, inline scaled images will still produce \"<img>\" tags ready for\n            output instead of showing an error message.\n            This may be useful if errors are transitory, especially if the site\n            is configured to automatically render thumbnails on request.\n            On the other hand, it may obscure error conditions from debugging.\n            Enable the debug log or the 'thumbnail' log group to make sure errors\n            are logged to a file for review.\n    GenerateThumbnailOnParse:\n        default: true\n        type: boolean\n        description: |-\n            Render thumbnails while parsing wikitext.\n            If set to false, then the Parser will output valid thumbnail URLs without\n            generating or storing the thumbnail files. This can significantly speed up\n            processing on the web server. The site admin needs to configure a 404 handler\n            in order for the URLs in question to regenerate the thumbnails in question\n            on-demand. This can enable concurrency and also save computing resources\n            as not every resolution of every image on every page is accessed between\n            re-parses of the article. For example, re-parses triggered by bot edits,\n            or cascading updates from template edits.\n            If you use $wgLocalFileRepo, then you will also need to set the following:\n            ```\n            $wgLocalFileRepo['transformVia404'] = true;\n            ```\n            @since 1.7.0\n    ShowArchiveThumbnails:\n        default: true\n        description: Show thumbnails for old images on the image description page\n    EnableAutoRotation:\n        default: null\n        type:\n            - boolean\n            - \"null\"\n        description: |-\n            If set to true, images that contain certain the exif orientation tag will\n            be rotated accordingly. If set to null, try to auto-detect whether a scaler\n            is available that can rotate.\n    Antivirus:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Internal name of virus scanner. This serves as a key to the\n            $wgAntivirusSetup array. Set this to NULL to disable virus scanning. If not\n            null, every file uploaded will be scanned for viruses.\n    AntivirusSetup:\n        default:\n            clamav: { command: \"clamscan --no-summary \", codemap: { 0: 0, 1: 1, 52: -1, \"*\": false }, messagepattern: \"/.*?:(.*)/sim\" }\n        type: object\n        description: |-\n            Configuration for different virus scanners. This an associative array of\n            associative arrays. It contains one setup array per known scanner type.\n            The entry is selected by $wgAntivirus, i.e.\n            valid values for $wgAntivirus are the keys defined in this array.\n            The configuration array for each scanner contains the following keys:\n            \"command\", \"codemap\", \"messagepattern\":\n            \"command\" is the full command to call the virus scanner - %f will be\n            replaced with the name of the file to scan. If not present, the filename\n            will be appended to the command. Note that this must be overwritten if the\n            scanner is not in the system path; in that case, please set\n            $wgAntivirusSetup[$wgAntivirus]['command'] to the desired command with full\n            path.\n            \"codemap\" is a mapping of exit code to return codes of the detectVirus\n            function in SpecialUpload.\n              - An exit code mapped to AV_SCAN_FAILED causes the function to consider\n                the scan to be failed. This will pass the file if $wgAntivirusRequired\n                is not set.\n              - An exit code mapped to AV_SCAN_ABORTED causes the function to consider\n                the file to have an unsupported format, which is probably immune to\n                viruses. This causes the file to pass.\n              - An exit code mapped to AV_NO_VIRUS will cause the file to pass, meaning\n                no virus was found.\n              - All other codes (like AV_VIRUS_FOUND) will cause the function to report\n                a virus.\n              - You may use \"*\" as a key in the array to catch all exit codes not mapped otherwise.\n            \"messagepattern\" is a perl regular expression to extract the meaningful part of the scanners\n            output. The relevant part should be matched as group one (\\1).\n            If not defined or the pattern does not match, the full message is shown to the user.\n    AntivirusRequired:\n        default: true\n        description: Determines if a failed virus scan (AV_SCAN_FAILED) will cause the file to be rejected.\n    VerifyMimeType:\n        default: true\n        description: Determines if the MIME type of uploaded files should be checked\n    MimeTypeFile:\n        default: internal\n        description: |-\n            Sets the MIME type definition file to use by includes/libs/mime/MimeAnalyzer.php.\n            When this is set to the path of a mime.types file, MediaWiki will use this\n            file to map MIME types to file extensions and vice versa, in lieu of its\n            internal MIME map. Note that some MIME mappings are considered \"baked in\"\n            and cannot be overridden. See includes/libs/mime/MimeMapMinimal.php for a\n            full list.\n            example: $wgMimeTypeFile = '/etc/mime.types';\n    MimeInfoFile:\n        default: internal\n        description: |-\n            Sets the MIME type info file to use by includes/libs/mime/MimeAnalyzer.php.\n            Set to null to use the minimum set of built-in defaults only.\n    MimeDetectorCommand:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Sets an external MIME detector program. The command must print only\n            the MIME type to standard output.\n            The name of the file to process will be appended to the command given here.\n            If not set or NULL, PHP's mime_content_type function will be used.\n            **Example:**\n            ```\n            #$wgMimeDetectorCommand = \"file -bi\"; // use external MIME detector (Linux)\n            ```\n    TrivialMimeDetection:\n        default: false\n        description: |-\n            Switch for trivial MIME detection. Used by thumb.php to disable all fancy\n            things, because only a few types of images are needed and file extensions\n            can be trusted.\n    XMLMimeTypes:\n        default:\n            \"http://www.w3.org/2000/svg:svg\": image/svg+xml\n            svg: image/svg+xml\n            \"http://www.lysator.liu.se/~alla/dia/:diagram\": application/x-dia-diagram\n            \"http://www.w3.org/1999/xhtml:html\": text/html\n            html: text/html\n        type: object\n        description: |-\n            Additional XML types we can allow via MIME-detection.\n            array = [ 'rootElement' => 'associatedMimeType' ]\n    ImageLimits:\n        default:\n            - [ 320, 240 ]\n            - [ 640, 480 ]\n            - [ 800, 600 ]\n            - [ 1024, 768 ]\n            - [ 1280, 1024 ]\n            - [ 2560, 2048 ]\n        type: array\n        description: |-\n            Limit images on image description pages to a user-selectable limit.\n            In order to reduce disk usage, limits can only be selected from this list.\n            The user preference is saved as an array offset in the database, by default\n            the offset is set with $wgDefaultUserOptions['imagesize']. Make sure you\n            change it if you alter the array (see T10858).\n            This list is also used by ImagePage for alternate size links.\n    ThumbLimits:\n        default:\n            - 120\n            - 150\n            - 180\n            - 200\n            - 250\n            - 300\n        type: array\n        description: |-\n            Adjust thumbnails on image pages according to a user setting. In order to\n            reduce disk usage, the values can only be selected from a list. This is the\n            list of settings the user can choose from:\n    ThumbnailNamespaces:\n        default:\n            - 6\n        type: array\n        items:\n            type: integer\n        description: |-\n            Defines what namespaces thumbnails will be displayed for in Special:Search.\n            This is the list of namespaces for which thumbnails (or a placeholder in\n            the absence of a thumbnail) will be shown:\n    ThumbnailSteps:\n        default: null\n        type:\n            - array\n            - \"null\"\n        description: |-\n            When defined, is an array of image widths used as steps for thumbnail sizes.\n            The thumbnail with smallest step that has larger value than requested will be shown\n            but it will be downsized via HTML values.\n            It increases the bandwidth to the users by serving slightly large thumbnail sizes they\n            have requested but it will save resources by de-duplicating thumbnail generation and storage.\n            Note that these steps are \"best effort\" and MediaWiki might decide to use the requested size\n            for any reason.\n    ThumbnailStepsRatio:\n        default: null\n        type:\n            - number\n            - \"null\"\n        description: |-\n            Ratio of images that will use the thumbnail steps\n            This is to allow for gradual roll out of thumbnail steps. It should be a number between 0 and 1.\n            The precision of this value is up to 0.001, anything below that will be ignored.\n    ThumbnailBuckets:\n        default: null\n        type:\n            - array\n            - \"null\"\n        description: |-\n            When defined, is an array of image widths used as buckets for thumbnail generation.\n            The goal is to save resources by generating thumbnails based on reference buckets instead of\n            always using the original. This will incur a speed gain but cause a quality loss.\n            The buckets generation is chained, with each bucket generated based on the above bucket\n            when possible. File handlers have to opt into using that feature. For now only BitmapHandler\n            supports it.\n    ThumbnailMinimumBucketDistance:\n        default: 50\n        description: |-\n            When using thumbnail buckets as defined above, this sets the minimum distance to the bucket\n            above the requested size. The distance represents how many extra pixels of width the bucket\n            needs in order to be used as the reference for a given thumbnail. For example, with the\n            following buckets:\n            $wgThumbnailBuckets = [ 128, 256, 512 ];\n            and a distance of 50:\n            $wgThumbnailMinimumBucketDistance = 50;\n            If we want to render a thumbnail of width 220px, the 512px bucket will be used,\n            because 220 + 50 = 270 and the closest bucket bigger than 270px is 512.\n    UploadThumbnailRenderMap:\n        default: { }\n        type: object\n        description: |-\n            When defined, is an array of thumbnail widths to be rendered at upload time. The idea is to\n            prerender common thumbnail sizes, in order to avoid the necessity to render them on demand,\n            which has a performance impact for the first client to view a certain size.\n            This obviously means that more disk space is needed per upload upfront.\n            @since 1.25\n    UploadThumbnailRenderMethod:\n        default: jobqueue\n        description: |-\n            The method through which the thumbnails will be prerendered for the entries in\n            $wgUploadThumbnailRenderMap\n            The method can be either \"http\" or \"jobqueue\". The former uses an http request to hit the\n            thumbnail's URL.\n            This method only works if thumbnails are configured to be rendered by a 404 handler. The\n            latter option uses the job queue to render the thumbnail.\n            @since 1.25\n    UploadThumbnailRenderHttpCustomHost:\n        default: false\n        description: |-\n            When using the \"http\" $wgUploadThumbnailRenderMethod, lets one specify a custom Host HTTP\n            header.\n            @since 1.25\n    UploadThumbnailRenderHttpCustomDomain:\n        default: false\n        description: |-\n            When using the \"http\" $wgUploadThumbnailRenderMethod, lets one specify a custom domain to\n            send the HTTP request to.\n            @since 1.25\n    UseTinyRGBForJPGThumbnails:\n        default: false\n        description: |-\n            When this variable is true and JPGs use the sRGB ICC profile, swaps it for the more\n            lightweight\n            (and free) TinyRGB profile when generating thumbnails.\n            @since 1.26\n    GalleryOptions:\n        default: { }\n        type: object\n        description: |-\n            Parameters for the \"<gallery>\" tag.\n            Fields are:\n            - imagesPerRow:   Default number of images per-row in the gallery. 0 -> Adapt to screensize\n            - imageWidth:     Width of the cells containing images in galleries (in \"px\")\n            - imageHeight:    Height of the cells containing images in galleries (in \"px\")\n            - captionLength:  Length to truncate filename to in caption when using \"showfilename\".\n                              A value of 'true' will truncate the filename to one line using CSS\n                              and will be the behaviour after deprecation.\n                              @deprecated since 1.28\n            - showBytes:      Show the filesize in bytes in categories\n            - showDimensions: Show the dimensions (width x height) in categories\n            - mode:           Gallery mode\n    ThumbUpright:\n        default: 0.75\n        description: |-\n            Adjust width of upright images when parameter 'upright' is used\n            This allows a nicer look for upright images without the need to fix the width\n            by hardcoded px in wiki sourcecode.\n    DirectoryMode:\n        default: 511\n        description: Default value for chmod-ing of new directories.\n    ResponsiveImages:\n        default: true\n        description: |-\n            Generate and use thumbnails suitable for screens with 1.5 and 2.0 pixel densities.\n            This means a 320x240 use of an image on the wiki will also generate 480x360 and 640x480\n            thumbnails, output via the srcset attribute.\n    ImagePreconnect:\n        default: false\n        description: |-\n            Add a preconnect link for browsers to a remote FileRepo host.\n            This is an optional performance enhancement designed for wiki farm where\n            $wgForeignFileRepos or $wgLocalFileRepo is set to serve thumbnails from a\n            separate hostname (e.g. not local `/w/images`). The feature expects at most\n            a single remote hostname to be used.\n            If multiple foreign repos are registered that serve images from different hostnames,\n            only the first will be preconnected.\n            This may cause unneeded HTTP connections in browsers on wikis where a foreign repo is\n            enabled but where a local repo is more commonly used.\n            @since 1.35\n    DjvuUseBoxedCommand:\n        default: false\n        description: |-\n            Whether to use BoxedCommand or not.\n            @unstable Temporary feature flag for T352515\n            @since 1.42\n    DjvuDump:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Path of the djvudump executable\n            Enable this and $wgDjvuRenderer to enable djvu rendering\n            example: $wgDjvuDump = 'djvudump';\n            If this is set, {@link self::ShellboxShell} must be set to the correct\n            shell path.\n    DjvuRenderer:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Path of the ddjvu DJVU renderer\n            Enable this and $wgDjvuDump to enable djvu rendering\n            example: $wgDjvuRenderer = 'ddjvu';\n    DjvuTxt:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Path of the djvutxt DJVU text extraction utility\n            Enable this and $wgDjvuDump to enable text layer extraction from djvu files\n            example: $wgDjvuTxt = 'djvutxt';\n            If this is set, {@link self::ShellboxShell} must be set to the correct\n             shell path.\n    DjvuPostProcessor:\n        default: pnmtojpeg\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Shell command for the DJVU post processor\n            Default: pnmtojpeg, since ddjvu generates ppm output\n            Set this to false to output the ppm file directly.\n    DjvuOutputExtension:\n        default: jpg\n        description: File extension for the DJVU post processor output\n    EmergencyContact:\n        default: false\n        description: |-\n            Site admin email address.\n            Defaults to \"wikiadmin@$wgServerName\" (in Setup.php).\n    PasswordSender:\n        default: false\n        description: |-\n            Sender email address for e-mail notifications.\n            The address we use as sender when a user requests a password reminder,\n            as well as other e-mail notifications.\n            Defaults to \"apache@$wgServerName\" (in Setup.php).\n    NoReplyAddress:\n        default: false\n        description: |-\n            Reply-To address for e-mail notifications.\n            Defaults to $wgPasswordSender (in Setup.php).\n    EnableEmail:\n        default: true\n        description: |-\n            Set to true to enable the e-mail basic features:\n            Password reminders, etc. If sending e-mail on your\n            server doesn't work, you might want to disable this.\n    EnableUserEmail:\n        default: true\n        description: |-\n            Set to true to enable user-to-user e-mail.\n            This can potentially be abused, as it's hard to track.\n    EnableSpecialMute:\n        default: false\n        description: |-\n            Set to true to enable the Special Mute page. This allows users\n            to mute unwanted communications from other users, and is linked\n            to from emails originating from Special:Email.\n            @since 1.34\n    EnableUserEmailMuteList:\n        default: false\n        description: |-\n            Set to true to enable user-to-user e-mail mutelist.\n            @since 1.37; previously $wgEnableUserEmailBlacklist\n    UserEmailUseReplyTo:\n        default: true\n        description: |-\n            If true put the sending user's email in a Reply-To header\n            instead of From (false). ($wgPasswordSender will be used as From.)\n            Some mailers (eg SMTP) set the SMTP envelope sender to the From value,\n            which can cause problems with SPF validation and leak recipient addresses\n            when bounces are sent to the sender. In addition, DMARC restrictions\n            can cause emails to fail to be received when false.\n    PasswordReminderResendTime:\n        default: 24\n        description: |-\n            Minimum time, in hours, which must elapse between password reminder\n            emails for a given account. This is to prevent abuse by mail flooding.\n    NewPasswordExpiry:\n        default: 604800\n        description: \"The time, in seconds, when an emailed temporary password expires.\"\n    UserEmailConfirmationTokenExpiry:\n        default: 604800\n        description: \"The time, in seconds, when an email confirmation email expires\"\n    PasswordExpirationDays:\n        default: false\n        description: |-\n            The number of days that a user's password is good for. After this number of days, the\n            user will be asked to reset their password. Set to false to disable password expiration.\n    PasswordExpireGrace:\n        default: 604800\n        description: |-\n            If a user's password is expired, the number of seconds when they can still login,\n            and cancel their password change, but are sent to the password change form on each login.\n    SMTP:\n        default: false\n        type:\n            - boolean\n            - object\n        description: |-\n            SMTP Mode.\n            For using a direct (authenticated) SMTP server connection.\n            Default to false or fill an array :\n            ```\n            $wgSMTP = [\n                'host'     => 'SMTP domain',\n                'IDHost'   => 'domain for MessageID',\n                'port'     => '25',\n                'auth'     => [true|false],\n                'username' => [SMTP username],\n                'password' => [SMTP password],\n            ];\n            ```\n    AdditionalMailParams:\n        default: null\n        description: \"Additional email parameters, will be passed as the last argument to mail() call.\"\n    AllowHTMLEmail:\n        default: false\n        description: |-\n            For parts of the system that have been updated to provide HTML email content, send\n            both text and HTML parts as the body of the email\n    EnotifFromEditor:\n        default: false\n        type: boolean\n        description: |-\n            Allow sending of e-mail notifications with the editor's address as sender.\n            This setting depends on $wgEnotifRevealEditorAddress also being enabled.\n            If both are enabled, notifications for actions from users that have opted-in,\n            will be sent to other users with their address as \"From\" instead of \"Reply-To\".\n            If disabled, or not opted-in, notifications come from $wgPasswordSender.\n    EmailAuthentication:\n        default: true\n        description: |-\n            Require email authentication before sending mail to an email address.\n            This is highly recommended. It prevents MediaWiki from being used as an open\n            spam relay.\n    EnotifWatchlist:\n        default: false\n        description: 'Allow users to enable email notification (\"enotif\") on watchlist changes.'\n    EnotifUserTalk:\n        default: false\n        description: |-\n            Allow users to enable email notification (\"enotif\") when someone edits their\n            user talk page.\n            The owner of the user talk page must also have the 'enotifusertalkpages' user\n            preference set to true.\n    EnotifRevealEditorAddress:\n        default: false\n        type: boolean\n        description: |-\n            Allow sending of e-mail notifications with the editor's address in \"Reply-To\".\n            Note, enabling this only actually uses it in notification e-mails if the user\n            opted-in to this feature. This feature flag also controls visibility of the\n            'enotifrevealaddr' preference, which, if users opt into, will make e-mail\n            notifications about their actions use their address as \"Reply-To\".\n            To set the address as \"From\" instead of \"Reply-To\", also enable $wgEnotifFromEditor.\n            If disabled, or not opted-in, notifications come from $wgPasswordSender.\n    EnotifMinorEdits:\n        default: true\n        description: |-\n            Potentially send notification mails on minor edits to pages. This is enabled\n            by default.  If this is false, users will never be notified on minor edits.\n            If it is true, editors with the 'nominornewtalk' right (typically bots) will still not\n            trigger notifications for minor edits they make (to any page, not just user talk).\n            Finally, if the watcher/recipient has the 'enotifminoredits' user preference set to\n            false, they will not receive notifications for minor edits.\n            User talk notifications are also affected by $wgEnotifMinorEdits, the above settings,\n            $wgEnotifUserTalk, and the preference described there.\n    EnotifUseRealName:\n        default: false\n        description: 'Use real name instead of username in e-mail \"from\" field.'\n    UsersNotifiedOnAllChanges:\n        default: { }\n        type: object\n        description: |-\n            Array of usernames who will be sent a notification email for every change\n            which occurs on a wiki. Users will not be notified of their own changes.\n    DBname:\n        default: my_wiki\n        description: |-\n            Current wiki database name\n            This should only contain alphanumeric and underscore characters ([A-Za-z0-9_]+).\n            Spaces, quotes, backticks, dots, and hyphens are likely to be problematic.\n            This is used to determine the current/local wiki ID (WikiMap::getCurrentWikiDbDomain).\n            This should still be set even if $wgLBFactoryConf is configured.\n    DBmwschema:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Current wiki database schema name\n            This should only contain alphanumeric and underscore characters ([A-Za-z0-9_]+).\n            Spaces, quotes, backticks, dots, and hyphens are likely to be problematic.\n            This is used to determine the current/local wiki ID (WikiMap::getCurrentWikiDbDomain).\n            This should still be set even if $wgLBFactoryConf is configured.\n    DBprefix:\n        default: \"\"\n        description: |-\n            Current wiki database table name prefix\n            This should only contain alphanumeric and underscore characters ([A-Za-z0-9_]+).\n            If it's a non-empty string, then it preferably should end with an underscore.\n            Spaces, quotes, backticks, dots, and hyphens are especially likely to be problematic.\n            This is used to determine the current/local wiki ID (WikiMap::getCurrentWikiDbDomain).\n            This should still be set even if $wgLBFactoryConf is configured.\n    DBserver:\n        default: localhost\n        description: Database host name or IP address\n    DBport:\n        default: 5432\n        description: Database port number\n    DBuser:\n        default: wikiuser\n        description: Database username\n    DBpassword:\n        default: \"\"\n        description: \"Database user's password\"\n    DBtype:\n        default: mysql\n        description: Database type\n    DBssl:\n        default: false\n        description: |-\n            Whether to use SSL in DB connection.\n            This setting is only used if $wgLBFactoryConf['class'] is set to\n            '\\Wikimedia\\Rdbms\\LBFactorySimple' and $wgDBservers is an empty array; otherwise\n            the 'ssl' parameter of the server array must be set to achieve the same functionality.\n    DBcompress:\n        default: false\n        description: |-\n            Whether to use compression in DB connection.\n            This setting is only used $wgLBFactoryConf['class'] is set to\n            '\\Wikimedia\\Rdbms\\LBFactorySimple' and $wgDBservers is an empty array; otherwise\n            the DBO_COMPRESS flag must be set in the 'flags' option of the database\n            connection to achieve the same functionality.\n    DBStrictWarnings:\n        default: false\n        description: |-\n            Check for warnings after DB queries and throw an exception if an\n            unacceptable warning is detected.\n            This setting is only used if $wgLBFactoryConf['class'] is set to\n            '\\Wikimedia\\Rdbms\\LBFactorySimple' and $wgDBservers is an empty array.\n            Otherwise, the 'strictWarnings' parameter of the server array must be set\n            to achieve the same functionality.\n            @since 1.42\n    DBadminuser:\n        default: null\n        description: Separate username for maintenance tasks. Leave as null to use the default.\n    DBadminpassword:\n        default: null\n        description: Separate password for maintenance tasks. Leave as null to use the default.\n    SearchType:\n        default: null\n        description: |-\n            Search type.\n            Leave as null to select the default search engine for the\n            selected database type (eg SearchMySQL), or set to a class\n            name to override to a custom search engine.\n            If the canonical name for the search engine doesn't match the class name\n            (because it's namespaced for example), you can add a mapping for this in\n            SearchMappings in extension.json.\n    SearchTypeAlternatives:\n        default: null\n        description: |-\n            Alternative search types\n            Sometimes you want to support multiple search engines for testing. This\n            allows users to select their search engine of choice via url parameters\n            to Special:Search and the action=search API. If using this, there's no\n            need to add $wgSearchType to it, that is handled automatically.\n            If the canonical name for the search engine doesn't match the class name\n            (because it's namespaced for example), you can add a mapping for this in\n            SearchMappings in extension.json.\n    DBTableOptions:\n        default: \"ENGINE=InnoDB, DEFAULT CHARSET=binary\"\n        description: MySQL table options to use during installation or update\n    SQLMode:\n        default: \"\"\n        description: |-\n            SQL Mode - default is turning off all modes, including strict, if set.\n            null can be used to skip the setting for performance reasons and assume\n            the DBA has done their best job.\n            String override can be used for some additional fun :-)\n    DBDefaultGroup:\n        default: null\n        description: |-\n            Default group to use when getting database connections.\n            Will be used as default query group in ILoadBalancer::getConnection.\n            @since 1.32\n    SQLiteDataDir:\n        default: \"\"\n        description: To override default SQLite data directory ($docroot/../data)\n    SharedDB:\n        default: null\n        description: |-\n            Shared database for multiple wikis. Commonly used for storing a user table\n            for single sign-on. The server for this database must be the same as for the\n            main database.\n            For backwards compatibility the shared prefix is set to the same as the local\n            prefix, and the user table is listed in the default list of shared tables.\n            The user_properties table is also added so that users will continue to have their\n            preferences shared (preferences were stored in the user table prior to 1.16)\n            $wgSharedTables may be customized with a list of tables to share in the shared\n            database. However it is advised to limit what tables you do share as many of\n            MediaWiki's tables may have side effects if you try to share them.\n            $wgSharedPrefix is the table prefix for the shared database. It defaults to\n            $wgDBprefix.\n            $wgSharedSchema is the table schema for the shared database. It defaults to\n            $wgDBmwschema.\n    SharedPrefix:\n        default: false\n        dynamicDefault:\n            use: [ DBprefix ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultSharedPrefix ]\n        description: \"@see self::SharedDB\"\n    SharedTables:\n        default:\n            - user\n            - user_properties\n            - user_autocreate_serial\n        type: array\n        description: |-\n            @see self::SharedDB\n            The installer will add 'actor' to this list for all new wikis.\n    SharedSchema:\n        default: false\n        dynamicDefault:\n            use: [ DBmwschema ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultSharedSchema ]\n        description: |-\n            @see self::SharedDB\n            @since 1.23\n    DBservers:\n        default: false\n        type:\n            - boolean\n            - array\n        description: |-\n            Database load balancer\n            This is a two-dimensional array, a list of server info structures\n            Fields are:\n              - host:        Host name\n              - dbname:      Default database name\n              - user:        DB user\n              - password:    DB password\n              - type:        DB type\n              - driver:      DB driver (when there are multiple drivers)\n              - load:        Ratio of DB_REPLICA load, must be >=0, the sum of all loads must be >0.\n                             If this is zero for any given server, no normal query traffic will be\n                             sent to it. It will be excluded from lag checks in maintenance scripts.\n                             The only way it can receive traffic is if groupLoads is used.\n              - groupLoads:  (optional) Array of load ratios, the key is the query group name. A query\n                             may belong to several groups, the most specific group defined here is used.\n              - flags:       (optional) Bit field of properties:\n                             - DBO_DEFAULT:    Transactional-ize web requests and use autocommit otherwise\n                             - DBO_DEBUG:      Equivalent of $wgDebugDumpSql\n                             - DBO_SSL:        Use TLS connection encryption if available (deprecated)\n                             - DBO_COMPRESS:   Use protocol compression with database connections\n                             - DBO_PERSISTENT: Enables persistent database connections\n              - ssl:         (optional) Boolean, whether to use TLS encryption. Overrides DBO_SSL.\n              - max lag:     (optional) Maximum replication lag before a replica DB goes out of rotation\n              - is static:   (optional) Set to true if the dataset is static and no replication is used.\n              - cliMode:     (optional) Connection handles will not assume that requests are short-lived\n                             nor that INSERT..SELECT can be rewritten into a buffered SELECT and INSERT.\n                             This is what DBO_DEFAULT uses to determine when a web request is present.\n                             [Default: true if MW_ENTRY_POINT is 'cli', otherwise false]\n              These and any other user-defined properties will be assigned to the mLBInfo member\n              variable of the Database object.\n            Leave at false to use the single-server variables above. If you set this\n            variable, the single-server variables will generally be ignored (except\n            perhaps in some command-line scripts).\n            The first server listed in this array (with key 0) will be the primary. The\n            rest of the servers will be replica DBs. To prevent writes to your replica DBs due to\n            accidental misconfiguration or MediaWiki bugs, set read_only=1 on all your\n            replica DBs in my.cnf. You can set read_only mode at runtime using:\n            ```\n                SET @@read_only=1;\n            ```\n            Since the effect of writing to a replica DB is so damaging and difficult to clean\n            up, we at Wikimedia set read_only=1 in my.cnf on all our DB servers, even\n            our primaries, and then set read_only=0 on primaries at runtime.\n    LBFactoryConf:\n        default:\n            class: Wikimedia\\Rdbms\\LBFactorySimple\n        type: object\n        mergeStrategy: replace\n        description: |-\n            Configuration for the ILBFactory service\n            The \"class\" setting must point to a LBFactory subclass, which is also responsible\n            for reading $wgDBservers, $wgDBserver, etc.\n            To set up a wiki farm with multiple database clusters, set the \"class\" to\n            LBFactoryMulti. See {@link Wikimedia::Rdbms::LBFactoryMulti LBFactoryMulti} docs for\n            information on how to configure the rest of the $wgLBFactoryConf array.\n    DataCenterUpdateStickTTL:\n        default: 10\n        description: |-\n            After a state-changing request is done by a client, this determines\n            how many seconds that client should keep using the primary datacenter.\n            This avoids unexpected stale or 404 responses due to replication lag.\n            This must be greater than or equal to\n            Wikimedia\\Rdbms\\ChronologyProtector::POSITION_COOKIE_TTL.\n            @since 1.27\n    DBerrorLog:\n        default: false\n        description: File to log database errors to\n    DBerrorLogTZ:\n        default: false\n        dynamicDefault:\n            use: [ Localtimezone ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultDBerrorLogTZ ]\n        description: |-\n            Timezone to use in the error log.\n            Defaults to the wiki timezone ($wgLocaltimezone).\n            A list of usable timezones can found at:\n            https://www.php.net/manual/en/timezones.php\n            **Examples:**\n            ```\n            $wgDBerrorLogTZ = 'UTC';\n            $wgDBerrorLogTZ = 'GMT';\n            $wgDBerrorLogTZ = 'PST8PDT';\n            $wgDBerrorLogTZ = 'Europe/Sweden';\n            $wgDBerrorLogTZ = 'CET';\n            ```\n            @since 1.20\n    LocalDatabases:\n        default: []\n        type: array\n        items:\n            type: string\n        description: |-\n            List of all wiki IDs that reside on the current wiki farm.\n            The wikis listed here must meet the following requirements in order to\n            be be considered part of the same wiki farm:\n            - reachable for cross-wiki database queries, via \\Wikimedia\\Rdbms\\IConnectionProvider,\n              as configured by $wgLBFactoryConf\n            - share the same $wgMainCacheType backend (e.g. the same Memcached cluster),\n              so that cache updates and purges via BagOStuff::makeGlobalKey and\n              WANObjectCache work correctly.\n            Examples of cross-wiki features enabled through this setting:\n            - SpecialUserRights, to assign a local user group from a central wiki.\n            - JobQueueGroup::push, to queue a job for another wiki\n              (e.g. GlobalUsage, MassMessage, and Wikibase extensions).\n            - RenameUser (when using $wgSharedDB), to globally apply the rename to revisions\n              logging tables on all wikis.\n            Each wiki ID must consist of 1-3 hyphen-delimited alphanumeric components (each with no\n            hyphens nor spaces) of any of the forms:\n            - \"<DB NAME>\"\n            - \"<DB NAME>-<TABLE PREFIX>\"\n            - \"<DB NAME>-<DB SCHEMA>-<TABLE PREFIX>\"\n            If hyphens appear in any of the components, then the domain ID parsing may not work\n            and site functionality might be affected. If the schema ($wgDBmwschema) is set to the\n            default of \"mediawiki\" on all wikis, then the schema should be omitted from wiki IDs.\n            @see WikiMap::getWikiIdFromDbDomain\n            @see SiteConfiguration::getLocalDatabases\n            @see self::LocalVirtualHosts\n    DatabaseReplicaLagWarning:\n        default: 10\n        description: |-\n            If lag is higher than $wgDatabaseReplicaLagWarning, show a warning in some special\n            pages (like watchlist). If the lag is higher than $wgDatabaseReplicaLagCritical,\n            show a more obvious warning.\n            @since 1.36\n    DatabaseReplicaLagCritical:\n        default: 30\n        description: |-\n            @see self::DatabaseReplicaLagWarning\n            @since 1.36\n    MaxExecutionTimeForExpensiveQueries:\n        default: 0\n        description: |-\n            Max execution time for queries of several expensive special pages such as RecentChanges\n            in milliseconds.\n            @since 1.38\n    VirtualDomainsMapping:\n        default: { }\n        type: object\n        description: |-\n            Mapping of virtual domain to external cluster db.\n            If no entry is set, the code assumes local database.\n            For example, for routing queries of virtual domain 'vdomain'\n            to 'wikishared' database in 'extension1' cluster. The config should be like this:\n             [ 'vdomain' => [ 'cluster' => 'extension1', 'db' => 'wikishared' ] ]\n            If the database needs to be the local domain, just set the 'db' to false.\n            If you want to get another db in the main cluster, just omit 'cluster'. For example:\n             [ 'centralauth' => [ 'db' => 'centralauth' ] ]\n            @since 1.41\n    PageLinksSchemaMigrationStage:\n        default: 768\n        type: integer\n        description: |-\n            Pagelinks table schema migration stage, for normalizing pl_namespace and pl_title fields.\n            Use the SCHEMA_COMPAT_XXX flags. Supported values:\n              - SCHEMA_COMPAT_WRITE_NEW | SCHEMA_COMPAT_READ_NEW (SCHEMA_COMPAT_NEW)\n            History:\n              - 1.41: Added\n              - 1.43: Default has changed to SCHEMA_COMPAT_NEW.\n    FileSchemaMigrationStage:\n        default: 3\n        type: integer\n        description: |-\n            Migration stage for file tables\n            Use the SCHEMA_COMPAT_XXX flags. Supported values:\n              - SCHEMA_COMPAT_WRITE_OLD | SCHEMA_COMPAT_READ_OLD (SCHEMA_COMPAT_OLD)\n              - SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD\n            History:\n              - 1.44: Added\n    CategoryLinksSchemaMigrationStage:\n        default: 3\n        type: integer\n        description: |-\n            Migration stage for categorylinks tables\n            Use the SCHEMA_COMPAT_XXX flags. Supported values:\n              - SCHEMA_COMPAT_WRITE_OLD | SCHEMA_COMPAT_READ_OLD (SCHEMA_COMPAT_OLD)\n              - SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD\n            History:\n              - 1.44: Added\n    ExternalLinksDomainGaps:\n        default: { }\n        type: object\n        description: |-\n            Gaps in the externallinks table for certain domains.\n            If you have identified certain domains for which externallinks searches are slow,\n            you can use this setting to make MediaWiki skip large el_id ranges,\n            rather than having the database scan through them fruitlessly.\n            Each key in the array is a domain name in el_to_domain_index form,\n            e.g. 'https://com.example.'.\n            The value is an array with integer keys and values,\n            where each entry is a range (from => to, both inclusive)\n            of el_id values where this domain is known to have no entries.\n            (Subdomains are included, i.e., configuring an entry here guarantees to MediaWiki\n            that there are no rows where the el_to_domain_index starts with this value.)\n            History:\n              - 1.41: Added\n    ContentHandlers:\n        default:\n            wikitext: { class: MediaWiki\\Content\\WikitextContentHandler, services: [ TitleFactory, ParserFactory, GlobalIdGenerator, LanguageNameUtils, LinkRenderer, MagicWordFactory, ParsoidParserFactory ] }\n            javascript: MediaWiki\\Content\\JavaScriptContentHandler\n            json: MediaWiki\\Content\\JsonContentHandler\n            css: MediaWiki\\Content\\CssContentHandler\n            text: MediaWiki\\Content\\TextContentHandler\n            unknown: MediaWiki\\Content\\FallbackContentHandler\n        type: object\n        description: |-\n            Plugins for page content model handling.\n            Each entry in the array maps a model id to an ObjectFactory specification\n            that creates an instance of the appropriate ContentHandler subclass.\n            @since 1.21\n    NamespaceContentModels:\n        default: { }\n        type: object\n        description: |-\n            Associative array mapping namespace IDs to the name of the content model pages in that\n            namespace should have by default (use the CONTENT_MODEL_XXX constants). If no special\n            content type is defined for a given namespace, pages in that namespace will use the\n            CONTENT_MODEL_WIKITEXT\n            (except for the special case of JS and CS pages).\n            @note To determine the default model for a new page's main slot, or any slot in general,\n            use SlotRoleHandler::getDefaultModel() together with SlotRoleRegistry::getRoleHandler().\n            @since 1.21\n    TextModelsToParse:\n        default:\n            - wikitext\n            - javascript\n            - css\n        type: array\n        description: |-\n            Determines which types of text are parsed as wikitext. This does not imply that these kinds\n            of texts are also rendered as wikitext, it only means that links, magic words, etc will have\n            the effect on the database they would have on a wikitext page.\n            Note that table of contents information will be *suppressed* for all\n            text models in this list other than wikitext.\n            @todo Make the ToC suppression configurable by the content model\n            (T313455), not a side effect of inclusion here.\n            @todo On the long run, it would be nice to put categories etc into a separate structure,\n            or at least parse only the contents of comments in the scripts.\n            @since 1.21\n    CompressRevisions:\n        default: false\n        description: |-\n            We can also compress text stored in the 'text' table. If this is set on, new\n            revisions will be compressed on page save if zlib support is available. Any\n            compressed revisions will be decompressed on load regardless of this setting,\n            but will not be readable at all if zlib support is not available.\n    ExternalStores:\n        default: []\n        type: array\n        description: |-\n            List of enabled ExternalStore protocols.\n            @see \\ExternalStoreAccess\n            ```\n            $wgExternalStores = [ \"DB\" ];\n            ```\n    ExternalServers:\n        default: { }\n        type: object\n        description: |-\n            Shortcut for setting `$wgLBFactoryConf[\"externalClusters\"]`.\n            This is only applicable when using the default LBFactory\n            of {@link Wikimedia::Rdbms::LBFactorySimple LBFactorySimple}.\n            It is ignored if a different LBFactory is set, or if `externalClusters`\n            is already set explicitly.\n            @see \\ExternalStoreAccess\n            **Example:**\n            Create a cluster named 'blobs_cluster1':\n            ```\n            $wgExternalServers = [\n                'blobs_cluster1' => <array in the same format as $wgDBservers>\n            ];\n            ```\n    DefaultExternalStore:\n        default: false\n        type:\n            - array\n            - boolean\n        description: |-\n            The place to put new text blobs or false to put them in the text table\n            of the local wiki database.\n            @see \\ExternalStoreAccess\n            **Example:**\n            ```\n            $wgDefaultExternalStore = [ 'DB://cluster1', 'DB://cluster2' ];\n            ```\n    RevisionCacheExpiry:\n        default: 604800\n        type: integer\n        description: |-\n            Revision text may be cached in the main WAN cache to reduce load on external\n            storage servers and object extraction overhead for frequently-loaded revisions.\n            Set to 0 to disable, or number of seconds before cache expiry.\n    RevisionSlotsCacheExpiry:\n        default:\n            local: 3600\n            WAN: 86400\n        type: object\n        description: |-\n            Revision slots may be cached in the main WAN cache and/or the local server cache\n            to reduce load on the database.\n            Set to 0 to disable, or number of seconds before cache expiry.\n    PageLanguageUseDB:\n        default: false\n        type: boolean\n        description: |-\n            Enable page language feature\n            Allows setting page language in database\n            @since 1.24\n    DiffEngine:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Specify the difference engine to use.\n            Supported values:\n            - 'external': Use an external diff engine, which must be specified via $wgExternalDiffEngine\n            - 'wikidiff2': Use the wikidiff2 PHP extension\n            - 'php': PHP implementations included in MediaWiki\n            The default (null) is to use the first engine that's available.\n            @since 1.35\n    ExternalDiffEngine:\n        default: false\n        type:\n            - string\n            - boolean\n        description: Name of the external diff engine to use.\n    Wikidiff2Options:\n        default: { }\n        type: object\n        description: |-\n            Options for wikidiff2:\n              - useMultiFormat: (bool) Whether to use wikidiff2_multi_format_diff()\n                if it is available. This temporarily defaults to false, during\n                migration to the new code. It is available in wikidiff2 1.14.0+.\n            The following options are only effective if wikidiff2_multi_format_diff()\n            is enabled. See README.md in wikidiff2 for details:\n              - numContextLines\n              - changeThreshold\n              - movedLineThreshold\n              - maxMovedLines\n              - maxWordLevelDiffComplexity\n              - maxSplitSize\n              - initialSplitThreshold\n              - finalSplitThreshold\n            Also:\n              - formatOptions: An array of format-specific overrides. The key may\n                be \"inline\" or \"table\" and the value is an array with keys\n                numContextLines, changeThreshold, etc.\n            @since 1.41\n    RequestTimeLimit:\n        default: null\n        type:\n            - integer\n            - \"null\"\n        description: |-\n            Set a limit on server request wall clock time.\n            If the Excimer extension is enabled, setting this will cause an exception\n            to be thrown after the specified number of seconds. If the extension is\n            not available, set_time_limit() will be called instead.\n            @since 1.36\n    TransactionalTimeLimit:\n        default: 120\n        description: |-\n            The request time limit for \"slow\" write requests that should not be\n            interrupted due to the risk of data corruption.\n            The limit will only be raised. If the pre-existing time limit is larger,\n            then this will have no effect.\n            @since 1.26\n    CriticalSectionTimeLimit:\n        default: 180.0\n        type: number\n        description: |-\n            The maximum time critical sections are allowed to stay open. Critical\n            sections are used to defer Excimer request timeouts. If Excimer is available\n            and this time limit is exceeded, an exception will be thrown at the next\n            opportunity, typically after a long-running function like a DB query returns.\n            Critical sections may wrap long-running queries, and it's generally better\n            for the timeout to be handled a few milliseconds later when the critical\n            section exits, so this should be a large number.\n            This limit is ignored in command-line mode.\n            @since 1.36\n    MiserMode:\n        default: false\n        description: Disable database-intensive features\n    DisableQueryPages:\n        default: false\n        description: \"Disable all query pages if miser mode is on, not just some\"\n    QueryCacheLimit:\n        default: 1000\n        description: \"Number of rows to cache in 'querycache' table when miser mode is on\"\n    WantedPagesThreshold:\n        default: 1\n        description: 'Number of links to a page required before it is deemed \"wanted\"'\n    AllowSlowParserFunctions:\n        default: false\n        description: Enable slow parser functions\n    AllowSchemaUpdates:\n        default: true\n        description: Allow schema updates\n    MaxArticleSize:\n        default: 2048\n        description: Maximum article size in kibibytes\n    MemoryLimit:\n        default: 50M\n        description: |-\n            The minimum amount of memory that MediaWiki \"needs\"; MediaWiki will try to\n            raise PHP's memory limit if it's below this amount.\n    PoolCounterConf:\n        default: null\n        type:\n            - object\n            - \"null\"\n        description: |-\n            Configuration for processing pool control, for use in high-traffic wikis.\n            An implementation is provided in the PoolCounter extension.\n            This configuration array maps pool types to an associative array. The only\n            defined key in the associative array is \"class\", which gives the class name.\n            The remaining elements are passed through to the class as constructor\n            parameters.\n            **Example using local redis instance:**\n            ```\n            $wgPoolCounterConf = [ 'ArticleView' => [\n              'class' => PoolCounterRedis::class,\n              'timeout' => 15, // wait timeout in seconds\n              'workers' => 1, // maximum number of active threads in each pool\n              'maxqueue' => 5, // maximum number of total threads in each pool\n              'servers' => [ '127.0.0.1' ],\n              'redisConfig' => []\n            ] ];\n            ```\n            **Example using C daemon from <https://gerrit.wikimedia.org/g/mediawiki/services/poolcounter>**\n            ```\n            $wgPoolCountClientConf = [\n              'servers' => [ '127.0.0.1' ],\n              'timeout' => 0.5,\n              'connect_timeout' => 0.01,\n            ];\n            $wgPoolCounterConf = [ 'ArticleView' => [\n              'class' => 'PoolCounter_Client',\n              'timeout' => 15, // wait timeout in seconds\n              'workers' => 5, // maximum number of active threads in each pool\n              'maxqueue' => 50, // maximum number of total threads in each pool\n              ... any extension-specific options...\n            ] ];\n            ```\n            @since 1.16\n    PoolCountClientConf:\n        default:\n            servers: [ 127.0.0.1 ]\n            timeout: 0.1\n        type: object\n        description: |-\n            Configuration array for the PoolCounter client.\n            - servers: Array of hostnames, or hostname:port. The default port is 7531.\n            - timeout: Connection timeout.\n            - connect_timeout: [Since 1.28] Alternative connection timeout. If set, it is used\n              instead of `timeout` and will be retried once if a connection fails\n              to be established. Background: https://phabricator.wikimedia.org/T105378.\n            @see \\MediaWiki\\PoolCounter\\PoolCounterClient\n            @since 1.16\n    MaxUserDBWriteDuration:\n        default: false\n        type:\n            - integer\n            - boolean\n        description: |-\n            Max time (in seconds) a user-generated transaction can spend in writes.\n            If exceeded, the transaction is rolled back with an error instead of being committed.\n            @since 1.27\n    MaxJobDBWriteDuration:\n        default: false\n        type:\n            - integer\n            - boolean\n        description: |-\n            Max time (in seconds) a job-generated transaction can spend in writes.\n            If exceeded, the transaction is rolled back with an error instead of being committed.\n            @since 1.30\n    LinkHolderBatchSize:\n        default: 1000\n        description: |-\n            LinkHolderArray batch size\n            For debugging\n    MaximumMovedPages:\n        default: 100\n        description: Maximum number of pages to move at once when moving subpages with a page.\n    ForceDeferredUpdatesPreSend:\n        default: false\n        description: |-\n            Force deferred updates to be run before sending a response to the client,\n            instead of attempting to run them after sending the response. Setting this\n            to true is useful for end-to-end testing, to ensure that the effects of a\n            request are visible to any subsequent requests, even if they are made\n            immediately after the first one. Note however that this does not ensure\n            that database replication is complete, nor does it execute any jobs\n            enqueued for later.\n            There should be no reason to set this in a normal production environment.\n            @since 1.38\n    MultiShardSiteStats:\n        default: false\n        type: boolean\n        description: |-\n            Whether site_stats table should have multiple rows. If set to true, in each update,\n            one of ten rows gets updated at random to reduce lock wait time in wikis\n            that have lots of concurrent edits.\n            It should be set to true in really large wikis with big flow of edits,\n            Otherwise it can cause inaccuracy in data.\n            @since 1.39\n    CacheDirectory:\n        default: false\n        description: |-\n            Directory for caching data in the local filesystem. Should not be accessible\n            from the web.\n            Note: if multiple wikis share the same localisation cache directory, they\n            must all have the same set of extensions. You can set a directory just for\n            the localisation cache using $wgLocalisationCacheConf['storeDirectory'].\n    MainCacheType:\n        default: 0\n        description: |-\n            Main cache type. This should be a cache with fast access, but it may have\n            limited space. By default, it is disabled, since the stock database cache\n            is not fast enough to make it worthwhile.\n            The options are:\n            - CACHE_ANYTHING:   Use anything, as long as it works\n            - CACHE_NONE:       Do not cache\n            - CACHE_DB:         Store cache objects in the DB\n            - CACHE_MEMCACHED:  MemCached, must specify servers in $wgMemCachedServers\n            - CACHE_ACCEL:      APC or APCu\n            - (other):          A string may be used which identifies a cache\n                                configuration in $wgObjectCaches.\n            For a multi-datacenter setup, the underlying service should be configured\n            to broadcast operations by WANObjectCache using Mcrouter or Dynomite.\n            See @ref wanobjectcache-deployment \"Deploying WANObjectCache\".\n            To configure the `broadcastRoutingPrefix` WANObjectCache parameter,\n            use $wgWANObjectCache.\n            @see self::MessageCacheType\n            @see self::ParserCacheType\n    MessageCacheType:\n        default: -1\n        description: |-\n            The cache type for storing the contents of the MediaWiki namespace. This\n            cache is used for a small amount of data which is expensive to regenerate.\n            For available types see $wgMainCacheType.\n    ParserCacheType:\n        default: -1\n        description: |-\n            The cache type for storing page content HTML (e.g. parsed from wikitext).\n            Parsing wikitext is considered an expensive operation. It is recommended\n            to give your parser cache plenty of storage space, such that long tail cache\n            hits are possible.\n            The default parser cache backend (when MainCacheType is left to CACHE_NONE)\n            is effectively CACHE_DB (SqlBagOStuff). If you set up a main cache type\n            such as memcached, it is recommended to set this explicitly to CACHE_DB.\n            Advice for large wiki farms:\n            - Consider allocating a dedicated database to ParserCache.\n              Register it in $wgObjectCaches and point $wgParserCacheType to it.\n            - Consider using MultiWriteBagOStuff to add a higher tier with Memcached\n              in front of the lower database tier.\n            - Consider setting `'purgePeriod' => 0` in the dedicated SqlBagOStuff\n              entry in $wgObjectCaches. This disables the automatic purging of\n              expired rows (which would normally happen in the background of\n              write requests). You can then schedule the purgeParserCache.php script\n              to e.g. once a day prune expired rows from the a dedicated maintenance\n              server.\n            For available types see $wgMainCacheType.\n    SessionCacheType:\n        default: -1\n        description: |-\n            The cache backend for storing session data.\n            Used by MediaWiki\\Session\\SessionManager. See $wgMainCacheType for available types.\n            See [SessionManager Storage expectations](@ref SessionManager-storage-expectations).\n    LanguageConverterCacheType:\n        default: -1\n        description: |-\n            The cache type for storing language conversion tables,\n            which are used when parsing certain text and interface messages.\n            For available types see $wgMainCacheType.\n            @since 1.20\n    ObjectCaches:\n        default:\n            0: { class: Wikimedia\\ObjectCache\\EmptyBagOStuff, reportDupes: false }\n            1: { class: SqlBagOStuff, loggroup: SQLBagOStuff }\n            memcached-php: { class: Wikimedia\\ObjectCache\\MemcachedPhpBagOStuff, loggroup: memcached }\n            memcached-pecl: { class: Wikimedia\\ObjectCache\\MemcachedPeclBagOStuff, loggroup: memcached }\n            hash: { class: Wikimedia\\ObjectCache\\HashBagOStuff, reportDupes: false }\n            apc: { class: Wikimedia\\ObjectCache\\APCUBagOStuff, reportDupes: false }\n            apcu: { class: Wikimedia\\ObjectCache\\APCUBagOStuff, reportDupes: false }\n        type: object\n        description: |-\n            Advanced object cache configuration.\n            Use this to define the class names and constructor parameters which are used\n            for the various cache types. Custom cache types may be defined here and\n            referenced from $wgMainCacheType, $wgMessageCacheType, $wgParserCacheType,\n            or $wgLanguageConverterCacheType.\n            The format is an associative array where the key is a cache identifier, and\n            the value is an associative array of parameters. One of the following\n            parameters specifying the class must be given:\n              - class: The class name which will be used.\n              - factory: A callable function which will generate a suitable cache object.\n            The following parameters are shared and understood by most classes:\n              - loggroup: The log channel to use.\n            For SqlBagOStuff, the main configured database will be used, unless one of the following\n            three parameters is given:\n              - server: Server config map for Database::factory() that describes the database to\n                 use for all key operations in the current region. This is overridden by \"servers\".\n              - servers: Map of tag strings to server config maps, each for Database::factory(),\n                 describing the set of database servers on which to distribute key operations in the\n                 current region. Data is distributed among the servers via key hashing based on the\n                 server tags. Therefore, each tag represents a shard of the dataset. Tags are useful\n                 for failover using cold-standby servers and for managing shards with replica servers\n                 in multiple regions (each having different hostnames).\n              - cluster: The ExternalStore cluster name to use.\n            SqlBagOStuff also accepts the following optional parameters:\n              - dbDomain: The database name to pass to the LoadBalancer.\n              - multiPrimaryMode: Whether the portion of the dataset belonging to each tag/shard is\n                 replicated among one or more regions, with one \"co-primary\" server in each region.\n                 Queries are issued in a manner that provides Last-Write-Wins eventual consistency.\n                 This option requires the \"server\" or \"servers\" options. Only MySQL, with statement\n                 based replication (log_bin='ON' and binlog_format='STATEMENT') is supported. Also,\n                 the `modtoken` column must exist on the `objectcache` table(s).\n              - purgePeriod: The average number of object cache writes in between garbage collection\n                 operations, where expired entries are removed from the database. Or in other words,\n                 the probability of performing a purge is one in every this number. If set to zero,\n                 purging will never be done at runtime (for use with PurgeParserCache).\n              - purgeLimit: Maximum number of rows to purge at once.\n              - tableName: The table name to use, default is \"objectcache\".\n              - shards: The number of tables to use for data storage on each server. If greater than\n                 1, table names are formed in the style objectcacheNNN where NNN is the shard index,\n                 between 0 and shards-1. The number of digits used in the suffix is the minimum number\n                 required to hold the largest shard index. Data is distributed among the tables via\n                 key hashing. This helps mitigate MySQL bugs 61735 and 61736.\n              - writeBatchSize: Default maximum number of rows to change in each query for write\n                 operations that can be chunked into a set of smaller writes.\n              - dataRedundancy: When set to a number higher than one, instead of sharding values,\n                it writes to that many servers (out of all servers) and reads from all of them too.\n                In case of inconsistency between servers, it picks the value with the highest exptime.\n                Mostly useful for stronger consistency such as mainstash.\n                This option has many limitations (for example when TTL is set to indef or changes)\n                and it shouldn't be used to handle race conditions nor canonical data.\n                The main point of data redundancy is to allow depool of a cluster for maintenance\n                without displacing too many keys.\n            For MemcachedPhpBagOStuff parameters see {@link MemcachedPhpBagOStuff::__construct}\n            For MemcachedPeclBagOStuff parameters see {@link MemcachedPeclBagOStuff::__construct}\n            For RedisBagOStuff parameters see {@link Wikimedia\\ObjectCache\\RedisBagOStuff::__construct}\n    WANObjectCache:\n        default: { }\n        type: object\n        description: |-\n            Extra parameters to the WANObjectCache constructor.\n            See @ref wanobjectcache-deployment \"Deploying WANObjectCache\".\n            @since 1.40\n    MicroStashType:\n        default: -1\n        type:\n            - string\n            - integer\n        description: |-\n            The stash store backend for MicroStash.\n            This store should be optimized for ephemeral data, and should be able to handle\n            a high volume of writes and reads. The dataset access scope should be across\n            all servers that serve the application.\n            Note that the TTL of the data written to this store must be respected completely\n            before the data gets evicted from the store (whether the data is used or not).\n            The store must not evict data based on LRU or popularity before the TTL expires.\n            Expectations for sysadmins:\n            1. The data written to this store is generally short-lived (seconds/minutes),\n            2. This store must reliably persist and should not evict data until the TTL expires,\n            3. The same store must be accessed by all application servers (i.e. no visible lag or\n               split reality),\n            4. This store should handle a high volume of both writes and reads,\n               with reads completing with consistently low latencies.\n            Examples users:\n            - {@link MediaWiki::Permissions::RateLimiter RateLimiter} (via RStatsFactory)\n            - {@link Wikimedia::Rdbms::ChronologyProtector ChronologyProtector}\n               See also [ChronologyProtector requirements](@ref ChronologyProtector-storage-requirements),\n               for more detailed system administrator requirements for multi-DC operations.\n            Valid options are the keys of {@link $wgObjectCaches}, e.g. CACHE_* constants.\n            @see \\Wikimedia\\ObjectCache\\BagOStuff\n            @since 1.42\n    MainStash:\n        default: 1\n        description: |-\n            The object store type of the main stash.\n            This should be a fast storage system optimized for lightweight data, both ephemeral and\n            permanent, for things like counters, tokens, and blobs. The dataset access scope should\n            include all the application servers in all datacenters. Thus, the data must be replicated\n            among all datacenters. The store should have \"Last Write Wins\" eventual consistency. Per\n            https://en.wikipedia.org/wiki/PACELC_theorem, the store should act as a PA/EL distributed\n            system for these operations.\n            The multi-datacenter strategy for MediaWiki is to have CDN route HTTP POST requests to the\n            primary datacenter and HTTP GET/HEAD/OPTIONS requests to the closest datacenter to the\n            client. The stash accepts write operations from any datacenter, but cross-datacenter\n            replication is asynchronous.\n            Modules that use the main stash can expect race conditions to occur if a key can receive\n            write operations originating from multiple datacenters. To improve consistency, callers\n            should avoid main stash updates during non-POST requests. In any case, callers should\n            gracefully tolerate occasional key evictions, temporary inconsistencies among datacenters,\n            and violations of linearizability (e.g. during timeouts). Modules that can never handle\n            these kinds of anomalies should use other storage mediums.\n            Valid options are the keys of {@link $wgObjectCaches}, e.g. CACHE_* constants.\n            @see \\Wikimedia\\ObjectCache\\BagOStuff\n            @since 1.26\n    ParsoidCacheConfig:\n        type: object\n        properties:\n            StashType: { type: [ integer, string, \"null\" ], default: null }\n            StashDuration: { type: integer, default: 86400 }\n            WarmParsoidParserCache: { type: boolean, default: false }\n        description: |-\n            Configuration for the caching related to parsoid output. The configuration contains the\n            following keys:\n            - StashType: The type of object store to be used by the ParsoidOutputStash service,\n                  which stores the base state of HTML based edits.\n                  Valid options are the keys of {@link $wgObjectCaches}, e.g. CACHE_* constants.\n                  By default, the value of the MainStash setting will be used.\n                  This should be an object store that provides fairly solid persistence guarantees,\n                  since losing an entry from the stash may mean that the user can't save their edit.\n                  If null, the value of the MainStash configuration setting will be used.\n            - StashDuration: The number of seconds for which an entry in the stash should be kept.\n                  Should be long enough for users to finish editing,\n                  since losing an entry from the stash may mean that the user can't save their edit.\n                  This is set to one day by default.\n            - WarmParsoidParserCache: Setting this to true will pre-populate the parsoid parser cache\n                  with parsoid outputs on page edits. This speeds up loading HTML into Visual Editor.\n            @since 1.39\n            @unstable Per MediaWiki 1.39, the structure of this configuration is still subject to\n                      change.\n        default: null\n    ParsoidSelectiveUpdateSampleRate:\n        type: integer\n        default: 0\n        description: |-\n            Sample rate for collecting statistics on Parsoid selective update.\n            Zero disables collection; 1000 means \"1 in every 1000 parses will\n            be sampled\".\n            @warning This is EXPERIMENTAL and will disappear once analysis is\n            complete.\n    ParserCacheFilterConfig:\n        type: object\n        default:\n            pcache: { default: { minCpuTime: 0 } }\n            parsoid-pcache: { default: { minCpuTime: 0 } }\n        additionalProperties:\n            type: object\n            description: A map of namespace IDs to filter definitions.\n            additionalProperties: { type: object, description: A map of filter names to values., properties: { minCpuTime: { type: number } } }\n        description: |-\n            Per-namespace configuration for the ParserCache filter.\n            There is one top level key for each cache name supported in ParserCacheFactory.\n            The per-namespace configuration is given separately for each cache.\n            For each namespace, this defines a set of filter options, which are represented\n            as an associative array. The following keys are supported in this array:\n            - minCpuTime: causes the parser cache to not save any output that took fewer\n              than the given number of seconds of CPU time to generate, according to\n              ParserOutput::getTimeProfile(). Set to 0 to always cache, or to\n              PHP_INT_MAX to disable caching for this namespace.\n            If no filter options are defined for a given namespace, the filter options\n            under the \"default\" key will be used for pages in that namespace.\n            @since 1.42\n    ChronologyProtectorSecret:\n        default: \"\"\n        type: string\n        description: |-\n            Secret string for HMAC hashing in ChronologyProtector [optional]\n            @since 1.41\n    ParserCacheExpireTime:\n        default: 86400\n        description: |-\n            The expiry time for the parser cache, in seconds.\n            The default is 86400 (one day).\n    ParserCacheAsyncExpireTime:\n        default: 60\n        description: |-\n            The expiry time for \"not ready\" asynchronous content in the parser\n            cache, in seconds.  This should be rather short, to allow the\n            \"not ready\" content to be replaced by \"ready\" content.\n            The default is 60 (one minute).\n            @since 1.44\n    ParserCacheAsyncRefreshJobs:\n        default: true\n        description: |-\n            Whether to re-run the refresh links jobs when asynchronous content\n            becomes ready.  This is needed if the asynchronous content can affect\n            categories or other page metadata.\n            @since 1.44\n    OldRevisionParserCacheExpireTime:\n        default: 3600\n        description: |-\n            The expiry time for the parser cache for old revisions, in seconds.\n            The default is 3600 (cache disabled).\n    ObjectCacheSessionExpiry:\n        default: 3600\n        description: \"The expiry time to use for session storage, in seconds.\"\n    PHPSessionHandling:\n        default: enable\n        type: string\n        description: |-\n            Whether to use PHP session handling ($_SESSION and session_*() functions)\n            If the constant MW_NO_SESSION is defined, this is forced to 'disable'.\n            If the constant MW_NO_SESSION_HANDLER is defined, this is ignored and PHP\n            session handling will function independently of SessionHandler.\n            SessionHandler and PHP's session handling may attempt to override each\n            others' cookies.\n            @since 1.27\n    SuspiciousIpExpiry:\n        default: false\n        type:\n            - integer\n            - boolean\n        description: |-\n            Time in seconds to remember IPs for, for the purposes of logging IP changes within the\n            same session. This is meant more for debugging errors in the authentication system than\n            for detecting abuse.\n            @since 1.36\n    SessionPbkdf2Iterations:\n        default: 10001\n        description: |-\n            Number of internal PBKDF2 iterations to use when deriving session secrets.\n            @since 1.28\n    MemCachedServers:\n        default:\n            - \"127.0.0.1:11211\"\n        type: array\n        description: The list of MemCached servers and port numbers\n    MemCachedPersistent:\n        default: false\n        description: |-\n            Use persistent connections to MemCached, which are shared across multiple\n            requests.\n    MemCachedTimeout:\n        default: 500000\n        description: \"Read/write timeout for MemCached server communication, in microseconds.\"\n    UseLocalMessageCache:\n        default: false\n        description: |-\n            Set this to true to maintain a copy of the message cache on the local server.\n            This layer of message cache is in addition to the one configured by $wgMessageCacheType.\n            The local copy is put in APC. If APC is not installed, this setting does nothing.\n            Note that this is about the message cache, which stores interface messages\n            maintained as wiki pages. This is separate from the localisation cache for interface\n            messages provided by the software, which is configured by $wgLocalisationCacheConf.\n    AdaptiveMessageCache:\n        default: false\n        description: |-\n            Instead of caching everything, only cache those messages which have\n            been customised in the site content language. This means that\n            MediaWiki:Foo/ja is ignored if MediaWiki:Foo doesn't exist.\n            This option is probably only useful for translatewiki.net.\n    LocalisationCacheConf:\n        properties:\n            class: { type: string, default: LocalisationCache }\n            store: { type: string, default: detect }\n            storeClass: { type: [ boolean, string ], default: false }\n            storeDirectory: { type: [ boolean, string ], default: false }\n            storeServer: { type: object, default: [] }\n            forceRecache: { type: boolean, default: false }\n            manualRecache: { type: boolean, default: false }\n        type: object\n        description: |-\n            Localisation cache configuration.\n            Used by service wiring to decide how to construct the\n            LocalisationCache instance. Associative array with keys:\n            class:       The class to use for constructing the LocalisationCache object.\n                         This may be overridden by extensions to a subclass of LocalisationCache.\n                         Sub classes are expected to still honor the 'storeClass', 'storeDirectory'\n                         and 'manualRecache' options where applicable.\n            storeClass:  Which LCStore class implementation to use. This is optional.\n                         The default LocalisationCache class offers the 'store' option\n                         as abstraction for this.\n            store:       How and where to store localisation cache data.\n                         This option is ignored if 'storeClass' is explicitly set to a class name.\n                         Must be one of:\n                         - 'detect' (default): Automatically select 'files' if 'storeDirectory'\n                            or $wgCacheDirectory is set, and fall back to 'db' otherwise.\n                         - 'files': Store in $wgCacheDirectory as CDB files.\n                         - 'array': Store in $wgCacheDirectory as PHP static array files.\n                         - 'db': Store in the l10n_cache database table.\n            storeDirectory: If the selected LCStore class puts its data in files, then it\n                            will use this directory. If set to false (default), then\n                            $wgCacheDirectory is used instead.\n            manualRecache: Set this to true to disable cache updates on web requests.\n                           Use maintenance/rebuildLocalisationCache.php instead.\n        default: null\n    CachePages:\n        default: true\n        description: Allow client-side caching of pages\n    CacheEpoch:\n        default: \"20030516000000\"\n        description: |-\n            Set this to current time to invalidate all prior cached pages. Affects both\n            client-side and server-side caching.\n            You can get the current date on your server by using the command:\n            @verbatim date +%Y%m%d%H%M%S\n            @endverbatim\n    GitInfoCacheDirectory:\n        default: false\n        description: |-\n            Directory where GitInfo will look for pre-computed cache files. If false,\n            $wgCacheDirectory/gitinfo will be used.\n    UseFileCache:\n        default: false\n        description: |-\n            This will cache static pages for non-logged-in users to reduce\n            database traffic on public sites. ResourceLoader requests to default\n            language and skins are cached as well as single module requests.\n    FileCacheDepth:\n        default: 2\n        description: |-\n            Depth of the subdirectory hierarchy to be created under\n            $wgFileCacheDirectory.  The subdirectories will be named based on\n            the MD5 hash of the title.  A value of 0 means all cache files will\n            be put directly into the main file cache directory.\n    RenderHashAppend:\n        default: \"\"\n        description: |-\n            Append a configured value to the parser cache and the sitenotice key so\n            that they can be kept separate for some class of activity.\n    EnableSidebarCache:\n        default: false\n        description: |-\n            If on, the sidebar navigation links are cached for users with the\n            current language set. This can save a touch of load on a busy site\n            by shaving off extra message lookups.\n            However it is also fragile: changing the site configuration, or\n            having a variable $wgArticlePath, can produce broken links that\n            don't update as expected.\n    SidebarCacheExpiry:\n        default: 86400\n        description: \"Expiry time for the sidebar cache, in seconds\"\n    UseGzip:\n        default: false\n        description: |-\n            When using the file cache, we can store the cached HTML gzipped to save disk\n            space. Pages will then also be served compressed to clients that support it.\n            Requires zlib support enabled in PHP.\n    InvalidateCacheOnLocalSettingsChange:\n        default: true\n        description: |-\n            Invalidate various caches when LocalSettings.php changes. This is equivalent\n            to setting $wgCacheEpoch to the modification time of LocalSettings.php, as\n            was previously done in the default LocalSettings.php file.\n            On high-traffic wikis, this should be set to false, to avoid the need to\n            check the file modification time, and to avoid the performance impact of\n            unnecessary cache invalidations.\n    ExtensionInfoMTime:\n        default: false\n        type:\n            - integer\n            - boolean\n        description: |-\n            When loading extensions through the extension registration system, this\n            can be used to invalidate the cache. A good idea would be to set this to\n            one file, you can just `touch` that one to invalidate the cache\n            **Example:**\n            ```\n            $wgExtensionInfoMTime = filemtime( \"$IP/LocalSettings.php\" );\n            ```\n            If set to false, the mtime for each individual JSON file will be checked,\n            which can be slow if a large number of extensions are being loaded.\n    EnableRemoteBagOStuffTests:\n        default: false\n        description: |-\n            If this is set to true, phpunit will run integration tests against remote\n            caches defined in $wgObjectCaches.\n            @since 1.38\n    UseCdn:\n        default: false\n        description: |-\n            Enable/disable CDN.\n            See https://www.mediawiki.org/wiki/Manual:Performance_tuning#Page_view_caching\n            @since 1.34 Renamed from $wgUseSquid.\n    VaryOnXFP:\n        default: false\n        description: |-\n            Add X-Forwarded-Proto to the Vary and Key headers for API requests and\n            RSS/Atom feeds. Use this if you have an SSL termination setup\n            and need to split the cache between HTTP and HTTPS for API requests,\n            feed requests and HTTP redirect responses in order to prevent cache\n            pollution. This does not affect 'normal' requests to index.php other than\n            HTTP redirects.\n    InternalServer:\n        default: false\n        description: |-\n            Internal server name as known to CDN, if different.\n            **Example:**\n            ```\n            $wgInternalServer = 'http://yourinternal.tld:8000';\n            ```\n    CdnMaxAge:\n        default: 18000\n        description: |-\n            Cache TTL for the CDN sent as s-maxage (without ESI) or\n            Surrogate-Control (with ESI). Without ESI, you should strip\n            out s-maxage in the CDN config.\n            18000 seconds = 5 hours, more cache hits with 2678400 = 31 days.\n            @since 1.34 Renamed from $wgSquidMaxage\n    CdnMaxageLagged:\n        default: 30\n        description: |-\n            Cache timeout for the CDN when DB replica DB lag is high\n            @see self::CdnMaxAge\n            @since 1.27\n    CdnMaxageStale:\n        default: 10\n        description: |-\n            Cache timeout when delivering a stale ParserCache response due to PoolCounter\n            contention.\n            @since 1.35\n    CdnReboundPurgeDelay:\n        default: 0\n        description: |-\n            If set, any SquidPurge call on a URL or URLs will send a second purge no less than\n            this many seconds later via the job queue. This requires delayed job support.\n            This should be safely higher than the 'max lag' value in $wgLBFactoryConf, so that\n            replica DB lag does not cause page to be stuck in stales states in CDN.\n            This also fixes race conditions in two-tiered CDN setups (e.g. cdn2 => cdn1 => MediaWiki).\n            If a purge for a URL reaches cdn2 before cdn1 and a request reaches cdn2 for that URL,\n            it will populate the response from the stale cdn1 value. When cdn1 gets the purge, cdn2\n            will still be stale. If the rebound purge delay is safely higher than the time to relay\n            a purge to all nodes, then the rebound purge will clear cdn2 after cdn1 was cleared.\n            @since 1.27\n    CdnMaxageSubstitute:\n        default: 60\n        description: |-\n            Cache timeout for the CDN when a response is known to be wrong or incomplete (due to load)\n            @see self::CdnMaxAge\n            @since 1.27\n    ForcedRawSMaxage:\n        default: 300\n        description: |-\n            Default maximum age for raw CSS/JS accesses\n            300 seconds = 5 minutes.\n    CdnServers:\n        default: { }\n        type: object\n        description: |-\n            List of proxy servers to purge on changes; default port is 80. Use IP addresses.\n            When MediaWiki is running behind a proxy, it will trust X-Forwarded-For\n            headers sent/modified from these proxies when obtaining the remote IP address\n            For a list of trusted servers which *aren't* purged, see $wgSquidServersNoPurge.\n            @since 1.34 Renamed from $wgSquidServers.\n    CdnServersNoPurge:\n        default: { }\n        type: object\n        description: |-\n            As with $wgCdnServers, except these servers aren't purged on page changes;\n            use to set a list of trusted proxies, etc. Supports both individual IP\n            addresses and CIDR blocks.\n            @since 1.23 Supports CIDR ranges\n            @since 1.34 Renamed from $wgSquidServersNoPurge\n    HTCPRouting:\n        default: { }\n        type: object\n        description: |-\n            Routing configuration for HTCP multicast purging. Add elements here to\n            enable HTCP and determine which purges are sent where. If set to an empty\n            array, HTCP is disabled.\n            Each key in this array is a regular expression to match against the purged\n            URL, or an empty string to match all URLs. The purged URL is matched against\n            the regexes in the order specified, and the first rule whose regex matches\n            is used, all remaining rules will thus be ignored.\n            **Example configuration to send purges for upload.wikimedia.org to one**\n            multicast group and all other purges to another:\n            ```\n            $wgHTCPRouting = [\n                    '|^https?://upload\\.wikimedia\\.org|' => [\n                            'host' => '239.128.0.113',\n                            'port' => 4827,\n                    ],\n                    '' => [\n                            'host' => '239.128.0.112',\n                            'port' => 4827,\n                    ],\n            ];\n            ```\n            You can also pass an array of hosts to send purges too. This is useful when\n            you have several multicast groups or unicast address that should receive a\n            given purge.  Multiple hosts support was introduced in MediaWiki 1.22.\n            **Example of sending purges to multiple hosts:**\n            ```\n            $wgHTCPRouting = [\n                '' => [\n                    // Purges to text caches using multicast\n                    [ 'host' => '239.128.0.114', 'port' => '4827' ],\n                    // Purges to a hardcoded list of caches\n                    [ 'host' => '10.88.66.1', 'port' => '4827' ],\n                    [ 'host' => '10.88.66.2', 'port' => '4827' ],\n                    [ 'host' => '10.88.66.3', 'port' => '4827' ],\n                ],\n            ];\n            ```\n            @since 1.22\n            @see self::HTCPMulticastTTL\n    HTCPMulticastTTL:\n        default: 1\n        description: |-\n            HTCP multicast TTL.\n            @see self::HTCPRouting\n    UsePrivateIPs:\n        default: false\n        description: Should forwarded Private IPs be accepted?\n    CdnMatchParameterOrder:\n        default: true\n        description: |-\n            Set this to false if MediaWiki is behind a CDN that re-orders query\n            parameters on incoming requests.\n            MediaWiki sets a large 'Cache-Control: s-maxage=' directive on page\n            views only if the request URL matches one of the normal CDN URL forms.\n            When 'CdnMatchParameterOrder' is false, the matching algorithm ignores\n            the order of URL parameters.\n            @since 1.39\n    LanguageCode:\n        default: en\n        description: |-\n            Site language code. See includes/languages/data/Names.php for languages\n            supported by MediaWiki out of the box. Not all languages listed there have\n            translations, see languages/messages/ for the list of languages with some\n            localisation.\n            Warning: Don't use any of MediaWiki's deprecated language codes listed in\n            LanguageCode::getDeprecatedCodeMapping or $wgDummyLanguageCodes, like \"no\"\n            for Norwegian (use \"nb\" instead). If you do, things will break unexpectedly.\n            This defines the default interface language for all users, but users can\n            change it in their preferences.\n            This also defines the language of pages in the wiki. The content is wrapped\n            in a html element with lang=XX attribute. This behavior can be overridden\n            via hooks, see Title::getPageLanguage.\n    GrammarForms:\n        default: { }\n        type: object\n        description: |-\n            Some languages need different word forms, usually for different cases.\n            Used in Language::convertGrammar().\n            **Example:**\n            ```\n            $wgGrammarForms['en']['genitive']['car'] = 'car\\'s';\n            ```\n    InterwikiMagic:\n        default: true\n        description: \"Treat language links as magic connectors, not inline links\"\n    HideInterlanguageLinks:\n        default: false\n        description: Hide interlanguage links from the sidebar\n    ExtraInterlanguageLinkPrefixes:\n        default: []\n        type: array\n        description: |-\n            List of additional interwiki prefixes that should be treated as\n            interlanguage links (i.e. placed in the sidebar).\n            Notes:\n            - This will not do anything unless the prefixes are defined in the interwiki\n              map.\n            - The display text for these custom interlanguage links will be fetched from\n              the system message \"interlanguage-link-xyz\" where xyz is the prefix in\n              this array.\n            - A friendly name for each site, used for tooltip text, may optionally be\n              placed in the system message \"interlanguage-link-sitename-xyz\" where xyz is\n              the prefix in this array.\n            - This should be a list of \"interwiki prefixes\" (ie, what appears in\n              wikitext), and you probably want to add an entry to\n              InterlanguageLinkCodeMap as well to specify which mediawiki internal\n              (or custom) language code this prefix corresponds to, and perhaps\n              then map that custom language code to a language name in\n              ExtraLanguageNames.\n    InterlanguageLinkCodeMap:\n        default: { }\n        type: object\n        description: |-\n            Map of interlanguage link codes to language codes. This is useful to override\n            what is shown as the language name when the interwiki code does not match it\n            exactly\n            @since 1.35\n    ExtraLanguageNames:\n        default: { }\n        type: object\n        description: List of language names or overrides for default names in Names.php\n    ExtraLanguageCodes:\n        default:\n            bh: bho\n            no: nb\n            simple: en\n        type: object\n        description: |-\n            List of mappings from one language code to another.\n            This array makes the codes not appear as a selectable language on the\n            installer.\n            In Setup.php, the variable $wgDummyLanguageCodes is created by combining\n            these codes with a list of \"deprecated\" codes, which are mostly leftovers\n            from renames or other legacy things, and the internal codes 'qqq' and 'qqx'.\n            If a mapping in $wgExtraLanguageCodes collide with a built-in mapping, the\n            value in $wgExtraLanguageCodes will be used.\n            @since 1.29\n    DummyLanguageCodes:\n        default: { }\n        type: object\n        description: |-\n            Functionally the same as $wgExtraLanguageCodes, but deprecated. Instead of\n            appending values to this array, append them to $wgExtraLanguageCodes.\n            @note Since 1.29, this should not be set directly in LocalSettings,\n                  ExtraLanguageCodes should be set instead. However, DummyLanguageCodes\n                  will be initialized and can be read internally.\n    AllUnicodeFixes:\n        default: false\n        description: |-\n            Set this to always convert certain Unicode sequences to modern ones\n            regardless of the content language. This has a small performance\n            impact.\n            @since 1.17\n    LegacyEncoding:\n        default: false\n        description: |-\n            Set this to eg 'ISO-8859-1' to perform character set conversion when\n            loading old revisions not marked with \"utf-8\" flag. Use this when\n            converting a wiki from MediaWiki 1.4 or earlier to UTF-8 without the\n            burdensome mass conversion of old text data.\n            @note This DOES NOT touch any fields other than old_text. Titles, comments,\n            user names, etc still must be converted en masse in the database before\n            continuing as a UTF-8 wiki.\n    AmericanDates:\n        default: false\n        description: |-\n            Enable dates like 'May 12' instead of '12 May', if the default date format\n            is 'dmy or mdy'.\n    TranslateNumerals:\n        default: true\n        description: |-\n            For Hindi and Arabic use local numerals instead of Western style (0-9)\n            numerals in interface.\n    UseDatabaseMessages:\n        default: true\n        description: |-\n            Translation using MediaWiki: namespace.\n            Interface messages will be loaded from the database.\n    MaxMsgCacheEntrySize:\n        default: 10000\n        description: \"Maximum entry size in the message cache, in bytes\"\n    DisableLangConversion:\n        default: false\n        description: Whether to enable language variant conversion.\n    DisableTitleConversion:\n        default: false\n        description: |-\n            Whether to enable language variant conversion for links.\n            Note that this option is slightly misnamed.\n    DefaultLanguageVariant:\n        default: false\n        description: |-\n            Default variant code. If false, the default will be the static default\n            variant of the language.\n    UsePigLatinVariant:\n        default: false\n        description: |-\n            Whether to enable the pig Latin variant of English (en-x-piglatin),\n            used to ease variant development work.\n    DisabledVariants:\n        default: { }\n        type: object\n        description: |-\n            Disabled variants array of language variant conversion.\n            **Example:**\n            ```\n            $wgDisabledVariants[] = 'zh-mo';\n            $wgDisabledVariants[] = 'zh-my';\n            ```\n    VariantArticlePath:\n        default: false\n        description: |-\n            Like $wgArticlePath, but on multi-variant wikis, this provides a\n            path format that describes which parts of the URL contain the\n            language variant.\n            **Example:**\n            ```\n            $wgLanguageCode = 'sr';\n            $wgVariantArticlePath = '/$2/$1';\n            $wgArticlePath = '/wiki/$1';\n            ```\n            A link to /wiki/ would be redirected to /sr/Главна_страна\n            It is important that $wgArticlePath not overlap with possible values\n            of $wgVariantArticlePath.\n    UseXssLanguage:\n        default: false\n        description: |-\n            Whether to enable the 'x-xss' language code, used for development.\n            When enabled, the language code 'x-xss' (e.g. via ?uselang=x-xss) can\n            be used to test correct message escaping at scale, to prevent\n            cross-site scripting. In this \"language\", every message becomes an HTML\n            snippet which attempts to alert the message key. Well-written code will\n            correctly escape all of these messages. If any alerts are actually\n            fired in the browser, the message is not being escaped correctly;\n            either the offending code should be fixed, or the message should be\n            added to {@link self::RawHtmlMessages}.\n            @see https://www.mediawiki.org/wiki/Special:MyLanguage/Cross-site_scripting\n            @since 1.41\n    LoginLanguageSelector:\n        default: false\n        description: |-\n            Show a bar of language selection links in the user login and user\n            registration forms; edit the \"loginlanguagelinks\" message to\n            customise these.\n    ForceUIMsgAsContentMsg:\n        default: { }\n        type: object\n        description: |-\n            When translating messages with wfMessage(), it is not always clear what\n            should be considered UI messages and what should be content messages.\n            For example, for the English Wikipedia, there should be only one 'mainpage',\n            so when getting the link for 'mainpage', we should treat it as site content\n            and call ->inContentLanguage()->text(), but for rendering the text of the\n            link, we call ->text(). The code behaves this way by default. However,\n            sites like the Wikimedia Commons do offer different versions of 'mainpage'\n            and the like for different languages. This array provides a way to override\n            the default behavior.\n            **Example:**\n            To allow language-specific main page and community\n            portal:\n            ```\n            $wgForceUIMsgAsContentMsg = [ 'mainpage', 'portal-url' ];\n            ```\n    RawHtmlMessages:\n        default: []\n        type: array\n        items:\n            type: string\n        description: |-\n            List of messages which might contain raw HTML.\n            Extensions should add their insecure raw HTML messages to extension.json.\n            The list is used for access control:\n            changing messages listed here will require editsitecss and editsitejs rights.\n            Message names must be given with underscores rather than spaces and with lowercase first\n            letter.\n            @since 1.32\n    Localtimezone:\n        dynamicDefault:\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultLocaltimezone ]\n        description: |-\n            Fake out the timezone that the server thinks it's in. This will be used for\n            date display and not for what's stored in the DB. Leave to null to retain\n            your server's OS-based timezone value.\n            This variable is currently used only for signature formatting and for local\n            time/date parser variables ({{LOCALTIME}} etc.)\n            Timezones can be translated by editing MediaWiki messages of type\n            timezone-nameinlowercase like timezone-utc.\n            A list of usable timezones can found at:\n            https://www.php.net/manual/en/timezones.php\n            **Examples:**\n            ```\n            $wgLocaltimezone = 'UTC';\n            $wgLocaltimezone = 'GMT';\n            $wgLocaltimezone = 'PST8PDT';\n            $wgLocaltimezone = 'Europe/Sweden';\n            $wgLocaltimezone = 'CET';\n            ```\n        default: null\n    LocalTZoffset:\n        dynamicDefault:\n            use: [ Localtimezone ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultLocalTZoffset ]\n        description: |-\n            Set an offset from UTC in minutes to use for the default timezone setting\n            for anonymous users and new user accounts.\n            This setting is used for most date/time displays in the software, and is\n            overridable in user preferences. It is *not* used for signature timestamps.\n            By default, this will be set to match $wgLocaltimezone.\n        default: null\n    OverrideUcfirstCharacters:\n        default: { }\n        type: object\n        description: |-\n            Map of Unicode characters for which capitalization is overridden in\n            Language::ucfirst. The characters should be\n            represented as char_to_convert => conversion_override. See T219279 for details\n            on why this is useful during php version transitions.\n            @since 1.34\n    MimeType:\n        default: text/html\n        description: The default Content-Type header.\n    Html5Version:\n        default: null\n        description: |-\n            Defines the value of the version attribute in the &lt;html&gt; tag, if any.\n            If your wiki uses RDFa, set it to the correct value for RDFa+HTML5.\n            Correct current values are 'HTML+RDFa 1.0' or 'XHTML+RDFa 1.0'.\n            See also https://www.w3.org/TR/rdfa-in-html/#document-conformance\n            @since 1.16\n    EditSubmitButtonLabelPublish:\n        default: false\n        description: |-\n            Whether to label the store-to-database-and-show-to-others button in the editor\n            as \"Save page\"/\"Save changes\" if false (the default) or, if true, instead as\n            \"Publish page\"/\"Publish changes\".\n            @since 1.28\n    XhtmlNamespaces:\n        default: { }\n        type: object\n        description: |-\n            Permit other namespaces in addition to the w3.org default.\n            Use the prefix for the key and the namespace for the value.\n            **Example:**\n            ```\n            $wgXhtmlNamespaces['svg'] = 'http://www.w3.org/2000/svg';\n            ```\n            Normally we wouldn't have to define this in the root \"<html>\"\n            element, but IE needs it there in some circumstances.\n            This is ignored if $wgMimeType is set to a non-XML MIME type.\n    SiteNotice:\n        default: \"\"\n        description: |-\n            Site notice shown at the top of each page\n            MediaWiki:Sitenotice page, which will override this. You can also\n            provide a separate message for logged-out users using the\n            MediaWiki:Anonnotice page.\n    BrowserFormatDetection:\n        default: telephone=no\n        type: string\n        description: |-\n            Override the ability of certain browsers to attempt to autodetect dataformats in pages.\n            This is a default feature of many mobile browsers, but can have a lot of false positives,\n            where for instance, year ranges are confused with phone numbers.\n            The default of this setting is to disable telephone number data detection.\n            Set BrowserFormatDetection to false to fallback to the browser defaults.\n            @since 1.37\n            @see https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html\n    SkinMetaTags:\n        default: { }\n        type: object\n        description: |-\n            An array of open graph tags which should be added by all skins.\n            Accepted values are \"og:site_name\", \"og:title\", \"og:type\" and \"twitter:card\".\n            Since some of these fields can be provided by extensions it defaults to an empty array.\n            @since 1.36\n    DefaultSkin:\n        default: vector-2022\n        description: |-\n            Default skin, for new users and anonymous visitors. Registered users may\n            change this to any one of the other available skins in their preferences.\n    FallbackSkin:\n        default: fallback\n        description: |-\n            Fallback skin used when the skin defined by $wgDefaultSkin can't be found.\n            @since 1.24\n    SkipSkins:\n        default: { }\n        type: object\n        description: |-\n            Specify the names of skins that should not be presented in the list of\n            available skins in user preferences.\n            NOTE: This does not uninstall the skin, and it will still be accessible\n            via the `useskin` query parameter. To uninstall a skin, remove its inclusion\n            from LocalSettings.php.\n            @see \\SkinFactory::getAllowedSkins\n    DisableOutputCompression:\n        default: false\n        description: Disable output compression (enabled by default if zlib is available)\n    FragmentMode:\n        default:\n            - html5\n            - legacy\n        type: array\n        description: |-\n            How should section IDs be encoded?\n            This array can contain 1 or 2 elements, each of them can be one of:\n            - 'html5'  is modern HTML5 style encoding with minimal escaping. Displays Unicode\n                       characters in most browsers' address bars.\n            - 'legacy' is old MediaWiki-style encoding, e.g. 啤酒 turns into .E5.95.A4.E9.85.92\n            The first element of this array specifies the primary mode of escaping IDs. This\n            is what users will see when they e.g. follow an [[#internal link]] to a section of\n            a page.\n            The optional second element defines a fallback mode, useful for migrations.\n            If present, it will direct MediaWiki to add empty <span>s to every section with its\n            id attribute set to fallback encoded title so that links using the previous encoding\n            would still work.\n            Example: you want to migrate your wiki from 'legacy' to 'html5'\n            On the first step, set this variable to [ 'legacy', 'html5' ]. After a while, when\n            all caches (parser, HTTP, etc.) contain only pages generated with this setting,\n            flip the value to [ 'html5', 'legacy' ]. This will result in all internal links being\n            generated in the new encoding while old links (both external and cached internal) will\n            still work. After a long time, you might want to ditch backwards compatibility and\n            set it to [ 'html5' ]. After all, pages get edited, breaking incoming links no matter which\n            fragment mode is used.\n            @since 1.30\n    ExternalInterwikiFragmentMode:\n        default: legacy\n        description: |-\n            Which ID escaping mode should be used for external interwiki links? See documentation\n            for $wgFragmentMode above for details of each mode. Because you can't control external sites,\n            this setting should probably always be 'legacy', unless every wiki you link to has converted\n            to 'html5'.\n            @since 1.30\n    FooterIcons:\n        default:\n            copyright: { copyright: [] }\n            poweredby: { mediawiki: { src: null, url: \"https://www.mediawiki.org/\", alt: Powered by MediaWiki, lang: en } }\n        type: object\n        description: |-\n            Abstract list of footer icons for skins in place of old copyrightico and poweredbyico code\n            You can add new icons to the built in copyright or poweredby, or you can create\n            a new block. Though note that you may need to add some custom css to get good styling\n            of new blocks in monobook. vector and modern should work without any special css.\n            $wgFooterIcons itself is a key/value array.\n            The key is the name of a block that the icons will be wrapped in. The final id varies\n            by skin; Monobook and Vector will turn poweredby into f-poweredbyico while Modern\n            turns it into mw_poweredby.\n            The value is either key/value array of icons or a string.\n            In the key/value array the key may or may not be used by the skin but it can\n            be used to find the icon and unset it or change the icon if needed.\n            This is useful for disabling icons that are set by extensions.\n            The value should be either a string or an array. If it is a string it will be output\n            directly as html, however some skins may choose to ignore it. An array is the preferred\n            format for the icon, the following keys are used:\n            - src: An absolute url to the image to use for the icon, this is recommended\n                   but not required, however some skins will ignore icons without an image\n            - srcset: optional additional-resolution images; see HTML5 specs\n            - url: The url to use in the a element around the text or icon, if not set an a element will\n                   not be outputted\n            - alt: This is the text form of the icon, it will be displayed without an image in\n                   skins like Modern or if src is not set, and will otherwise be used as\n                   the alt=\"\" for the image. This key is required.\n            - width and height: If the icon specified by src is not of the standard size\n                                you can specify the size of image to use with these keys.\n                                Otherwise they will default to the standard 88x31.\n            @todo Reformat documentation.\n    UseCombinedLoginLink:\n        default: false\n        description: |-\n            Login / create account link behavior when it's possible for anonymous users\n            to create an account.\n            - true = use a combined login / create account link\n            - false = split login and create account into two separate links\n    Edititis:\n        default: false\n        description: Display user edit counts in various prominent places.\n    Send404Code:\n        default: true\n        description: |-\n            Some web hosts attempt to rewrite all responses with a 404 (not found)\n            status code, mangling or hiding MediaWiki's output. If you are using such a\n            host, you should start looking for a better one. While you're doing that,\n            set this to false to convert some of MediaWiki's 404 responses to 200 so\n            that the generated error pages can be seen.\n            In cases where for technical reasons it is more important for MediaWiki to\n            send the correct status code than for the body to be transmitted intact,\n            this configuration variable is ignored.\n    ShowRollbackEditCount:\n        default: 10\n        description: |-\n            The $wgShowRollbackEditCount variable is used to show how many edits can be rolled back.\n            The numeric value of the variable controls how many edits MediaWiki will look back to\n            determine whether a rollback is allowed (by checking that they are all from the same author).\n            If the value is false or 0, the edits are not counted. Disabling this will prevent MediaWiki\n            from hiding some useless rollback links.\n            @since 1.20\n    EnableCanonicalServerLink:\n        default: false\n        description: |-\n            Output a <link rel=\"canonical\"> tag on every page indicating the canonical\n            server which should be used, i.e. $wgServer or $wgCanonicalServer. Since\n            detection of the current server is unreliable, the link is sent\n            unconditionally.\n    InterwikiLogoOverride:\n        default: []\n        type: array\n        items:\n            type: string\n        description: |-\n            List of interwiki logos overrides.\n            This is used by the sister project sidebar. This list accept a key equal to the\n            interwiki ID (as defined in the interwiki links), and accept a Codex icon name\n            (https://doc.wikimedia.org/codex/latest/icons/all-icons.html) or a base URL for\n            the given interwiki.\n            Example :\n            $wgInterwikiLogoOverride = [\n                'c' => 'logoWikimediaCommons',\n                'wikit' => 'https://mySpecialWiki.com'\n            ];\n    ResourceModules:\n        default: { }\n        type: object\n        description: |-\n            Define extra client-side modules to be registered with ResourceLoader.\n            @note It is recommended to define modules using the `ResourceModule` attribute\n            in `extension.json` or `skin.json` when possible (instead of via PHP global variables).\n            Registration is internally handled by ResourceLoader::register.\n            ## Available modules\n            Modules that ship with %MediaWiki core are registered via\n            resources/Resources.php. For a full list with documentation, see:\n            [ResourceLoader/Core_modules](https://www.mediawiki.org/wiki/ResourceLoader/Core_modules).\n            ## Options\n            - class `{string}`:\n              By default a module is assumed to bundle file resources\n              as handled by the MediaWiki\\ResourceLoader\\FileModule class. Use this option\n              to use a different implementation of MediaWiki\\ResourceLoader\\Module instead.\n              Default: `\\MediaWiki\\ResourceLoader\\FileModule`\n            - factory `{string}`:\n              Override the instantiation of the MediaWiki\\ResourceLoader\\Module\n              class using a PHP callback. This allows dependency injection to be used.\n              This option cannot be combined with the `class` option.\n              Since: MW 1.30\n            - dependencies `{string[]|string}`:\n              Modules that must be executed before this module.\n              Module name string or list of module name strings.\n              Default: `[]`\n            - deprecated `{boolean|string}`:\n              Whether the module is deprecated and usage is discouraged.\n              Set to boolean true, or a string to include in the warning message.\n              Default: `false`\n            - group `{string}`:\n              Optional request group to override which modules may be downloaded\n              together in an HTTP batch request. By default, any two modules may be\n              loaded together in the same batch request. Set this option to a\n              descriptive string to give the module its own HTTP request. To allow\n              other modules to join this new request, give those the same request group.\n              Use this option with caution. The default behaviour is well-tuned already,\n              and setting this often does more harm than good. For more about request\n              balancing optimisations, see\n              [ResourceLoader/Architecture#Balance](https://www.mediawiki.org/wiki/ResourceLoader/Architecture#Balance).\n            - skipFunction `{string}`:\n              Allow this module to be satisfied as dependency without actually loading\n              or executing scripts from the server, if the specified JavaScript function\n              returns true.\n              Use this to provide polyfills that are natively available in newer browsers.\n              Specify the relative path to a JavaScript file containing a top-level return\n              statement. The contents of the file should not contain any wrapping function,\n              it will be wrapped by %ResourceLoader in an anonymous function and invoked\n              when the module is considered for loading.\n            ## FileModule options\n            - localBasePath `{string}`:\n              Base file path to prepend to relative file paths specified in other options.\n              Default: `$IP`\n            - remoteBasePath `{string}`:\n              Base URL path to prepend to relative file paths specified in other options.\n              This is used to form URLs for files, such as when referencing images in\n              stylesheets, or in debug mode to serve JavaScript files directly.\n              Default: @ref $wgResourceBasePath (which defaults to @ref $wgScriptPath)\n            - remoteExtPath `{string}`:\n              Shortcut for `remoteBasePath` that is relative to $wgExtensionAssetsPath.\n              Use this when defining modules from an extension, so as to avoid hardcoding\n              the script path of the %MediaWiki install or the location of the extensions\n              directory.\n              This option is mutually exclusive with `remoteBasePath`.\n            - remoteSkinPath `{string}`: Like `remoteExtPath`, but relative to $wgStylePath.\n            - styles `{string[]|string|array<string,array>}`:\n              Styles to always include in the module.\n              %File path or list of file paths, relative to `localBasePath`.\n              The stylesheet can be automatically wrapped in a `@media` query by specifying\n              the file path as the key in an object (instead of the value), with the value\n              specifying a `media` query.\n              See @ref wgResourceModules-example-stylesheet \"Stylesheet examples\" below.\n              See also @ref $wgResourceModuleSkinStyles.\n              Extended options:\n              - skinStyles `{string[]|string}`: Styles to include in specific skin contexts.\n                Array keyed is by skin name with file path or list of file paths as value,\n                relative to `localBasePath`.\n              Default: `[]`\n            - noflip `{boolean}`:\n              By default, CSSJanus will be used automatically to perform LTR-to-RTL flipping\n              when loaded in a right-to-left (RTL) interface language context.\n              Use this option to skip CSSJanus LTR-to-RTL flipping for this module, for example\n              when registering an external library that already handles RTL styles.\n              Default: `false`\n            - packageFiles `{string[]|array[]}`\n              Specify script files and (virtual) data files to include in the module.\n              Each internal JavaScript file retains its own local module scope and its\n              private exports can be accessed separately by other client-side code in the\n              same module, via the local `require()` function.\n              Modules that use package files should export any public API methods using\n              `module.exports`.\n              See examples at\n                [ResourceLoader/Package_files](https://www.mediawiki.org/wiki/ResourceLoader/Package_files)\n                on mediawiki.org.\n              The `packageFiles` feature cannot be combined with legacy scripts that use\n              the `scripts` option, including its extended variants `languageScripts`,\n              `skinScripts`, and `debugScripts`.\n              Since: MW 1.33\n              Default: `[]`\n            - scripts `{string[]|string|array[]}`:\n              Scripts to always include in the module.\n              %File path or list of file paths, relative to `localBasePath`.\n              These files are concatenated blindly and executed as a single client-side script.\n              Modules using this option are sometimes referred to as \"legacy scripts\" to\n              distinguish them from those that use the `packageFiles` option.\n              Modules that use legacy scripts usually attach any public APIs they have\n              to the `mw` global variable. If a module contains just one file, it is also\n              supported to use the newer `module.exports` mechanism, though if the module\n              contains more than one legacy script, it is considered unsafe and unsupported\n              to use this mechanism (use `packageFiles` instead). See also\n              [Coding\n                conventions/JavaScript](https://www.mediawiki.org/wiki/Manual:Coding_conventions/JavaScript#Exporting).\n              Since MW 1.41, an element of `scripts` may be an array in the same format as\n              packageFiles, giving a callback to call for content generation.\n              Default: `[]`\n              Extended options, concatenated in this order:\n              - languageScripts `{string[]|string|array[]}`: Scripts to include in specific\n                language contexts. Array is keyed by language code with file path or list of\n                file path.\n              - skinScripts `{string[]|string|array[]}`: Scripts to include in specific skin contexts.\n                Array keyed is by skin name with file path or list of file paths.\n              - debugScripts `{string[]|string|array[]}`: Scripts to include in debug contexts.\n                %File path or list of file paths.\n            - messages `{string[]}`\n              Localisation messages to bundle with this module, for client-side use\n              via `mw.msg()` and `mw.message()`. List of message keys.\n              Default: `[]`\n            - templates `{string[]}`\n              List of template files to be loaded for client-side usage via `mw.templates`.\n              Default: `[]`\n            - es6 `{boolean}`:\n              Since: MW 1.36; ignored since MW 1.41.\n              Default: `true`\n             - skipStructureTest `{boolean}`:\n              Whether to skip ResourcesTest::testRespond(). Since MW 1.42.\n              Default: `false`.\n            ## Examples\n            **Example: Using an alternate subclass**\n            ```\n            $wgResourceModules['ext.myExtension'] = [\n              'class' => \\MediaWiki\\ResourceLoader\\WikiModule::class,\n            ];\n            ```\n            **Example: Deprecated module**\n            ```\n            $wgResourceModules['ext.myExtension'] = [\n              'deprecated' => 'You should use ext.myExtension2 instead',\n            ];\n            ```\n            **Example: Base paths in extension.json**\n            ```\n            \"ext.myExtension\": {\n              \"localBasePath\": \"modules/ext.MyExtension\",\n              \"remoteExtPath\": \"MyExtension/modules/ext.MyExtension\"\n            }\n            ```\n            **Example: Base paths in core with PHP**\n            ```\n            $wgResourceModules['mediawiki.example'] = [\n              'localBasePath' => \"$IP/resources/src/mediawiki.example\",\n              'remoteBasePath' => \"$wgResourceBasePath/resources/src/mediawiki.example\",\n            ];\n            ```\n            **Example: Define a skip function**\n            ```\n            $wgResourceModules['ext.myExtension.SomeWebAPI'] = [\n              'skipFunction' => 'skip-SomeWebAPI.js',\n            ];\n            ```\n            **Example: Contents of skip function file**\n            ```\n            return typeof SomeWebAPI === 'function' && SomeWebAPI.prototype.duckMethod;\n            ```\n            @anchor wgResourceModules-example-stylesheet\n            **Example: Stylesheets**\n            ```\n            $wgResourceModules['example'] = [\n              'styles' => [\n                'foo.css',\n                'bar.css',\n              ],\n            ];\n            $wgResourceModules['example.media'] = [\n              'styles' => [\n                'foo.css' => [ 'media' => 'print' ],\n            ];\n            $wgResourceModules['example.mixed'] = [\n              'styles' => [\n                'foo.css',\n                'bar.css' => [ 'media' => 'print' ],\n              ],\n            ];\n            ```\n            **Example: Package files**\n            ```\n            \"ext.myExtension\": {\n                \"localBasePath\": \"modules/ext.MyExtension\",\n                \"remoteExtPath\": \"MyExtension/modules/ext.MyExtension\",\n                \"packageFiles\": [\n                  \"index.js\",\n                  \"utils.js\",\n                  \"data.json\"\n                ]\n              }\n            }\n            ```\n            **Example: Legacy scripts**\n            ```\n            $wgResourceModules['ext.myExtension'] = [\n              'scripts' => [\n                'modules/ext.myExtension/utils.js',\n                'modules/ext.myExtension/myExtension.js',\n              ],\n              'languageScripts' => [\n                'bs' => 'modules/ext.myExtension/languages/bs.js',\n                'fi' => 'modules/ext.myExtension/languages/fi.js',\n              ],\n              'skinScripts' => [\n                'default' => 'modules/ext.myExtension/skin-default.js',\n              ],\n              'debugScripts' => [\n                'modules/ext.myExtension/debug.js',\n              ],\n            ];\n            ```\n            **Example: Template files**\n            ```\n            $wgResourceModules['ext.myExtension'] = [\n              'templates' => [\n                'templates/template.html',\n                'templates/template2.html',\n              ],\n            ];\n            ```\n            @since 1.17\n    ResourceModuleSkinStyles:\n        default: { }\n        type: object\n        description: |-\n            Add extra skin-specific styles to a resource module.\n            These are automatically added by ResourceLoader to the 'skinStyles' list of\n            the existing module. The 'styles' list cannot be modified or disabled.\n            For example, below a module \"bar\" is defined and skin Foo provides additional\n            styles for it:\n            **Example:**\n            ```\n            $wgResourceModules['bar'] = [\n              'scripts' => 'resources/bar/bar.js',\n              'styles' => 'resources/bar/main.css',\n            ];\n            $wgResourceModuleSkinStyles['foo'] = [\n              'bar' => 'skins/Foo/styles/bar.css',\n            ];\n            ```\n            This is effectively equivalent to:\n            **Equivalent:**\n            ```\n            $wgResourceModules['bar'] = [\n              'scripts' => 'resources/bar/bar.js',\n              'styles' => 'resources/bar/main.css',\n              'skinStyles' => [\n                'foo' => skins/Foo/styles/bar.css',\n              ],\n            ];\n            ```\n            If the module already defines its own entry in `skinStyles` for a given skin, then\n            $wgResourceModuleSkinStyles is ignored.\n            If a module defines a `skinStyles['default']` the skin may want to extend that instead\n            of replacing it. This can be done using the `+` prefix.\n            **Example:**\n            ```\n            $wgResourceModules['bar'] = [\n              'scripts' => 'resources/bar/bar.js',\n              'styles' => 'resources/bar/basic.css',\n              'skinStyles' => [\n               'default' => 'resources/bar/additional.css',\n              ],\n            ];\n            // Note the '+' character:\n            $wgResourceModuleSkinStyles['foo'] = [\n              '+bar' => 'skins/Foo/styles/bar.css',\n            ];\n            ```\n            This is effectively equivalent to:\n            **Equivalent:**\n            ```\n            $wgResourceModules['bar'] = [\n              'scripts' => 'resources/bar/bar.js',\n              'styles' => 'resources/bar/basic.css',\n              'skinStyles' => [\n                'default' => 'resources/bar/additional.css',\n                'foo' => [\n                  'resources/bar/additional.css',\n                  'skins/Foo/styles/bar.css',\n                ],\n              ],\n            ];\n            ```\n            In other words, as a module author, use the `styles` list for stylesheets that may not be\n            disabled by a skin. To provide default styles that may be extended or replaced,\n            use `skinStyles['default']`.\n            As with $wgResourceModules, always set the localBasePath and remoteBasePath\n            keys (or one of remoteExtPath/remoteSkinPath).\n            **Example:**\n            ```\n            $wgResourceModuleSkinStyles['foo'] = [\n              'bar' => 'bar.css',\n              'quux' => 'quux.css',\n              'remoteSkinPath' => 'Foo/styles',\n              'localBasePath' => __DIR__ . '/styles',\n            ];\n            ```\n    ResourceLoaderSources:\n        default: { }\n        type: object\n        description: |-\n            Extensions should register foreign module sources here. 'local' is a\n            built-in source that is not in this array, but defined by\n            ResourceLoader::__construct() so that it cannot be unset.\n            **Example:**\n            ```\n            $wgResourceLoaderSources['foo'] = 'http://example.org/w/load.php';\n            ```\n    ResourceBasePath:\n        default: null\n        dynamicDefault:\n            use: [ ScriptPath ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultResourceBasePath ]\n        description: |-\n            The default 'remoteBasePath' value for instances of MediaWiki\\ResourceLoader\\FileModule.\n            Defaults to $wgScriptPath.\n    ResourceLoaderMaxage:\n        default: { }\n        type: object\n        description: |-\n            Override how long a CDN or browser may cache a ResourceLoader HTTP response.\n            Maximum time in seconds. Used for the `max-age` and `s-maxage` Cache-Control headers.\n            Valid keys:\n              - versioned\n              - unversioned\n            @see \\MediaWiki\\ResourceLoader\\ResourceLoader::__construct\n            @since 1.35\n    ResourceLoaderDebug:\n        default: false\n        description: |-\n            The default debug mode (on/off) for of ResourceLoader requests.\n            This will still be overridden when the debug URL parameter is used.\n    ResourceLoaderMaxQueryLength:\n        default: false\n        type:\n            - integer\n            - boolean\n        description: |-\n            ResourceLoader will not generate URLs whose query string is more than\n            this many characters long, and will instead use multiple requests with\n            shorter query strings. Using multiple requests may degrade performance,\n            but may be needed based on the query string limit supported by your web\n            server and/or your user's web browsers.\n            Default: `2000`.\n            @see \\MediaWiki\\ResourceLoader\\StartUpModule::getMaxQueryLength\n            @since 1.17\n    ResourceLoaderValidateJS:\n        default: true\n        description: |-\n            Validate JavaScript code loaded from wiki pages.\n            If a syntax error is found, the script is replaced with a warning\n            logged to the browser console. This ensures errors are found early and\n            consistently (independent of the editor's own browser), and prevents\n            breaking other modules loaded in the same batch from load.php.\n            @see \\MediaWiki\\ResourceLoader\\Module::validateScriptFile\n    ResourceLoaderEnableJSProfiler:\n        default: false\n        description: |-\n            When enabled, execution of JavaScript modules is profiled client-side.\n            Instrumentation happens in mw.loader.profiler.\n            Use `mw.inspect('time')` from the browser console to display the data.\n            @since 1.32\n    ResourceLoaderStorageEnabled:\n        default: true\n        description: |-\n            Whether ResourceLoader should attempt to persist modules in localStorage on\n            browsers that support the Web Storage API.\n    ResourceLoaderStorageVersion:\n        default: 1\n        description: |-\n            Cache version for client-side ResourceLoader module storage. You can trigger\n            invalidation of the contents of the module store by incrementing this value.\n            @since 1.23\n    ResourceLoaderEnableSourceMapLinks:\n        default: true\n        description: |-\n            Whether to include a SourceMap header in ResourceLoader responses\n            for JavaScript modules.\n            @since 1.41\n    AllowSiteCSSOnRestrictedPages:\n        default: false\n        description: |-\n            Whether to allow site-wide CSS (MediaWiki:Common.css and friends) on\n            restricted pages like Special:UserLogin or Special:Preferences where\n            JavaScript is disabled for security reasons. As it is possible to\n            execute JavaScript through CSS, setting this to true opens up a\n            potential security hole. Some sites may \"skin\" their wiki by using\n            site-wide CSS, causing restricted pages to look unstyled and different\n            from the rest of the site.\n            @since 1.25\n    VueDevelopmentMode:\n        default: false\n        description: |-\n            Whether to use the development version of Vue.js. This should be disabled\n            for production installations. For development installations, enabling this\n            provides useful additional warnings and checks.\n            Even when this is disabled, using ResourceLoader's debug mode (?debug=true)\n            will cause the development version to be loaded.\n            @since 1.35\n    CodexDevelopmentDir:\n        default: null\n        description: |-\n            If this is set, MediaWiki will look for Codex files in this directory\n            instead of in resources/lib/codex/ and friends.\n            To use a local development version of Codex, set this to the full file\n            path of the root directory of a local clone of the Codex repository, and\n            run `npm run build-all` in the Codex root directory. Rerun this command\n            after making any changes.\n            This should be disabled for production installations.\n            @since 1.43\n    MetaNamespace:\n        default: false\n        dynamicDefault:\n            use: [ Sitename ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultMetaNamespace ]\n        description: |-\n            Name of the project namespace. If left set to false, $wgSitename will be\n            used instead.\n    MetaNamespaceTalk:\n        default: false\n        description: |-\n            Name of the project talk namespace.\n            Normally you can ignore this and it will be something like\n            $wgMetaNamespace . \"_talk\". In some languages, you may want to set this\n            manually for grammatical reasons.\n    CanonicalNamespaceNames:\n        default:\n            -2: Media\n            -1: Special\n            0: \"\"\n            1: Talk\n            2: User\n            3: User_talk\n            4: Project\n            5: Project_talk\n            6: File\n            7: File_talk\n            8: MediaWiki\n            9: MediaWiki_talk\n            10: Template\n            11: Template_talk\n            12: Help\n            13: Help_talk\n            14: Category\n            15: Category_talk\n        type: object\n        description: |-\n            Canonical namespace names.\n            Must not be changed directly in configuration or by extensions, use $wgExtraNamespaces\n            instead.\n    ExtraNamespaces:\n        default: { }\n        type: object\n        description: |-\n            Additional namespaces. If the namespaces defined in Language.php and\n            Namespace.php are insufficient, you can create new ones here, for example,\n            to import Help files in other languages. You can also override the namespace\n            names of existing namespaces. Extensions should use the CanonicalNamespaces\n            hook or extension.json.\n            @warning Once you delete a namespace, the pages in that namespace will\n            no longer be accessible. If you rename it, then you can access them through\n            the new namespace name.\n            Custom namespaces should start at 100 to avoid conflicting with standard\n            namespaces, and should always follow the even/odd main/talk pattern.\n            **Example:**\n            ```\n            $wgExtraNamespaces = [\n               100 => \"Hilfe\",\n               101 => \"Hilfe_Diskussion\",\n               102 => \"Aide\",\n               103 => \"Discussion_Aide\"\n            ];\n            ```\n            @todo Add a note about maintenance/namespaceDupes.php\n    ExtraGenderNamespaces:\n        default: { }\n        type: object\n        description: |-\n            Same as above, but for namespaces with gender distinction.\n            Note: the default form for the namespace should also be set\n            using $wgExtraNamespaces for the same index.\n            @since 1.18\n    NamespaceAliases:\n        default: { }\n        type: object\n        description: |-\n            Define extra namespace aliases.\n            These are alternate names for the primary localised namespace names, which\n            are defined by $wgExtraNamespaces and the language file. If a page is\n            requested with such a prefix, the request will be redirected to the primary\n            name.\n            Set this to a map from namespace names to IDs.\n            **Example:**\n            ```\n            $wgNamespaceAliases = [\n                'Wikipedian' => NS_USER,\n                'Help' => 100,\n            ];\n            ```\n            @see \\MediaWiki\\Language\\Language::getNamespaceAliases for accessing the full list of aliases,\n            including those defined by other means.\n    LegalTitleChars:\n        default: ' %!\"$&''()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF+'\n        deprecated: \"since 1.41; use Extension:TitleBlacklist to customize\"\n        description: |-\n            Allowed title characters -- regex character class\n            Don't change this unless you know what you're doing\n            Problematic punctuation:\n              -  []}|#     Are needed for link syntax, never enable these\n              -  <>        Causes problems with HTML escaping, don't use\n              -  %         Enabled by default, minor problems with path to query rewrite rules, see below\n              -  +         Enabled by default, but doesn't work with path to query rewrite rules,\n                           corrupted by apache\n              -  ?         Enabled by default, but doesn't work with path to PATH_INFO rewrites\n            All three of these punctuation problems can be avoided by using an alias,\n            instead of a rewrite rule of either variety.\n            The problem with % is that when using a path to query rewrite rule, URLs are\n            double-unescaped: once by Apache's path conversion code, and again by PHP. So\n            %253F, for example, becomes \"?\". Our code does not double-escape to compensate\n            for this, indeed double escaping would break if the double-escaped title was\n            passed in the query string rather than the path. This is a minor security issue\n            because articles can be created such that they are hard to view or edit.\n            In some rare cases you may wish to remove + for compatibility with old links.\n            @deprecated since 1.41; use Extension:TitleBlacklist or (soon)\n            Extension:AbuseFilter to customize this set.\n    CapitalLinks:\n        default: true\n        description: |-\n            Set this to false to avoid forcing the first letter of links to capitals.\n            @warning may break links! This makes links COMPLETELY case-sensitive. Links\n            appearing with a capital at the beginning of a sentence will *not* go to the\n            same place as links in the middle of a sentence using a lowercase initial.\n    CapitalLinkOverrides:\n        default: { }\n        type: object\n        description: |-\n            @since 1.16 - This can now be set per-namespace. Some special namespaces (such as Special,\n                see NamespaceInfo::ALWAYS_CAPITALIZED_NAMESPACES for the full list) must be true by\n                default (and setting them has no effect), due to various things that require them to be\n                so. Also, since Talk namespaces need to directly mirror their associated content\n                namespaces, the values for those are ignored in favor of the subject namespace's\n                setting. Setting for NS_MEDIA is taken automatically from NS_FILE.\n            **Example:**\n            ```\n            $wgCapitalLinkOverrides[ NS_FILE ] = false;\n            ```\n    NamespacesWithSubpages:\n        default:\n            1: true\n            2: true\n            3: true\n            4: true\n            5: true\n            7: true\n            8: true\n            9: true\n            10: true\n            11: true\n            12: true\n            13: true\n            15: true\n        type: object\n        description: |-\n            Which namespaces should support subpages?\n            See Language.php for a list of namespaces.\n    ContentNamespaces:\n        default:\n            - 0\n        type: array\n        description: |-\n            Array of namespaces which can be deemed to contain valid \"content\", as far\n            as the site statistics are concerned. Useful if additional namespaces also\n            contain \"content\" which should be considered when generating a count of the\n            number of articles in the wiki.\n    ShortPagesNamespaceExclusions:\n        default: []\n        type: array\n        description: |-\n            Optional array of namespaces which should be excluded from Special:ShortPages.\n            Only pages inside $wgContentNamespaces but not $wgShortPagesNamespaceExclusions will\n            be shown on that page.\n            @since 1.37; previously $wgShortPagesNamespaceBlacklist\n    ExtraSignatureNamespaces:\n        default: []\n        type: array\n        description: |-\n            Array of namespaces, in addition to the talk namespaces, where signatures\n            (~~~~) are likely to be used. This determines whether to display the\n            Signature button on the edit toolbar, and may also be used by extensions.\n            For example, \"traditional\" style wikis, where content and discussion are\n            intermixed, could place NS_MAIN and NS_PROJECT namespaces in this array.\n    InvalidRedirectTargets:\n        default:\n            - Filepath\n            - Mypage\n            - Mytalk\n            - Redirect\n            - Mylog\n        type: array\n        description: |-\n            Array of invalid page redirect targets.\n            Attempting to create a redirect to any of the pages in this array\n            will make the redirect fail.\n            Userlogout is hard-coded, so it does not need to be listed here.\n            (T12569) Disallow Mypage and Mytalk as well.\n            As of now, this only checks special pages. Redirects to pages in\n            other namespaces cannot be invalidated by this variable.\n    DisableHardRedirects:\n        default: false\n        description: |-\n            Disable redirects to special pages and interwiki redirects, which use a 302\n            and have no \"redirected from\" link.\n            @note This is only for articles with #REDIRECT in them. URL's containing a\n            local interwiki prefix (or a non-canonical special page name) are still hard\n            redirected regardless of this setting.\n    FixDoubleRedirects:\n        default: false\n        description: |-\n            Fix double redirects after a page move.\n            Tends to conflict with page move vandalism, use only on a private wiki.\n    LocalInterwikis:\n        default: []\n        type: array\n        description: |-\n            Array for local interwiki values, for each of the interwiki prefixes that point to\n            the current wiki.\n            Note, recent changes feeds use only the first entry in this array. See $wgRCFeeds.\n    InterwikiExpiry:\n        default: 10800\n        description: Expiry time for cache of interwiki table\n    InterwikiCache:\n        default: false\n        type:\n            - boolean\n            - object\n        mergeStrategy: replace\n        description: |-\n            Interwiki cache as an associative array.\n            When set, the InterwikiLookup service will not use the built-in `interwiki` database table,\n            but instead use this static array as its source.\n            This cache data structure can be generated by the `dumpInterwiki.php` maintenance\n            script (which lives in the WikimediaMaintenance repository) and has key\n            formats such as the following:\n             - dbname:key - a simple key (e.g. enwiki:meta)\n             - _sitename:key - site-scope key (e.g. wiktionary:meta)\n             - __global:key - global-scope key (e.g. __global:meta)\n             - __sites:dbname - site mapping (e.g. __sites:enwiki)\n            Sites mapping just specifies site name, other keys provide \"local url\"\n            data layout.\n            @see \\MediaWiki\\Interwiki\\ClassicInterwikiLookup\n    InterwikiScopes:\n        default: 3\n        description: |-\n            Specify number of domains to check for messages.\n            - 1: Just wiki(db)-level\n            - 2: wiki and global levels\n            - 3: site levels\n    InterwikiFallbackSite:\n        default: wiki\n        description: \"Fallback site, if unable to resolve from cache\"\n    RedirectSources:\n        default: false\n        description: |-\n            If local interwikis are set up which allow redirects,\n            set this regexp to restrict URLs which will be displayed\n            as 'redirected from' links.\n            **Example:**\n            It might look something like this:\n            ```\n            $wgRedirectSources = '!^https?://[a-z-]+\\.wikipedia\\.org/!';\n            ```\n            Leave at false to avoid displaying any incoming redirect markers.\n            This does not affect intra-wiki redirects, which don't change\n            the URL.\n    SiteTypes:\n        default:\n            mediawiki: MediaWiki\\Site\\MediaWikiSite\n        type: object\n        description: |-\n            Register handlers for specific types of sites.\n            @since 1.21\n    MaxTocLevel:\n        default: 999\n        description: Maximum indent level of toc.\n    MaxPPNodeCount:\n        default: 1000000\n        description: |-\n            A complexity limit on template expansion: the maximum number of nodes visited\n            by PPFrame::expand()\n    MaxTemplateDepth:\n        default: 100\n        description: |-\n            Maximum recursion depth for templates within templates.\n            The current parser adds two levels to the PHP call stack for each template,\n            and xdebug limits the call stack to 256 by default. So this should hopefully\n            stop the parser before it hits the xdebug limit.\n    MaxPPExpandDepth:\n        default: 100\n        description: \"@see self::MaxTemplateDepth\"\n    UrlProtocols:\n        default:\n            - \"bitcoin:\"\n            - \"ftp://\"\n            - \"ftps://\"\n            - \"geo:\"\n            - \"git://\"\n            - \"gopher://\"\n            - \"http://\"\n            - \"https://\"\n            - \"irc://\"\n            - \"ircs://\"\n            - \"magnet:\"\n            - \"mailto:\"\n            - \"matrix:\"\n            - \"mms://\"\n            - \"news:\"\n            - \"nntp://\"\n            - \"redis://\"\n            - \"sftp://\"\n            - \"sip:\"\n            - \"sips:\"\n            - \"sms:\"\n            - \"ssh://\"\n            - \"svn://\"\n            - \"tel:\"\n            - \"telnet://\"\n            - \"urn:\"\n            - \"worldwind://\"\n            - \"xmpp:\"\n            - //\n        type: array\n        description: |-\n            URL schemes that should be recognized as valid by UrlUtils::parse().\n            WARNING: Do not add 'file:' to this or internal file links will be broken.\n            Instead, if you want to support file links, add 'file://'. The same applies\n            to any other protocols with the same name as a namespace. See task T46011 for\n            more information.\n            @see \\MediaWiki\\Utils\\UrlUtils::parse()\n    CleanSignatures:\n        default: true\n        description: \"If true, removes (by substituting) templates in signatures.\"\n    AllowExternalImages:\n        default: false\n        description: Whether to allow inline image pointing to other websites\n    AllowExternalImagesFrom:\n        default: \"\"\n        description: |-\n            If the above is false, you can specify an exception here. Image URLs\n            that start with this string are then rendered, while all others are not.\n            You can use this to set up a trusted, simple repository of images.\n            You may also specify an array of strings to allow multiple sites\n            **Examples:**\n            ```\n            $wgAllowExternalImagesFrom = 'http://127.0.0.1/';\n            $wgAllowExternalImagesFrom = [ 'http://127.0.0.1/', 'http://example.com' ];\n            ```\n    EnableImageWhitelist:\n        default: false\n        description: |-\n            If $wgAllowExternalImages is false, you can allow an on-wiki\n            allow list of regular expression fragments to match the image URL\n            against. If the image matches one of the regular expression fragments,\n            the image will be displayed.\n            Set this to true to enable the on-wiki allow list (MediaWiki:External image whitelist)\n            Or false to disable it\n            @since 1.14\n    TidyConfig:\n        default: { }\n        type: object\n        description: |-\n            Configuration for HTML postprocessing tool. Set this to a configuration\n            array to enable an external tool. By default, we now use the RemexHtml\n            library; historically, other postprocessors were used.\n            Setting this to null will use default settings.\n            Keys include:\n             - treeMutationTrace: a boolean to turn on Remex tracing\n             - serializerTrace: a boolean to turn on Remex tracing\n             - mungerTrace: a boolean to turn on Remex tracing\n             - pwrap: whether <p> wrapping should be done (default true)\n            See includes/tidy/RemexDriver.php for detail on configuration.\n            Overriding the default configuration is strongly discouraged in\n            production.\n    ParsoidSettings:\n        default:\n            useSelser: true\n        type: object\n        description: |-\n            Default Parsoid configuration.\n            Overriding the default configuration is strongly discouraged in\n            production.\n            @since 1.39\n    ParsoidExperimentalParserFunctionOutput:\n        default: false\n        type: boolean\n        description: |-\n            If set, Parsoid's HTML output for parser functions will be different\n            from Parsoid HTML spec 2.x.x and lets us experiment with a better\n            output that might be rolled out in a future 3.x Parsoid HTML version.\n            Parsoid will start generating this output for wikifunctions parser function\n            whenever that code is rolled out to production and will let us experiment\n            with this new format and tweak it now. This also lets Parsoid developers\n            experiment with it locally.\n            This is an experimental flag and might be removed without notice.\n            @unstable EXPERIMENTAL\n    UseLegacyMediaStyles:\n        default: false\n        description: |-\n            Disable shipping the styles for the legacy media HTML structure.\n            This is to give time for templates and extensions that mimic the\n            legacy output to be migrated away.\n            @internal Temporary feature flag for T318433.\n            @since 1.41\n    RawHtml:\n        default: false\n        description: |-\n            Allow raw, unchecked HTML in \"<html>...</html>\" sections.\n            THIS IS VERY DANGEROUS on a publicly editable site, so USE $wgGroupPermissions\n            TO RESTRICT EDITING to only those that you trust\n    ExternalLinkTarget:\n        default: false\n        description: |-\n            Set a default target for external links, e.g. _blank to pop up a new window.\n            This will also set the \"noreferrer\" and \"noopener\" link rel to prevent the\n            attack described at https://mathiasbynens.github.io/rel-noopener/ .\n            Some older browsers may not support these link attributes, hence\n            setting $wgExternalLinkTarget to _blank may represent a security risk\n            to some of your users.\n    NoFollowLinks:\n        default: true\n        description: |-\n            If true, external URL links in wiki text will be given the\n            rel=\"nofollow\" attribute as a hint to search engines that\n            they should not be followed for ranking purposes as they\n            are user-supplied and thus subject to spamming.\n    NoFollowNsExceptions:\n        default: []\n        type: array\n        description: |-\n            Namespaces in which $wgNoFollowLinks doesn't apply.\n            See Language.php for a list of namespaces.\n    NoFollowDomainExceptions:\n        default:\n            - mediawiki.org\n        type: array\n        description: |-\n            If this is set to an array of domains, external links to these domain names\n            (or any subdomains) will not be set to rel=\"nofollow\" regardless of the\n            value of $wgNoFollowLinks.  For instance:\n            $wgNoFollowDomainExceptions = [ 'en.wikipedia.org', 'wiktionary.org', 'mediawiki.org' ];\n            This would add rel=\"nofollow\" to links to de.wikipedia.org, but not\n            en.wikipedia.org, wiktionary.org, en.wiktionary.org, us.en.wikipedia.org,\n            etc.\n            Defaults to mediawiki.org for the links included in the software by default.\n    RegisterInternalExternals:\n        default: false\n        description: |-\n            By default MediaWiki does not register links pointing to same server in\n            externallinks dataset, use this value to override:\n    AllowDisplayTitle:\n        default: true\n        description: Allow DISPLAYTITLE to change title display\n    RestrictDisplayTitle:\n        default: true\n        description: |-\n            For consistency, restrict DISPLAYTITLE to text that normalizes to the same\n            canonical DB key. Also disallow some inline CSS rules like display: none;\n            which can cause the text to be hidden or unselectable.\n    ExpensiveParserFunctionLimit:\n        default: 100\n        description: |-\n            Maximum number of calls per parse to expensive parser functions such as\n            PAGESINCATEGORY.\n    PreprocessorCacheThreshold:\n        default: 1000\n        description: |-\n            Preprocessor caching threshold\n            Setting it to 'false' will disable the preprocessor cache.\n    EnableScaryTranscluding:\n        default: false\n        description: Enable interwiki transcluding.  Only when iw_trans=1 in the interwiki table.\n    TranscludeCacheExpiry:\n        default: 3600\n        description: |-\n            Expiry time for transcluded templates cached in object cache.\n            Only used $wgEnableInterwikiTranscluding is set to true.\n    EnableMagicLinks:\n        default:\n            ISBN: false\n            PMID: false\n            RFC: false\n        type: object\n        description: |-\n            Enable the magic links feature of automatically turning ISBN xxx,\n            PMID xxx, RFC xxx into links\n            @since 1.28\n    ParserEnableUserLanguage:\n        default: false\n        description: |-\n            Set this to true to allow the {{USERLANGUAGE}} magic word to return the\n            actual user language. If it is false, {{USERLANGUAGE}} will return the\n            page language. Setting this to true is discouraged since the page\n            language should typically be used in the content area. Accessing the user\n            language using this feature reduces the efficiency of the parser cache.\n            @since 1.43\n    ArticleCountMethod:\n        default: link\n        description: |-\n            Method used to determine if a page in a content namespace should be counted\n            as a valid article.\n            Redirect pages will never be counted as valid articles.\n            This variable can have the following values:\n            - 'any': all pages as considered as valid articles\n            - 'link': the page must contain a [[wiki link]] to be considered valid\n            See also See https://www.mediawiki.org/wiki/Manual:Article_count\n            Retroactively changing this variable will not affect the existing count,\n            to update it, you will need to run the maintenance/updateArticleCount.php\n            script.\n    ActiveUserDays:\n        default: 30\n        description: |-\n            How many days user must be idle before they are considered inactive. Will affect\n            the number shown on Special:Statistics, Special:ActiveUsers, and the\n            {{NUMBEROFACTIVEUSERS}} magic word in wikitext.\n            You might want to leave this as the default value, to provide comparable\n            numbers between different wikis.\n    LearnerEdits:\n        default: 10\n        description: |-\n            The following variables define 3 user experience levels:\n            - newcomer: has not yet reached the 'learner' level\n            - learner: has at least $wgLearnerEdits and has been\n                       a member for $wgLearnerMemberSince days\n                       but has not yet reached the 'experienced' level.\n            - experienced: has at least $wgExperiencedUserEdits edits and\n                           has been a member for $wgExperiencedUserMemberSince days.\n    LearnerMemberSince:\n        default: 4\n        description: |-\n            Number of days the user must exist before becoming a learner.\n            @see self::LearnerEdits\n    ExperiencedUserEdits:\n        default: 500\n        description: |-\n            Number of edits the user must have before becoming \"experienced\".\n            @see self::LearnerEdits\n    ExperiencedUserMemberSince:\n        default: 30\n        description: |-\n            Number of days the user must exist before becoming \"experienced\".\n            @see self::LearnerEdits\n    ManualRevertSearchRadius:\n        default: 15\n        type: integer\n        description: |-\n            Maximum number of revisions of a page that will be checked against every new edit\n            made to determine whether the edit was a manual revert.\n            Computational time required increases roughly linearly with this configuration\n            variable.\n            Larger values will let you detect very deep reverts, but at the same time can give\n            unexpected results (such as marking large amounts of edits as reverts) and may slow\n            down the wiki slightly when saving new edits.\n            Setting this to 0 will disable the manual revert detection feature entirely.\n            See this document for a discussion on this topic:\n            https://meta.wikimedia.org/wiki/Research:Revert\n            @since 1.36\n    RevertedTagMaxDepth:\n        default: 15\n        type: integer\n        description: |-\n            Maximum depth (revision count) of reverts that will have their reverted edits marked\n            with the mw-reverted change tag. Reverts deeper than that will not have any edits\n            marked as reverted at all.\n            Large values can lead to lots of revisions being marked as \"reverted\", which may appear\n            confusing to users.\n            Setting this to 0 will disable the reverted tag entirely.\n            @since 1.36\n    CentralIdLookupProviders:\n        default:\n            local: { class: MediaWiki\\User\\CentralId\\LocalIdLookup, services: [ MainConfig, DBLoadBalancerFactory, HideUserUtils ] }\n        type: object\n        description: |-\n            Central ID lookup providers\n            Key is the provider ID, value is a specification for ObjectFactory\n            @since 1.27\n    CentralIdLookupProvider:\n        default: local\n        type: string\n        description: Central ID lookup provider to use by default\n    UserRegistrationProviders:\n        default:\n            local: { class: MediaWiki\\User\\Registration\\LocalUserRegistrationProvider, services: [ UserFactory, ConnectionProvider ] }\n        type: object\n        description: |-\n            User registration timestamp provider classes\n            @since 1.41\n    PasswordPolicy:\n        default:\n            policies: { bureaucrat: { MinimalPasswordLength: 10, MinimumPasswordLengthToLogin: 1 }, sysop: { MinimalPasswordLength: 10, MinimumPasswordLengthToLogin: 1 }, interface-admin: { MinimalPasswordLength: 10, MinimumPasswordLengthToLogin: 1 }, bot: { MinimalPasswordLength: 10, MinimumPasswordLengthToLogin: 1 }, default: { MinimalPasswordLength: { value: 8, suggestChangeOnLogin: true }, PasswordCannotBeSubstringInUsername: { value: true, suggestChangeOnLogin: true }, PasswordCannotMatchDefaults: { value: true, suggestChangeOnLogin: true }, MaximalPasswordLength: { value: 4096, suggestChangeOnLogin: true }, PasswordNotInCommonList: { value: true, suggestChangeOnLogin: true } } }\n            checks: { MinimalPasswordLength: [ MediaWiki\\Password\\PasswordPolicyChecks, checkMinimalPasswordLength ], MinimumPasswordLengthToLogin: [ MediaWiki\\Password\\PasswordPolicyChecks, checkMinimumPasswordLengthToLogin ], PasswordCannotBeSubstringInUsername: [ MediaWiki\\Password\\PasswordPolicyChecks, checkPasswordCannotBeSubstringInUsername ], PasswordCannotMatchDefaults: [ MediaWiki\\Password\\PasswordPolicyChecks, checkPasswordCannotMatchDefaults ], MaximalPasswordLength: [ MediaWiki\\Password\\PasswordPolicyChecks, checkMaximalPasswordLength ], PasswordNotInCommonList: [ MediaWiki\\Password\\PasswordPolicyChecks, checkPasswordNotInCommonList ] }\n        type: object\n        mergeStrategy: array_replace_recursive\n        description: |-\n            Password policy for the wiki.\n            Structured as\n            ```\n            [\n                'policies' => [ <group> => [ <policy> => <settings>, ... ], ... ],\n                'checks' => [ <policy> => <callback>, ... ],\n            ]\n            ```\n            where <group> is a user group, <policy> is a password policy name\n            (arbitrary string) defined in the 'checks' part, <callback> is the\n            PHP callable implementing the policy check, <settings> is an array\n            of options with the following keys:\n            - value: (number, boolean or null) the value to pass to the callback\n            - forceChange: (boolean, default false) if the password is invalid, do\n              not let the user log in without changing the password\n            - suggestChangeOnLogin: (boolean, default false) if true and the password is\n              invalid, suggest a password change if logging in. If all the failing policies\n              that apply to the user have this set to false, the password change\n              screen will not be shown. 'forceChange' takes precedence over\n              'suggestChangeOnLogin' if they are both present.\n            As a shorthand for [ 'value' => <value> ], simply <value> can be written.\n            When multiple password policies are defined for a user, the settings\n            arrays are merged, and for fields which are set in both arrays, the\n            larger value (as understood by PHP's 'max' method) is taken.\n            A user's effective policy is the superset of all policy statements\n            from the policies for the groups where the user is a member. If more\n            than one group policy include the same policy statement, the value is\n            the max() of the values. Note true > false. The 'default' policy group\n            is required, and serves as the minimum policy for all users.\n            Callbacks receive three arguments: the policy value, the User object\n            and the password; and must return a StatusValue. A non-good status\n            means the password will not be accepted for new accounts, and existing\n            accounts will be prompted for password change or barred from logging in\n            (depending on whether the status is a fatal or merely error/warning).\n            The checks supported by core are:\n            - MinimalPasswordLength - Minimum length a user can set.\n            - MinimumPasswordLengthToLogin - Passwords shorter than this will\n               not be allowed to login, or offered a chance to reset their password\n               as part of the login workflow, regardless if it is correct.\n            - MaximalPasswordLength - maximum length password a user is allowed\n               to attempt. Prevents DoS attacks with pbkdf2.\n            - PasswordCannotBeSubstringInUsername - Password cannot be a substring\n               (contained within) the username.\n            - PasswordCannotMatchDefaults - Username/password combination cannot\n               match a list of default passwords used by MediaWiki in the past.\n            - PasswordNotInCommonList - Password not in best practices list of\n               100,000 commonly used passwords. Due to the size of the list this\n               is a probabilistic test.\n            If you add custom checks, for Special:PasswordPolicies to display them correctly,\n            every check should have a corresponding passwordpolicies-policy-<check> message,\n            and every settings field other than 'value' should have a corresponding\n            passwordpolicies-policyflag-<flag> message (<check> and <flag> are in lowercase).\n            The check message receives the policy value as a parameter, the flag message\n            receives the flag value (or values if it's an array).\n            @since 1.26\n            @see \\MediaWiki\\Password\\PasswordPolicyChecks\n            @see \\MediaWiki\\User\\User::checkPasswordValidity()\n    AuthManagerConfig:\n        default: null\n        type:\n            - object\n            - \"null\"\n        description: |-\n            Configure AuthManager\n            All providers are constructed using ObjectFactory, see that for the general\n            structure. The array may also contain a key \"sort\" used to order providers:\n            providers are stably sorted by this value, which should be an integer\n            (default is 0).\n            Elements are:\n            - preauth: Array (keys ignored) of specifications for PreAuthenticationProviders\n            - primaryauth: Array (keys ignored) of specifications for PrimaryAuthenticationProviders\n            - secondaryauth: Array (keys ignored) of specifications for SecondaryAuthenticationProviders\n            @since 1.27\n            @note If this is null or empty, the value from $wgAuthManagerAutoConfig is\n            used instead. Local customization should generally set this variable from\n            scratch to the desired configuration. Extensions that want to\n            auto-configure themselves should use $wgAuthManagerAutoConfig instead.\n    AuthManagerAutoConfig:\n        default:\n            preauth: { MediaWiki\\Auth\\ThrottlePreAuthenticationProvider: { class: MediaWiki\\Auth\\ThrottlePreAuthenticationProvider, sort: 0 } }\n            primaryauth: { MediaWiki\\Auth\\TemporaryPasswordPrimaryAuthenticationProvider: { class: MediaWiki\\Auth\\TemporaryPasswordPrimaryAuthenticationProvider, services: [ DBLoadBalancerFactory, UserOptionsLookup ], args: [ { authoritative: false } ], sort: 0 }, MediaWiki\\Auth\\LocalPasswordPrimaryAuthenticationProvider: { class: MediaWiki\\Auth\\LocalPasswordPrimaryAuthenticationProvider, services: [ DBLoadBalancerFactory ], args: [ { authoritative: true } ], sort: 100 } }\n            secondaryauth: { MediaWiki\\Auth\\CheckBlocksSecondaryAuthenticationProvider: { class: MediaWiki\\Auth\\CheckBlocksSecondaryAuthenticationProvider, sort: 0 }, MediaWiki\\Auth\\ResetPasswordSecondaryAuthenticationProvider: { class: MediaWiki\\Auth\\ResetPasswordSecondaryAuthenticationProvider, sort: 100 }, MediaWiki\\Auth\\EmailNotificationSecondaryAuthenticationProvider: { class: MediaWiki\\Auth\\EmailNotificationSecondaryAuthenticationProvider, services: [ DBLoadBalancerFactory ], sort: 200 } }\n        type: object\n        mergeStrategy: array_plus_2d\n        description: |-\n            @see self::AuthManagerConfig\n            @since 1.27\n    RememberMe:\n        default: choose\n        type: string\n        description: |-\n            Configures RememberMe authentication request added by AuthManager. It can show a \"remember\n            me\" checkbox that, when checked, will cause it to take more time for the authenticated\n            session to expire. It can also be configured to always or to never extend the authentication\n            session.\n            Valid values are listed in RememberMeAuthenticationRequest::ALLOWED_FLAGS.\n            @since 1.36\n    ReauthenticateTime:\n        default:\n            default: 300\n        type: object\n        additionalProperties:\n            type: integer\n        description: |-\n            Time frame for re-authentication.\n            With only password-based authentication, you'd just ask the user to re-enter\n            their password to verify certain operations like changing the password or\n            changing the account's email address. But under AuthManager, the user might\n            not have a password (you might even have to redirect the browser to a\n            third-party service or something complex like that), you might want to have\n            both factors of a two-factor authentication, and so on. So, the options are:\n            - Incorporate the whole multi-step authentication flow within everything\n              that needs to do this.\n            - Consider it good if they used Special:UserLogin during this session within\n              the last X seconds.\n            - Come up with a third option.\n            MediaWiki currently takes the second option. This setting configures the\n            \"X seconds\".\n            This allows for configuring different time frames for different\n            \"operations\". The operations used in MediaWiki core include:\n            - LinkAccounts\n            - UnlinkAccount\n            - ChangeCredentials\n            - RemoveCredentials\n            - ChangeEmail\n            Additional operations may be used by extensions, either explicitly by\n            calling AuthManager::securitySensitiveOperationStatus(),\n            ApiAuthManagerHelper::securitySensitiveOperation() or\n            SpecialPage::checkLoginSecurityLevel(), or implicitly by overriding\n            SpecialPage::getLoginSecurityLevel() or by subclassing\n            AuthManagerSpecialPage.\n            The key 'default' is used if a requested operation isn't defined in the array.\n            @since 1.27\n    AllowSecuritySensitiveOperationIfCannotReauthenticate:\n        default:\n            default: true\n        type: object\n        additionalProperties:\n            type: boolean\n        description: |-\n            Whether to allow security-sensitive operations when re-authentication is not possible.\n            If AuthManager::canAuthenticateNow() is false (e.g. the current\n            SessionProvider is not able to change users, such as when OAuth is in use),\n            AuthManager::securitySensitiveOperationStatus() cannot sensibly return\n            SEC_REAUTH. Setting an operation true here will have it return SEC_OK in\n            that case, while setting it false will have it return SEC_FAIL.\n            The key 'default' is used if a requested operation isn't defined in the array.\n            @since 1.27\n            @see self::ReauthenticateTime\n    ChangeCredentialsBlacklist:\n        default:\n            - MediaWiki\\Auth\\TemporaryPasswordAuthenticationRequest\n        type: array\n        items:\n            type: string\n        description: |-\n            List of AuthenticationRequest class names which are not changeable through\n            Special:ChangeCredentials and the changeauthenticationdata API.\n            This is only enforced on the client level; AuthManager itself (e.g.\n            AuthManager::allowsAuthenticationDataChange calls) is not affected.\n            Class names are checked for exact match (not for subclasses).\n            @since 1.27\n    RemoveCredentialsBlacklist:\n        default:\n            - MediaWiki\\Auth\\PasswordAuthenticationRequest\n        type: array\n        items:\n            type: string\n        description: |-\n            List of AuthenticationRequest class names which are not removable through\n            Special:RemoveCredentials and the removeauthenticationdata API.\n            This is only enforced on the client level; AuthManager itself (e.g.\n            AuthManager::allowsAuthenticationDataChange calls) is not affected.\n            Class names are checked for exact match (not for subclasses).\n            @since 1.27\n    InvalidPasswordReset:\n        default: true\n        description: |-\n            Specifies if users should be sent to a password-reset form on login, if their\n            password doesn't meet the requirements of User::isValidPassword().\n            @since 1.23\n    PasswordDefault:\n        default: pbkdf2\n        description: |-\n            Default password type to use when hashing user passwords.\n            Must be set to a type defined in $wgPasswordConfig, or a type that\n            is registered by default in PasswordFactory.php.\n            @since 1.24\n    PasswordConfig:\n        default:\n            A: { class: MediaWiki\\Password\\MWOldPassword }\n            B: { class: MediaWiki\\Password\\MWSaltedPassword }\n            pbkdf2-legacyA: { class: MediaWiki\\Password\\LayeredParameterizedPassword, types: [ A, pbkdf2 ] }\n            pbkdf2-legacyB: { class: MediaWiki\\Password\\LayeredParameterizedPassword, types: [ B, pbkdf2 ] }\n            bcrypt: { class: MediaWiki\\Password\\BcryptPassword, cost: 9 }\n            pbkdf2: { class: MediaWiki\\Password\\Pbkdf2PasswordUsingOpenSSL, algo: sha512, cost: \"30000\", length: \"64\" }\n            argon2: { class: MediaWiki\\Password\\Argon2Password, algo: auto }\n        type: object\n        description: |-\n            Configuration for built-in password types.\n            Maps the password type to an array of options:\n            - class: The Password class to use.\n            - factory (since 1.40): A function that creates and returns a suitable Password object.\n              This option is intended only for internal use; the function signature is unstable and\n              subject to change in future versions.\n            All other options are class-dependent.\n            An advanced example:\n            ```\n            $wgPasswordConfig['bcrypt-peppered'] = [\n                'class' => EncryptedPassword::class,\n                'underlying' => 'bcrypt',\n                'secrets' => [\n                    hash( 'sha256', 'secret', true ),\n                ],\n                'cipher' => 'aes-256-cbc',\n            ];\n            ```\n            @since 1.24\n    PasswordResetRoutes:\n        default:\n            username: true\n            email: true\n        type: object\n        description: |-\n            Whether to allow password resets (\"enter some identifying data, and we'll send an email\n            with a temporary password you can use to get back into the account\") identified by\n            various bits of data.  Setting all of these to false (or the whole variable to false)\n            has the effect of disabling password resets entirely\n    MaxSigChars:\n        default: 255\n        description: Maximum number of Unicode characters in signature\n    SignatureValidation:\n        default: warning\n        description: |-\n            Behavior of signature validation. Allowed values are:\n             - 'warning' - invalid signatures cause a warning to be displayed on the preferences page,\n            but they are still used when signing comments; new invalid signatures can still be saved as\n            normal\n             - 'new' - existing invalid signatures behave as above; new invalid signatures can't be\n            saved\n             - 'disallow' - existing invalid signatures are no longer used when signing comments; new\n            invalid signatures can't be saved\n            @since 1.35\n    SignatureAllowedLintErrors:\n        default:\n            - obsolete-tag\n        type: array\n        description: |-\n            List of lint error codes which don't cause signature validation to fail.\n            @see https://www.mediawiki.org/wiki/Help:Lint_errors\n            @since 1.35\n    MaxNameChars:\n        default: 255\n        description: |-\n            Maximum number of bytes in username. You want to run the maintenance\n            script ./maintenance/checkUsernames.php once you have changed this value.\n    ReservedUsernames:\n        default:\n            - MediaWiki default\n            - Conversion script\n            - Maintenance script\n            - Template namespace initialisation script\n            - ScriptImporter\n            - Delete page script\n            - Move page script\n            - Command line script\n            - Unknown user\n            - \"msg:double-redirect-fixer\"\n            - \"msg:usermessage-editor\"\n            - \"msg:proxyblocker\"\n            - \"msg:sorbs\"\n            - \"msg:spambot_username\"\n            - \"msg:autochange-username\"\n        type: array\n        description: |-\n            Array of usernames which may not be registered or logged in from\n            Maintenance scripts can still use these\n            @see \\MediaWiki\\User\\User::MAINTENANCE_SCRIPT_USER\n    DefaultUserOptions:\n        default:\n            ccmeonemails: 0\n            date: default\n            diffonly: 0\n            diff-type: table\n            disablemail: 0\n            editfont: monospace\n            editondblclick: 0\n            editrecovery: 0\n            editsectiononrightclick: 0\n            email-allow-new-users: 1\n            enotifminoredits: 0\n            enotifrevealaddr: 0\n            enotifusertalkpages: 1\n            enotifwatchlistpages: 1\n            extendwatchlist: 1\n            fancysig: 0\n            forceeditsummary: 0\n            forcesafemode: 0\n            gender: unknown\n            hidecategorization: 1\n            hideminor: 0\n            hidepatrolled: 0\n            imagesize: 2\n            minordefault: 0\n            newpageshidepatrolled: 0\n            nickname: \"\"\n            norollbackdiff: 0\n            prefershttps: 1\n            previewonfirst: 0\n            previewontop: 1\n            pst-cssjs: 1\n            rcdays: 7\n            rcenhancedfilters-disable: 0\n            rclimit: 50\n            requireemail: 0\n            search-match-redirect: true\n            search-special-page: Search\n            search-thumbnail-extra-namespaces: true\n            searchlimit: 20\n            showhiddencats: 0\n            shownumberswatching: 1\n            showrollbackconfirmation: 0\n            skin: false\n            skin-responsive: 1\n            thumbsize: 5\n            underline: 2\n            useeditwarning: 1\n            uselivepreview: 0\n            usenewrc: 1\n            watchcreations: 1\n            watchdefault: 1\n            watchdeletion: 0\n            watchlistdays: 7\n            watchlisthideanons: 0\n            watchlisthidebots: 0\n            watchlisthidecategorization: 1\n            watchlisthideliu: 0\n            watchlisthideminor: 0\n            watchlisthideown: 0\n            watchlisthidepatrolled: 0\n            watchlistreloadautomatically: 0\n            watchlistunwatchlinks: 0\n            watchmoves: 0\n            watchrollback: 0\n            watchuploads: 1\n            wlenhancedfilters-disable: 0\n            wllimit: 250\n        type: object\n        description: |-\n            Settings added to this array will override the default globals for the user\n            preferences used by anonymous visitors and newly created accounts.\n            For instance, to disable editing on double clicks:\n            $wgDefaultUserOptions ['editondblclick'] = 0;\n            To save storage space, no user_properties row will be stored for users with the\n            default setting for a given option, even if the user manually selects that option.\n            This means that a change to the defaults will change the setting for all users who\n            have been using the default setting; there is no way for users to opt out of this.\n            $wgConditionalUserOptions can be used to change the default value for future users\n            only.\n            @see self::ConditionalUserOptions\n    ConditionalUserOptions:\n        default: { }\n        type: object\n        description: |-\n            Conditional defaults for user options\n            Map of user options to conditional defaults descriptors, which is an array\n            of conditional cases [ VALUE, CONDITION1, CONDITION2 ], where VALUE is the default value for\n            all users that meet ALL conditions, and each CONDITION is either a:\n                (a) a CUDCOND_* constant (when condition does not take any arguments), or\n                (b) an array [ CUDCOND_*, argument1, argument1, ... ] (when chosen condition takes at\n                    least one argument).\n            When `null` is used as the VALUE, it is interpreted as \"no conditional default for this\n            condition\". In other words, `null` and $wgDefaultUserOptions['user-option'] can be used\n            interchangeably as the VALUE.\n            All conditions are evaluated in order. When no condition matches.\n            $wgDefaultUserOptions is used instead.\n            Example of valid configuration:\n              $wgConditionalUserOptions['user-option'] = [\n                  [ 'registered in 2024', [ CUDCOND_AFTER, '20240101000000' ] ]\n              ];\n            List of valid conditions:\n              * CUDCOND_AFTER: user registered after given timestamp (args: string $timestamp)\n              * CUDCOND_ANON: allows specifying a default for anonymous (logged-out, non-temporary) users\n              * CUDCOND_NAMED: allows specifying a default for named (registered, non-temporary) users\n              * CUDCOND_USERGROUP: users with a specific user group\n            @since 1.42\n            @see self::DefaultUserOptions\n    HiddenPrefs:\n        default: []\n        type: array\n        description: An array of preferences to not show for the user\n    InvalidUsernameCharacters:\n        default: \"@:>=\"\n        description: |-\n            Characters to prevent during new account creations.\n            This is used in a regular expression character class during\n            registration (regex metacharacters like / are escaped).\n    UserrightsInterwikiDelimiter:\n        default: \"@\"\n        description: |-\n            Character used as a delimiter when testing for interwiki userrights\n            (In Special:UserRights, it is possible to modify users on different\n            databases if the delimiter is used, e.g. \"Someuser@enwiki\").\n            It is recommended that you have this delimiter in\n            $wgInvalidUsernameCharacters above, or you will not be able to\n            modify the user rights of those users via Special:UserRights\n    SecureLogin:\n        default: false\n        description: |-\n            This is to let user authenticate using https when they come from http.\n            Based on an idea by George Herbert on wikitech-l:\n            https://lists.wikimedia.org/pipermail/wikitech-l/2010-October/050039.html\n            @since 1.17\n    AuthenticationTokenVersion:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Versioning for authentication tokens.\n            If non-null, this is combined with the user's secret (the user_token field\n            in the DB) to generate the token cookie. Changing this will invalidate all\n            active sessions (i.e. it will log everyone out).\n            @since 1.27\n    SessionProviders:\n        type: object\n        default:\n            MediaWiki\\Session\\CookieSessionProvider: { class: MediaWiki\\Session\\CookieSessionProvider, args: [ { priority: 30 } ] }\n            MediaWiki\\Session\\BotPasswordSessionProvider: { class: MediaWiki\\Session\\BotPasswordSessionProvider, args: [ { priority: 75 } ], services: [ GrantsInfo ] }\n        description: |-\n            MediaWiki\\Session\\SessionProvider configuration.\n            Values are ObjectFactory specifications for the SessionProviders to be\n            used. Keys in the array are ignored; the class name is conventionally\n            used as the key to avoid collisions. Order is not significant.\n            @since 1.27\n    AutoCreateTempUser:\n        properties:\n            known: { type: boolean, default: false }\n            enabled: { type: boolean, default: false }\n            actions: { type: array, default: [ edit ] }\n            genPattern: { type: string, default: ~$1 }\n            matchPattern: { type: [ string, array, \"null\" ], default: null }\n            reservedPattern: { type: [ string, \"null\" ], default: ~$1 }\n            serialProvider: { type: object, default: { type: local, useYear: true } }\n            serialMapping: { type: object, default: { type: readable-numeric } }\n            expireAfterDays: { type: [ integer, \"null\" ], default: 90 }\n            notifyBeforeExpirationDays: { type: [ integer, \"null\" ], default: 10 }\n        type: object\n        description: |-\n            Configuration for automatic creation of temporary accounts on page save.\n            This can be enabled to avoid exposing the IP addresses of casual editors who\n            do not explicitly create an account.\n            @warning This is EXPERIMENTAL, enabling may break extensions.\n            An associative array with the following keys:\n              - known: (bool) Whether auto-creation is known about. Set this to 'true' if\n                temp accounts have been created on this wiki already. This setting allows\n                temp users to be recognized even if auto-creation is currently disabled.\n                If auto-creation is enabled via the 'enabled' property, then 'known' is\n                overriden to true.\n              - enabled: (bool) Whether auto-creation is enabled. If changing this\n                value from 'true' to 'false', you should also set 'known' to true, so\n                that relevant code can continue to identify temporary accounts as\n                visually and conceptually distinct from anonymous accounts and named accounts.\n              - actions: (array) A list of actions for which the feature is enabled.\n                Currently only \"edit\" is supported.\n              - genPattern: (string) The pattern used when generating new usernames.\n                This should have \"$1\" indicating the place where the serial string will\n                be substituted.\n              - matchPattern: (string|string[]|null) The pattern used when determining whether a\n                username is a temporary user. This affects the rights of the user\n                and also prevents explicit creation of users with matching names.\n                This is ignored if \"enabled\" is false. If the value is null, the\n                the genPattern value is used as the matchPattern.\n              - reservedPattern: (string) A pattern used to determine whether a\n                username should be denied for explicit creation, in addition to\n                matchPattern. This is used even if \"enabled\" is false.\n              - serialProvider: (array) Configuration for generation of unique integer\n                indexes which are used to make temporary usernames.\n                  - type: (string) May be \"local\" to allocate indexes using the local\n                    database. If the CentralAuth extension is enabled, it may be\n                    \"centralauth\". Extensions may plug in additional types using the\n                    TempUserSerialProviders attribute.\n                  - numShards (int, default 1): A small integer. This can be set to a\n                    value greater than 1 to avoid acquiring a global lock when\n                    allocating IDs, at the expense of making the IDs be non-monotonic.\n                  - useYear: (bool) Restart at 1 each time the year changes (in UTC).\n                    To avoid naming conflicts, the year is included in the name after\n                    the prefix, in the form 'YYYY-'.\n              - serialMapping: (array) Configuration for mapping integer indexes to strings\n                to substitute into genPattern.\n                  - type: (string) May be\n                    - \"readable-numeric\" to use ASCII decimal numbers broken up with hyphens\n                    - \"plain-numeric\" to use ASCII decimal numbers\n                    - \"localized-numeric\" to use numbers localized using a specific language\n                    - \"filtered-radix\" to use numbers in an arbitrary base between 2 and 36,\n                      with an optional list of \"bad\" IDs to skip over.\n                    - \"scramble\": to use ASCII decimal numbers that are short but\n                      non-consecutive.\n                  - language: (string) With \"localized-numeric\", the language code\n                  - radix: (int) With \"filtered-radix\", the base\n                  - badIndexes: (array) With \"filtered-radix\", an array with the bad unmapped\n                    indexes in the values. The integers must be sorted and the list\n                    must never change after the indexes have been allocated. The keys must\n                    be zero-based array indexes.\n                  - uppercase: (bool) With \"filtered-radix\", whether to use uppercase\n                    letters, default false.\n                  - offset: (int) With \"plain-numeric\" and \"readable-numeric\", a constant to add to the\n                    stored index.\n               - expireAfterDays: (int|null, default 90) If not null, how many days should the temporary\n                 accounts expire? You should run expireTemporaryAccounts.php periodically to expire\n                 temporary accounts. Otherwise they are expired when they try to edit.\n               - notifyBeforeExpirationDays: (int|null, default 10) If not null, how many days before the\n                 expiration of a temporary account should it be notified that their account is to be expired.\n            @unstable EXPERIMENTAL\n            @since 1.39\n        default: null\n    AutoblockExemptions:\n        default: []\n        type: array\n        description: List of IP addresses or CIDR ranges that are exempt from autoblocks.\n    AutoblockExpiry:\n        default: 86400\n        description: Number of seconds before autoblock entries expire. Default 86400 = 1 day.\n    BlockAllowsUTEdit:\n        default: true\n        description: |-\n            Set this to true to allow blocked users to edit their own user talk page.\n            This only applies to sitewide blocks. Partial blocks always allow users to\n            edit their own user talk page unless otherwise specified in the block\n            restrictions.\n    BlockCIDRLimit:\n        default:\n            IPv4: 16\n            IPv6: 19\n        type: object\n        description: |-\n            Limits on the possible sizes of range blocks.\n            CIDR notation is hard to understand, it's easy to mistakenly assume that a\n            /1 is a small range and a /31 is a large range. For IPv4, setting a limit of\n            half the number of bits avoids such errors, and allows entire ISPs to be\n            blocked using a small number of range blocks.\n            For IPv6, RFC 3177 recommends that a /48 be allocated to every residential\n            customer, so range blocks larger than /64 (half the number of bits) will\n            plainly be required. RFC 4692 implies that a very large ISP may be\n            allocated a /19 if a generous HD-Ratio of 0.8 is used, so we will use that\n            as our limit. As of 2012, blocking the whole world would require a /4 range.\n    BlockDisablesLogin:\n        default: false\n        description: |-\n            If true, sitewide blocked users will not be allowed to login. (Direct\n            blocks only; IP blocks are ignored.) This can be used to remove users'\n            read access on a private wiki.\n    EnablePartialActionBlocks:\n        default: false\n        type: boolean\n        description: |-\n            Flag to enable partial blocks against performing certain actions.\n            @unstable Temporary feature flag, T280532\n            @since 1.37\n    EnableMultiBlocks:\n        default: false\n        type: boolean\n        description: |-\n            If this is false, the number of blocks of a given target is limited to only 1.\n            @since 1.42\n    BlockTargetMigrationStage:\n        default: 768\n        type: integer\n        description: |4-\n             Ipblocks table schema migration stage, for normalizing ipb_address field and\n            \tadding the block_target table.\n            Use the SCHEMA_COMPAT_XXX flags. Supported values:\n              - SCHEMA_COMPAT_OLD\n              - SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD\n              - SCHEMA_COMPAT_NEW\n            History:\n              - 1.42: Added\n              - 1.43: Default changed from SCHEMA_COMPAT_OLD to SCHEMA_COMPAT_NEW\n              - 1.43: Deprecated, ignored, SCHEMA_COMPAT_NEW is implied\n            @deprecated since 1.43\n    WhitelistRead:\n        default: false\n        description: |-\n            Pages anonymous user may see, set as an array of pages titles.\n            **Example:**\n            ```\n            $wgWhitelistRead = [ \"Main Page\", \"Wikipedia:Help\" ];\n            ```\n            Special:Userlogin and Special:ChangePassword are always allowed.\n            @note This will only work if $wgGroupPermissions['*']['read'] is false --\n            see below. Otherwise, ALL pages are accessible, regardless of this setting.\n            @note Also that this will only protect _pages in the wiki_. Uploaded files\n            will remain readable. You can use img_auth.php to protect uploaded files,\n            see https://www.mediawiki.org/wiki/Manual:Image_Authorization\n            @note Extensions should not modify this, but use the TitleReadWhitelist\n            hook instead.\n    WhitelistReadRegexp:\n        default: false\n        description: |-\n            Pages anonymous user may see, set as an array of regular expressions.\n            This function will match the regexp against the title name, which\n            is without underscore.\n            **Example:**\n            To whitelist [[Main Page]]:\n            ```\n            $wgWhitelistReadRegexp = [ \"/Main Page/\" ];\n            ```\n            @note Unless ^ and/or $ is specified, a regular expression might match\n            pages not intended to be allowed.  The above example will also\n            allow a page named 'Security Main Page'.\n            **Example:**\n            To allow reading any page starting with 'User' regardless of the case:\n            ```\n            $wgWhitelistReadRegexp = [ \"@^UsEr.*@i\" ];\n            ```\n            Will allow both [[User is banned]] and [[User:JohnDoe]]\n            @note This will only work if $wgGroupPermissions['*']['read'] is false --\n            see below. Otherwise, ALL pages are accessible, regardless of this setting.\n    EmailConfirmToEdit:\n        default: false\n        description: |-\n            Should editors be required to have a validated e-mail\n            address before being allowed to edit?\n    HideIdentifiableRedirects:\n        default: true\n        description: |-\n            Should MediaWiki attempt to protect user's privacy when doing redirects?\n            Keep this true if access counts to articles are made public.\n    GroupPermissions:\n        type: object\n        additionalProperties:\n            type: object\n            additionalProperties: { type: boolean }\n        mergeStrategy: array_plus_2d\n        default:\n            \"*\": { createaccount: true, read: true, edit: true, createpage: true, createtalk: true, viewmyprivateinfo: true, editmyprivateinfo: true, editmyoptions: true }\n            user: { move: true, move-subpages: true, move-rootuserpages: true, move-categorypages: true, movefile: true, read: true, edit: true, createpage: true, createtalk: true, upload: true, reupload: true, reupload-shared: true, minoredit: true, editmyusercss: true, editmyuserjson: true, editmyuserjs: true, editmyuserjsredirect: true, sendemail: true, applychangetags: true, changetags: true, editcontentmodel: true, viewmywatchlist: true, editmywatchlist: true }\n            autoconfirmed: { autoconfirmed: true, editsemiprotected: true }\n            bot: { bot: true, autoconfirmed: true, editsemiprotected: true, nominornewtalk: true, autopatrol: true, suppressredirect: true, apihighlimits: true }\n            sysop: { block: true, createaccount: true, delete: true, bigdelete: true, deletedhistory: true, deletedtext: true, undelete: true, editinterface: true, editsitejson: true, edituserjson: true, import: true, importupload: true, move: true, move-subpages: true, move-rootuserpages: true, move-categorypages: true, patrol: true, autopatrol: true, protect: true, editprotected: true, rollback: true, upload: true, reupload: true, reupload-shared: true, unwatchedpages: true, autoconfirmed: true, editsemiprotected: true, ipblock-exempt: true, blockemail: true, markbotedits: true, apihighlimits: true, browsearchive: true, noratelimit: true, movefile: true, unblockself: true, suppressredirect: true, mergehistory: true, managechangetags: true, deletechangetags: true }\n            interface-admin: { editinterface: true, editsitecss: true, editsitejson: true, editsitejs: true, editusercss: true, edituserjson: true, edituserjs: true }\n            bureaucrat: { userrights: true, noratelimit: true, renameuser: true }\n            suppress: { hideuser: true, suppressrevision: true, viewsuppressed: true, suppressionlog: true, deleterevision: true, deletelogentry: true }\n        description: |-\n            Permission keys given to users in each group.\n            This is an array where the keys are all groups and each value is an\n            array of the format (right => boolean).\n            The second format is used to support per-namespace permissions.\n            Note that this feature does not fully work for all permission types.\n            All users are implicitly in the '*' group including anonymous visitors;\n            logged-in users are all implicitly in the 'user' group. These will be\n            combined with the permissions of all groups that a given user is listed\n            in the user_groups table.\n            Note: Don't set $wgGroupPermissions = []; unless you know what you're\n            doing! This will wipe all permissions, and may mean that your users are\n            unable to perform certain essential tasks or access new functionality\n            when new permissions are introduced and default grants established.\n            Functionality to make pages inaccessible has not been extensively tested\n            for security. Use at your own risk!\n            This replaces $wgWhitelistAccount and $wgWhitelistEdit\n    PrivilegedGroups:\n        default:\n            - bureaucrat\n            - interface-admin\n            - suppress\n            - sysop\n        type: array\n        description: |-\n            List of groups which should be considered privileged (user accounts\n            belonging in these groups can be abused in dangerous ways).\n            This is used for some security checks, mainly logging.\n            @since 1.41\n            @see \\MediaWiki\\User\\UserGroupManager::getUserPrivilegedGroups()\n    RevokePermissions:\n        default: { }\n        type: object\n        mergeStrategy: array_plus_2d\n        description: |-\n            Permission keys revoked from users in each group.\n            This acts the same way as $wgGroupPermissions above, except that\n            if the user is in a group here, the permission will be removed from them.\n            Improperly setting this could mean that your users will be unable to perform\n            certain essential tasks, so use at your own risk!\n    GroupInheritsPermissions:\n        default: { }\n        type: object\n        additionalProperties:\n            type: string\n        description: |-\n            Groups that should inherit permissions from another group\n            This allows defining a group that inherits its permissions\n            from another group without having to copy all the permission\n            grants over. For example, if you wanted a manual \"confirmed\"\n            group that had the same permissions as \"autoconfirmed\":\n            ```\n            $wgGroupInheritsPermissions['confirmed'] = 'autoconfirmed';\n            ```\n            Recursive inheritance is currently not supported. In the above\n            example, confirmed will only gain the permissions explicitly\n            granted (or revoked) from autoconfirmed, not any permissions\n            that autoconfirmed might inherit.\n            @since 1.38\n    ImplicitGroups:\n        default:\n            - \"*\"\n            - user\n            - autoconfirmed\n        type: array\n        description: \"Implicit groups, aren't shown on Special:Listusers or somewhere else\"\n    GroupsAddToSelf:\n        default: { }\n        type: object\n        description: |-\n            A map of group names that the user is in, to group names that those users\n            are allowed to add or revoke.\n            Setting the list of groups to add or revoke to true is equivalent to \"any\n            group\".\n            **Example:**\n            To allow sysops to add themselves to the \"bot\" group:\n            ```\n            $wgGroupsAddToSelf = [ 'sysop' => [ 'bot' ] ];\n            ```\n            **Example:**\n            Implicit groups may be used for the source group, for instance:\n            ```\n            $wgGroupsRemoveFromSelf = [ '*' => true ];\n            ```\n            This allows users in the '*' group (i.e. any user) to remove themselves from\n            any group that they happen to be in.\n    GroupsRemoveFromSelf:\n        default: { }\n        type: object\n        description: \"@see self::GroupsAddToSelf\"\n    RestrictionTypes:\n        default:\n            - create\n            - edit\n            - move\n            - upload\n        type: array\n        description: |-\n            Set of available actions that can be restricted via action=protect\n            You probably shouldn't change this.\n            Translated through restriction-* messages.\n            RestrictionStore::listApplicableRestrictionTypes() will remove restrictions that are not\n            applicable to a specific title (create and upload)\n    RestrictionLevels:\n        default:\n            - \"\"\n            - autoconfirmed\n            - sysop\n        type: array\n        description: |-\n            Rights which can be required for each protection level (via action=protect)\n            You can add a new protection level that requires a specific\n            permission by manipulating this array. The ordering of elements\n            dictates the order on the protection form's lists.\n              - '' will be ignored (i.e. unprotected)\n              - 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility\n              - 'sysop' is quietly rewritten to 'editprotected' for backwards compatibility\n    CascadingRestrictionLevels:\n        default:\n            - sysop\n        type: array\n        description: |-\n            Restriction levels that can be used with cascading protection\n            A page can only be protected with cascading protection if the\n            requested restriction level is included in this array.\n            'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility.\n            'sysop' is quietly rewritten to 'editprotected' for backwards compatibility.\n    SemiprotectedRestrictionLevels:\n        default:\n            - autoconfirmed\n        type: array\n        description: |-\n            Restriction levels that should be considered \"semiprotected\"\n            Certain places in the interface recognize a dichotomy between \"protected\"\n            and \"semiprotected\", without further distinguishing the specific levels. In\n            general, if anyone can be eligible to edit a protection level merely by\n            reaching some condition in $wgAutopromote, it should probably be considered\n            \"semiprotected\".\n            'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility.\n            'sysop' is not changed, since it really shouldn't be here.\n    NamespaceProtection:\n        default: { }\n        type: object\n        description: |-\n            Set the minimum permissions required to edit pages in each\n            namespace.  If you list more than one permission, a user must\n            have all of them to edit pages in that namespace.\n            @note NS_MEDIAWIKI is implicitly restricted to 'editinterface'.\n    NonincludableNamespaces:\n        default: { }\n        type: object\n        description: |-\n            Pages in namespaces in this array can not be used as templates.\n            Elements MUST be numeric namespace ids, you can safely use the MediaWiki\n            namespaces constants (NS_USER, NS_MAIN...).\n            Among other things, this may be useful to enforce read-restrictions\n            which may otherwise be bypassed by using the template mechanism.\n    AutoConfirmAge:\n        default: 0\n        description: |-\n            Number of seconds an account is required to age before it's given the\n            implicit 'autoconfirm' group membership. This can be used to limit\n            privileges of new accounts.\n            Accounts created by earlier versions of the software may not have a\n            recorded creation date, and will always be considered to pass the age test.\n            When left at 0, all registered accounts will pass.\n            **Example:**\n            Set automatic confirmation to 10 minutes (which is 600 seconds):\n            ```\n            $wgAutoConfirmAge = 600;     // ten minutes\n            ```\n            Set age to one day:\n            ```\n            $wgAutoConfirmAge = 3600*24; // one day\n            ```\n    AutoConfirmCount:\n        default: 0\n        description: |-\n            Number of edits an account requires before it is autoconfirmed.\n            Passing both this AND the time requirement is needed. Example:\n            **Example:**\n            ```\n            $wgAutoConfirmCount = 50;\n            ```\n    Autopromote:\n        default:\n            autoconfirmed: [ \"&\", [ 1, null ], [ 2, null ] ]\n        type: object\n        description: |-\n            Array containing the conditions of automatic promotion of a user to specific groups.\n            The basic syntax for `$wgAutopromote` is:\n                $wgAutopromote = [\n                    'groupname' => cond,\n                    'group2' => cond2,\n                ];\n            A `cond` may be:\n             - a single condition without arguments:\n                 Note that Autopromote wraps a single non-array value into an array\n                 e.g. `APCOND_EMAILCONFIRMED` OR\n                      [ `APCOND_EMAILCONFIRMED` ]\n             - a single condition with arguments:\n                 e.g. `[ APCOND_EDITCOUNT, 100 ]`\n             - a set of conditions:\n                 e.g. `[ 'operand', cond1, cond2, ... ]`\n            When constructing a set of conditions, the following conditions are available:\n             - `&` (**AND**):\n                 promote if user matches **ALL** conditions\n             - `|` (**OR**):\n                 promote if user matches **ANY** condition\n             - `^` (**XOR**):\n                 promote if user matches **ONLY ONE OF THE CONDITIONS**\n             - `!` (**NOT**):\n                 promote if user matces **NO** condition\n             - [ APCOND_EMAILCONFIRMED ]:\n                 true if user has a confirmed e-mail\n             - [ APCOND_EDITCOUNT, number of edits (if null or missing $wgAutoConfirmCount will be used)]:\n                 true if user has the at least the number of edits as the passed parameter\n             - [ APCOND_AGE, seconds since registration (if null or missing $wgAutoConfirmAge will be used)]:\n                 true if the length of time since the user created their account\n                 is at least the same length of time as the passed parameter\n             - [ APCOND_AGE_FROM_EDIT, seconds since first edit ]:\n                 true if the length of time since the user made their first edit\n                 is at least the same length of time as the passed parameter\n             - [ APCOND_INGROUPS, group1, group2, ... ]:\n                 true if the user is a member of each of the passed groups\n             - [ APCOND_ISIP, ip ]:\n                 true if the user has the passed IP address\n             - [ APCOND_IPINRANGE, range ]:\n                 true if the user has an IP address in the range of the passed parameter\n             - [ APCOND_BLOCKED ]:\n                 true if the user is sitewide blocked\n             - [ APCOND_ISBOT ]:\n                 true if the user is a bot\n             - similar constructs can be defined by extensions\n            The sets of conditions are evaluated recursively, so you can use nested sets of conditions\n            linked by operands.\n            Note that if $wgEmailAuthentication is disabled, APCOND_EMAILCONFIRMED will be true for any\n            user who has provided an e-mail address.\n    AutopromoteOnce:\n        default:\n            onEdit: []\n        type: object\n        description: |-\n            Automatically add a usergroup to any user who matches certain conditions.\n            Does not add the user to the group again if it has been removed.\n            Also, does not remove the group if the user no longer meets the criteria.\n            The format is:\n            ```\n            [ event => criteria, ... ]\n            ```\n            The only recognised value for event is 'onEdit' (when the user edits).\n            Criteria has the same format as $wgAutopromote\n            @see self::Autopromote\n            @since 1.18\n    AutopromoteOnceLogInRC:\n        default: true\n        description: |-\n            Put user rights log entries for autopromotion in recent changes?\n            @since 1.18\n    AutopromoteOnceRCExcludedGroups:\n        default: []\n        type: array\n        description: |-\n            Defines a denylist of group names. One-shot autopromotions into these groups will not cause a\n            RecentChanges entry to be inserted even if AutopromoteOnceLogInRC is set, as long as they are the\n            only new groups the user was autopromoted to.\n            @since 1.44\n    AddGroups:\n        default: { }\n        type: object\n        mergeStrategy: array_merge_recursive\n        description: |-\n            $wgAddGroups and $wgRemoveGroups can be used to give finer control over who\n            can assign which groups at Special:Userrights.\n            **Example:**\n            Bureaucrats can add any group:\n            ```\n            $wgAddGroups['bureaucrat'] = true;\n            ```\n            Bureaucrats can only remove bots and sysops:\n            ```\n            $wgRemoveGroups['bureaucrat'] = [ 'bot', 'sysop' ];\n            ```\n            Sysops can make bots:\n            ```\n            $wgAddGroups['sysop'] = [ 'bot' ];\n            ```\n            Sysops can disable other sysops in an emergency, and disable bots:\n            ```\n            $wgRemoveGroups['sysop'] = [ 'sysop', 'bot' ];\n            ```\n    RemoveGroups:\n        default: { }\n        type: object\n        mergeStrategy: array_merge_recursive\n        description: \"@see self::AddGroups\"\n    AvailableRights:\n        default: []\n        type: array\n        items:\n            type: string\n        description: |-\n            A list of available rights, in addition to the ones defined by the core.\n            Rights in this list are denied unless explicitly granted, typically\n            using GroupPermissions.\n            For extensions only.\n            @see self::GroupPermissions\n            @see self::ImplicitRights\n    ImplicitRights:\n        default: []\n        type: array\n        items:\n            type: string\n        description: |-\n            A list of implicit rights, in addition to the ones defined by the core.\n            Rights in this list are granted implicitly to all users, but rate limits\n            may apply to them.\n            Extensions that define rate limits should add the corresponding right to\n            either ImplicitRights or AvailableRights, depending on whether the right\n            should be granted to everyone.\n            @since 1.41\n            @see self::RateLimits\n            @see self::AvailableRights\n    DeleteRevisionsLimit:\n        default: 0\n        description: |-\n            Optional to restrict deletion of pages with higher revision counts\n            to users with the 'bigdelete' permission. (Default given to sysops.)\n    DeleteRevisionsBatchSize:\n        default: 1000\n        description: |-\n            Page deletions with > this number of revisions will use the job queue.\n            Revisions will be archived in batches of (at most) this size, one batch per job.\n    HideUserContribLimit:\n        default: 1000\n        description: |-\n            The maximum number of edits a user can have and\n            can still be hidden by users with the hideuser permission.\n            This is limited for performance reason.\n            Set to false to disable the limit.\n            @since 1.23\n    AccountCreationThrottle:\n        default:\n            - { count: 0, seconds: 86400 }\n        type:\n            - integer\n            - array\n        description: |-\n            Number of accounts each IP address may create per specified period(s).\n            **Example:**\n            ```\n            $wgAccountCreationThrottle = [\n             // no more than 100 per month\n             [\n              'count' => 100,\n              'seconds' => 30*86400,\n             ],\n             // no more than 10 per day\n             [\n              'count' => 10,\n              'seconds' => 86400,\n             ],\n            ];\n            ```\n            @note For backwards compatibility reasons, this may also be given as a single\n                  integer, representing the number of account creations per day.\n            @see self::TempAccountCreationThrottle for the temporary accounts version of\n                  this throttle\n            @warning Requires $wgMainCacheType to be enabled\n    TempAccountCreationThrottle:\n        default:\n            - { count: 6, seconds: 86400 }\n        type: array\n        description: |-\n            Number of temporary accounts each IP address may create per specified period(s).\n            **Example:**\n            ```\n            $wgTempAccountCreationThrottle = [\n             // no more than 100 per month\n             [\n              'count' => 100,\n              'seconds' => 30*86400,\n             ],\n             // no more than 6 per day\n             [\n              'count' => 6,\n              'seconds' => 86400,\n             ],\n            ];\n            ```\n            @see self::AccountCreationThrottle for the regular account version of this throttle.\n            @warning Requires $wgMainCacheType to be enabled\n            @since 1.42\n    TempAccountNameAcquisitionThrottle:\n        default:\n            - { count: 60, seconds: 86400 }\n        type: array\n        description: |-\n            Number of temporary accounts usernames each IP address may acquire per specified period(s).\n            This should be set to a higher value than TempAccountCreationThrottle.\n            On editing, we first attempt to acquire a temp username before proceeding with saving an edit\n            and potentially creating a temp account if the edit save is successful.\n            Some edits may fail (due to core or extensions denying an edit); this throttle ensures that\n            there are limits to the number of temporary account names that can be acquired and stored in\n            the database.\n            **Example:**\n            ```\n            $wgTempAccountNameAcquisitionThrottle = [\n             // no more than 100 per month\n             [\n              'count' => 100,\n              'seconds' => 30*86400,\n             ],\n             // no more than 60 per day\n             [\n              'count' => 60,\n              'seconds' => 86400,\n             ],\n            ];\n            ```\n            @see self::TempAccountCreationThrottle Make sure that TempAccountNameAcquisitionThrottle is greater than or\n              equal to TempAccountCreationThrottle\n            @warning Requires $wgMainCacheType to be enabled\n            @since 1.42\n    SpamRegex:\n        default: []\n        type: array\n        description: |-\n            Edits matching these regular expressions in body text\n            will be recognised as spam and rejected automatically.\n            There's no administrator override on-wiki, so be careful what you set. :)\n            May be an array of regexes or a single string for backwards compatibility.\n            @see https://en.wikipedia.org/wiki/Regular_expression\n            @note Each regex needs a beginning/end delimiter, eg: # or /\n    SummarySpamRegex:\n        default: []\n        type: array\n        description: Same as SpamRegex except for edit summaries\n    EnableDnsBlacklist:\n        default: false\n        description: |-\n            Whether to use DNS blacklists in $wgDnsBlacklistUrls to check for open\n            proxies\n            @since 1.16\n    DnsBlacklistUrls:\n        default: []\n        type: array\n        description: |-\n            List of DNS blacklists to use, if $wgEnableDnsBlacklist is true.\n            This is an array of either a URL or an array with the URL and a key (should\n            the blacklist require a key).\n            **Example:**\n            ```\n            $wgDnsBlacklistUrls = [\n              // String containing URL\n              'http.dnsbl.sorbs.net.',\n              // Array with URL and key, for services that require a key\n              [ 'dnsbl.httpbl.net.', 'mykey' ],\n              // Array with just the URL. While this works, it is recommended that you\n              // just use a string as shown above\n              [ 'opm.tornevall.org.' ]\n            ];\n            ```\n            @note You should end the domain name with a . to avoid searching your\n            eventual domain search suffixes.\n            @since 1.16\n    ProxyList:\n        default: []\n        type:\n            - string\n            - array\n        description: |-\n            List of banned IP addresses.\n            This can have the following formats:\n            - An array of addresses\n            - A string, in which case this is the path to a file\n              containing the list of IP addresses, one per line\n    ProxyWhitelist:\n        default: []\n        type: array\n        description: |-\n            Proxy whitelist, list of addresses that are assumed to be non-proxy despite\n            what the other methods might say.\n    SoftBlockRanges:\n        default: []\n        type: array\n        items:\n            type: string\n        description: |-\n            IP ranges that should be considered soft-blocked (anon-only, account\n            creation allowed). The intent is to use this to prevent anonymous edits from\n            shared resources such as Wikimedia Labs.\n            @since 1.29\n    ApplyIpBlocksToXff:\n        default: false\n        description: |-\n            Whether to look at the X-Forwarded-For header's list of (potentially spoofed)\n            IPs and apply IP blocks to them. This allows for IP blocks to work with correctly-configured\n            (transparent) proxies without needing to block the proxies themselves.\n    RateLimits:\n        default:\n            edit: { ip: [ 8, 60 ], newbie: [ 8, 60 ], user: [ 90, 60 ] }\n            move: { newbie: [ 2, 120 ], user: [ 8, 60 ] }\n            upload: { ip: [ 8, 60 ], newbie: [ 8, 60 ] }\n            rollback: { user: [ 10, 60 ], newbie: [ 5, 120 ] }\n            mailpassword: { ip: [ 5, 3600 ] }\n            sendemail: { ip: [ 5, 86400 ], newbie: [ 5, 86400 ], user: [ 20, 86400 ] }\n            changeemail: { ip-all: [ 10, 3600 ], user: [ 4, 86400 ] }\n            confirmemail: { ip-all: [ 10, 3600 ], user: [ 4, 86400 ] }\n            purge: { ip: [ 30, 60 ], user: [ 30, 60 ] }\n            linkpurge: { ip: [ 30, 60 ], user: [ 30, 60 ] }\n            renderfile: { ip: [ 700, 30 ], user: [ 700, 30 ] }\n            renderfile-nonstandard: { ip: [ 70, 30 ], user: [ 70, 30 ] }\n            stashedit: { ip: [ 30, 60 ], newbie: [ 30, 60 ] }\n            stashbasehtml: { ip: [ 5, 60 ], newbie: [ 5, 60 ] }\n            changetags: { ip: [ 8, 60 ], newbie: [ 8, 60 ] }\n            editcontentmodel: { newbie: [ 2, 120 ], user: [ 8, 60 ] }\n        type: object\n        mergeStrategy: array_plus_2d\n        description: |-\n            Simple rate limiter options to brake edit floods.\n            Maximum number actions allowed in the given number of seconds; after that\n            the violating client receives HTTP 500 error pages until the period\n            elapses.\n            **Example:**\n            Limits per configured per action and then type of users.\n            ```\n            $wgRateLimits = [\n                'edit' => [\n                    'anon' => [ x, y ], // any and all anonymous edits (aggregate)\n                    'user' => [ x, y ], // each logged-in user\n                    'user-global' => [ x, y ], // per username, across all sites (assumes names are\n            global)\n                    'newbie' => [ x, y ], // each new autoconfirmed accounts; overrides 'user'\n                    'ip' => [ x, y ], // each anon and recent account, across all sites\n                    'subnet' => [ x, y ], // ... within a /24 subnet in IPv4 or /64 in IPv6\n                    'ip-all' => [ x, y ], // per ip, across all sites\n                    'subnet-all' => [ x, y ], // ... within a /24 subnet in IPv4 or /64 in IPv6\n                    'groupName' => [ x, y ], // by group membership\n                ]\n            ];\n            ```\n            **Normally, the 'noratelimit' right allows a user to bypass any rate**\n            limit checks. This can be disabled on a per-action basis by setting the\n            special '&can-bypass' key to false in that action's configuration.\n            ```\n            $wgRateLimits = [\n                'some-action' => [\n                    '&can-bypass' => false,\n                    'user' => [ x, y ],\n            ];\n            ```\n            @see self::ImplicitRights\n            @warning Requires that $wgMainCacheType is set to something persistent\n    RateLimitsExcludedIPs:\n        default: []\n        type: array\n        description: |-\n            Array of IPs / CIDR ranges which should be excluded from rate limits.\n            This may be useful for allowing NAT gateways for conferences, etc.\n    PutIPinRC:\n        default: true\n        description: |-\n            Log IP addresses in the recentchanges table; can be accessed only by\n            extensions (e.g. CheckUser) or a DB admin\n            Used for retroactive autoblocks\n    QueryPageDefaultLimit:\n        default: 50\n        description: |-\n            Integer defining default number of entries to show on\n            special pages which are query-pages such as Special:Whatlinkshere.\n    PasswordAttemptThrottle:\n        default:\n            - { count: 5, seconds: 300 }\n            - { count: 150, seconds: 172800 }\n        type: array\n        description: |-\n            Limit password attempts to X attempts per Y seconds per IP per account.\n            Value is an array of arrays. Each sub-array must have a key for count\n            (ie count of how many attempts before throttle) and a key for seconds.\n            If the key 'allIPs' (case sensitive) is present, then the limit is\n            just per account instead of per IP per account.\n            @since 1.27 allIps support and multiple limits added in 1.27. Prior\n            to 1.27 this only supported having a single throttle.\n            @warning Requires $wgMainCacheType to be enabled\n    GrantPermissions:\n        default:\n            basic: { autocreateaccount: true, autoconfirmed: true, autopatrol: true, editsemiprotected: true, ipblock-exempt: true, nominornewtalk: true, patrolmarks: true, read: true, unwatchedpages: true }\n            highvolume: { bot: true, apihighlimits: true, noratelimit: true, markbotedits: true }\n            import: { import: true, importupload: true }\n            editpage: { edit: true, minoredit: true, applychangetags: true, changetags: true, editcontentmodel: true, pagelang: true }\n            editprotected: { edit: true, minoredit: true, applychangetags: true, changetags: true, editcontentmodel: true, editprotected: true }\n            editmycssjs: { edit: true, minoredit: true, applychangetags: true, changetags: true, editcontentmodel: true, editmyusercss: true, editmyuserjson: true, editmyuserjs: true }\n            editmyoptions: { editmyoptions: true, editmyuserjson: true }\n            editinterface: { edit: true, minoredit: true, applychangetags: true, changetags: true, editcontentmodel: true, editinterface: true, edituserjson: true, editsitejson: true }\n            editsiteconfig: { edit: true, minoredit: true, applychangetags: true, changetags: true, editcontentmodel: true, editinterface: true, edituserjson: true, editsitejson: true, editusercss: true, edituserjs: true, editsitecss: true, editsitejs: true }\n            createeditmovepage: { edit: true, minoredit: true, applychangetags: true, changetags: true, editcontentmodel: true, createpage: true, createtalk: true, delete-redirect: true, move: true, move-rootuserpages: true, move-subpages: true, move-categorypages: true, suppressredirect: true }\n            uploadfile: { upload: true, reupload-own: true }\n            uploadeditmovefile: { upload: true, reupload-own: true, reupload: true, reupload-shared: true, upload_by_url: true, movefile: true, suppressredirect: true }\n            patrol: { patrol: true }\n            rollback: { rollback: true }\n            blockusers: { block: true, blockemail: true }\n            viewdeleted: { browsearchive: true, deletedhistory: true, deletedtext: true }\n            viewrestrictedlogs: { suppressionlog: true }\n            delete: { edit: true, minoredit: true, applychangetags: true, changetags: true, editcontentmodel: true, browsearchive: true, deletedhistory: true, deletedtext: true, delete: true, bigdelete: true, deletelogentry: true, deleterevision: true, undelete: true }\n            oversight: { suppressrevision: true, viewsuppressed: true }\n            protect: { edit: true, minoredit: true, applychangetags: true, changetags: true, editcontentmodel: true, editprotected: true, protect: true }\n            viewmywatchlist: { viewmywatchlist: true }\n            editmywatchlist: { editmywatchlist: true }\n            sendemail: { sendemail: true }\n            createaccount: { createaccount: true }\n            privateinfo: { viewmyprivateinfo: true }\n            mergehistory: { mergehistory: true }\n        type: object\n        mergeStrategy: array_plus_2d\n        additionalProperties:\n            type: object\n            additionalProperties: { type: boolean }\n        description: |-\n            Users authorize consumers (like Apps) to act on their behalf but only with\n            a subset of the user's normal account rights (signed off on by the user).\n            The possible rights to grant to a consumer are bundled into groups called\n            \"grants\". Each grant defines some rights it lets consumers inherit from the\n            account they may act on behalf of. Note that a user granting a right does\n            nothing if that user does not actually have that right to begin with.\n            @since 1.27\n    GrantPermissionGroups:\n        default:\n            basic: hidden\n            editpage: page-interaction\n            createeditmovepage: page-interaction\n            editprotected: page-interaction\n            patrol: page-interaction\n            uploadfile: file-interaction\n            uploadeditmovefile: file-interaction\n            sendemail: email\n            viewmywatchlist: watchlist-interaction\n            editviewmywatchlist: watchlist-interaction\n            editmycssjs: customization\n            editmyoptions: customization\n            editinterface: administration\n            editsiteconfig: administration\n            rollback: administration\n            blockusers: administration\n            delete: administration\n            viewdeleted: administration\n            viewrestrictedlogs: administration\n            protect: administration\n            oversight: administration\n            createaccount: administration\n            mergehistory: administration\n            import: administration\n            highvolume: high-volume\n            privateinfo: private-information\n        type: object\n        additionalProperties:\n            type: string\n        description: |-\n            Grant groups are used on some user interfaces to display conceptually\n            similar grants together.\n            This configuration value should usually be set by extensions, not\n            site administrators.\n            @see self::GrantPermissions\n            @since 1.27\n    GrantRiskGroups:\n        default:\n            basic: low\n            editpage: low\n            createeditmovepage: low\n            editprotected: vandalism\n            patrol: low\n            uploadfile: low\n            uploadeditmovefile: low\n            sendemail: security\n            viewmywatchlist: low\n            editviewmywatchlist: low\n            editmycssjs: security\n            editmyoptions: security\n            editinterface: vandalism\n            editsiteconfig: security\n            rollback: low\n            blockusers: vandalism\n            delete: vandalism\n            viewdeleted: vandalism\n            viewrestrictedlogs: security\n            protect: vandalism\n            oversight: security\n            createaccount: low\n            mergehistory: vandalism\n            import: security\n            highvolume: low\n            privateinfo: low\n        type: object\n        description: |-\n            Group grants by risk level. Keys are grant names (i.e. keys from GrantPermissions),\n            values are GrantsInfo::RISK_* constants.\n            Note that this classification is only informative; merely applying 'security' or 'internal'\n            to a grant won't prevent it from being available. It's used to give guidance to users\n            in various interfaces about the riskiness of the various grants.\n            @since 1.42\n    EnableBotPasswords:\n        default: true\n        type: boolean\n        description: \"@since 1.27\"\n    BotPasswordsCluster:\n        default: false\n        type:\n            - string\n            - boolean\n        description: |-\n            Cluster for the bot_passwords table\n            @since 1.27\n            @deprecated since 1.42 Use $wgVirtualDomainsMapping instead.\n    BotPasswordsDatabase:\n        default: false\n        type:\n            - string\n            - boolean\n        description: |-\n            Database name for the bot_passwords table\n            To use a database with a table prefix, set this variable to\n            \"{$database}-{$prefix}\".\n            @since 1.27\n            @deprecated since 1.42 Use $wgVirtualDomainsMapping instead.\n    SecretKey:\n        default: false\n        description: This should always be customised in LocalSettings.php\n    AllowUserJs:\n        default: false\n        description: |-\n            Allow user Javascript page?\n            This enables a lot of neat customizations, but may\n            increase security risk to users and server load.\n    AllowUserCss:\n        default: false\n        description: |-\n            Allow user Cascading Style Sheets (CSS)?\n            This enables a lot of neat customizations, but may\n            increase security risk to users and server load.\n    AllowUserCssPrefs:\n        default: true\n        description: |-\n            Allow style-related user-preferences?\n            This controls whether the `editfont` and `underline` preferences\n            are available to users.\n    UseSiteJs:\n        default: true\n        description: \"Use the site's Javascript page?\"\n    UseSiteCss:\n        default: true\n        description: \"Use the site's Cascading Style Sheets (CSS)?\"\n    BreakFrames:\n        default: false\n        description: |-\n            Break out of framesets. This can be used to prevent clickjacking attacks,\n            or to prevent external sites from framing your site with ads.\n    EditPageFrameOptions:\n        default: DENY\n        description: |-\n            The X-Frame-Options header to send on pages sensitive to clickjacking\n            attacks, such as edit pages. This prevents those pages from being displayed\n            in a frame or iframe. The options are:\n              - 'DENY': Do not allow framing. This is recommended for most wikis.\n              - 'SAMEORIGIN': Allow framing by pages on the same domain. This can be used\n                    to allow framing within a trusted domain. This is insecure if there\n                    is a page on the same domain which allows framing of arbitrary URLs.\n              - false: Allow all framing. This opens up the wiki to XSS attacks and thus\n                    full compromise of local user accounts. Private wikis behind a\n                    corporate firewall are especially vulnerable. This is not\n                    recommended.\n            For extra safety, set $wgBreakFrames = true, to prevent framing on all pages,\n            not just edit pages.\n    ApiFrameOptions:\n        default: DENY\n        description: |-\n            Disallow framing of API pages directly, by setting the X-Frame-Options\n            header. Since the API returns CSRF tokens, allowing the results to be\n            framed can compromise your user's account security.\n            Options are:\n              - 'DENY': Do not allow framing. This is recommended for most wikis.\n              - 'SAMEORIGIN': Allow framing by pages on the same domain.\n              - false: Allow all framing.\n            Note: $wgBreakFrames will override this for human formatted API output.\n    CSPHeader:\n        default: false\n        type:\n            - boolean\n            - object\n        description: |-\n            Controls Content-Security-Policy header\n            @warning May cause slowness on Windows due to slow random number generator.\n            @unstable EXPERIMENTAL\n            @since 1.32\n            @see https://www.w3.org/TR/CSP2/\n    CSPReportOnlyHeader:\n        default: false\n        type:\n            - boolean\n            - object\n        description: |-\n            Controls Content-Security-Policy-Report-Only header\n            @since 1.32\n    CSPFalsePositiveUrls:\n        default:\n            \"https://3hub.co\": true\n            \"https://morepro.info\": true\n            \"https://p.ato.mx\": true\n            \"https://s.ato.mx\": true\n            \"https://adserver.adtech.de\": true\n            \"https://ums.adtechus.com\": true\n            \"https://cas.criteo.com\": true\n            \"https://cat.nl.eu.criteo.com\": true\n            \"https://atpixel.alephd.com\": true\n            \"https://rtb.metrigo.com\": true\n            \"https://d5p.de17a.com\": true\n            \"https://ad.lkqd.net/vpaid/vpaid.js\": true\n            \"https://ad.lkqd.net/vpaid/vpaid.js?fusion=1.0\": true\n            \"https://t.lkqd.net/t\": true\n            chrome-extension: true\n        type: object\n        description: |-\n            List of urls which appear often to be triggering CSP reports\n            but do not appear to be caused by actual content, but by client\n            software inserting scripts (i.e. Ad-Ware).\n            List based on results from Wikimedia logs.\n            @since 1.28\n    AllowCrossOrigin:\n        default: false\n        type: boolean\n        description: |-\n            Allow anonymous cross origin requests to the REST API.\n            This should be disabled for intranet sites (sites behind a firewall).\n            @since 1.36\n    RestAllowCrossOriginCookieAuth:\n        default: false\n        type: boolean\n        description: |-\n            Allows authenticated cross-origin requests to the REST API with session cookies.\n            With this option enabled, any origin specified in $wgCrossSiteAJAXdomains may send session\n            cookies for authorization in the REST API.\n            There is a performance impact by enabling this option. Therefore, it should be left disabled\n            for most wikis and clients should instead use OAuth to make cross-origin authenticated\n            requests.\n            @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials\n            @since 1.36\n    SessionSecret:\n        default: false\n        description: |-\n            Secret for session storage.\n            This should be set in LocalSettings.php, otherwise $wgSecretKey will\n            be used.\n            @since 1.27\n    CookieExpiration:\n        default: 2592000\n        description: \"Default cookie lifetime, in seconds. Setting to 0 makes all cookies session-only.\"\n    ExtendedLoginCookieExpiration:\n        default: 15552000\n        description: |-\n            Default login cookie lifetime, in seconds. Setting\n            $wgExtendLoginCookieExpiration to null will use $wgCookieExpiration to\n            calculate the cookie lifetime. As with $wgCookieExpiration, 0 will make\n            login cookies session-only.\n    CookieDomain:\n        default: \"\"\n        description: |-\n            Set to set an explicit domain on the login cookies eg, \"justthis.domain.org\"\n            or \".any.subdomain.net\"\n    CookiePath:\n        default: /\n        description: |-\n            Set this variable if you want to restrict cookies to a certain path within\n            the domain specified by $wgCookieDomain.\n    CookieSecure:\n        default: detect\n        dynamicDefault:\n            use: [ ForceHTTPS ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultCookieSecure ]\n        description: |-\n            Whether the \"secure\" flag should be set on the cookie. This can be:\n              - true:      Set secure flag\n              - false:     Don't set secure flag\n              - \"detect\":  Set the secure flag if $wgServer is set to an HTTPS URL,\n                           or if $wgForceHTTPS is true.\n            If $wgForceHTTPS is true, session cookies will be secure regardless of this\n            setting. However, other cookies will still be affected.\n    CookiePrefix:\n        default: false\n        dynamicDefault:\n            use: [ SharedDB, SharedPrefix, SharedTables, DBname, DBprefix ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultCookiePrefix ]\n        description: |-\n            Cookies generated by MediaWiki have names starting with this prefix. Set it\n            to a string to use a custom prefix. Setting it to false causes the database\n            name to be used as a prefix.\n    CookieHttpOnly:\n        default: true\n        description: |-\n            Set authentication cookies to HttpOnly to prevent access by JavaScript,\n            in browsers that support this feature. This can mitigates some classes of\n            XSS attack.\n    CookieSameSite:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            The SameSite cookie attribute used for login cookies. This can be \"Lax\",\n            \"Strict\", \"None\" or empty/null to omit the attribute.\n            This only applies to login cookies, since the correct value for other\n            cookies depends on what kind of cookie it is.\n            @since 1.35\n    CacheVaryCookies:\n        default: []\n        type: array\n        description: A list of cookies that vary the cache (for use by extensions)\n    SessionName:\n        default: false\n        description: Override to customise the session name\n    CookieSetOnAutoblock:\n        default: true\n        description: |-\n            Whether to set a cookie when a user is autoblocked. Doing so means that a blocked user, even\n            after logging out and moving to a new IP address, will still be blocked. This cookie will\n            contain an authentication code if $wgSecretKey is set, or otherwise will just be the block\n            ID (in which case there is a possibility of an attacker discovering the names of revdeleted\n            users, so it is best to use this in conjunction with $wgSecretKey being set).\n    CookieSetOnIpBlock:\n        default: true\n        description: |-\n            Whether to set a cookie when a logged-out user is blocked. Doing so means that a blocked\n            user, even after moving to a new IP address, will still be blocked. This cookie will contain\n            an authentication code if $wgSecretKey is set, or otherwise will just be the block ID (in\n            which case there is a possibility of an attacker discovering the names of revdeleted users,\n            so it is best to use this in conjunction with $wgSecretKey being set).\n    DebugLogFile:\n        default: \"\"\n        description: |-\n            Enable verbose debug logging for all channels and log levels.\n            See https://www.mediawiki.org/wiki/How_to_debug\n            For static requests, this enables all channels and warning-level and\n            above only. Use $wgDebugRawPage to make those verbose as well.\n            The debug log file should be not be web-accessible if it is used in\n            a production environment, as may contain private data.\n    DebugLogPrefix:\n        default: \"\"\n        description: Prefix for debug log lines\n    DebugRedirects:\n        default: false\n        description: |-\n            If true, instead of redirecting, show a page with a link to the redirect\n            destination. This allows for the inspection of PHP error messages, and easy\n            resubmission of form data. For developer use only.\n    DebugRawPage:\n        default: false\n        description: |-\n            If true, debug logging is also enabled for load.php and action=raw requests.\n            By default, $wgDebugLogFile enables all channels and warning-level and\n            above for static requests.\n            This ensures that the debug log is likely a chronological record of\n            of specific web request you are debugging, instead of overlapping with\n            messages from static requests, which would make it unclear which message\n            originated from what request.\n            Also, during development this can make browsing and JavaScript testing\n            considerably slower (T85805).\n    DebugComments:\n        default: false\n        description: |-\n            Send debug data to an HTML comment in the output.\n            This may occasionally be useful when supporting a non-technical end-user.\n            It's more secure than exposing the debug log file to the web, since the\n            output only contains private data for the current user. But it's not ideal\n            for development use since data is lost on fatal errors and redirects.\n    DebugDumpSql:\n        default: false\n        description: |-\n            Write SQL queries to the debug log.\n            This setting is only used $wgLBFactoryConf['class'] is set to\n            '\\Wikimedia\\Rdbms\\LBFactorySimple'; otherwise the DBO_DEBUG flag must be set in\n            the 'flags' option of the database connection to achieve the same functionality.\n    TrxProfilerLimits:\n        default:\n            GET: { masterConns: 0, writes: 0, readQueryTime: 5, readQueryRows: 10000 }\n            POST: { readQueryTime: 5, writeQueryTime: 1, readQueryRows: 100000, maxAffected: 1000 }\n            POST-nonwrite: { writes: 0, readQueryTime: 5, readQueryRows: 10000 }\n            PostSend-GET: { readQueryTime: 5, writeQueryTime: 1, readQueryRows: 10000, maxAffected: 1000, masterConns: 0, writes: 0 }\n            PostSend-POST: { readQueryTime: 5, writeQueryTime: 1, readQueryRows: 100000, maxAffected: 1000 }\n            JobRunner: { readQueryTime: 30, writeQueryTime: 5, readQueryRows: 100000, maxAffected: 500 }\n            Maintenance: { writeQueryTime: 5, maxAffected: 1000 }\n        type: object\n        description: |-\n            Performance expectations for DB usage\n            @since 1.26\n    DebugLogGroups:\n        default: { }\n        type: object\n        description: |-\n            Map of string log group names to log destinations.\n            If set, wfDebugLog() output for that group will go to that file instead\n            of the regular $wgDebugLogFile. Useful for enabling selective logging\n            in production.\n            Log destinations may be one of the following:\n            - false to completely remove from the output, including from $wgDebugLogFile.\n            - string values specifying a filename or URI.\n            - associative array with keys:\n              - 'destination' desired filename or URI.\n              - 'sample' an integer value, specifying a sampling factor (optional)\n              - 'level' A \\Psr\\Log\\LogLevel constant, indicating the minimum level\n                        to log (optional, since 1.25)\n            **Example:**\n            ```\n            $wgDebugLogGroups['redis'] = '/var/log/mediawiki/redis.log';\n            ```\n            **Advanced example:**\n            ```\n            $wgDebugLogGroups['memcached'] = [\n                'destination' => '/var/log/mediawiki/memcached.log',\n                'sample' => 1000,  // log 1 message out of every 1,000.\n                'level' => \\Psr\\Log\\LogLevel::WARNING\n            ];\n            ```\n    MWLoggerDefaultSpi:\n        default:\n            class: MediaWiki\\Logger\\LegacySpi\n        mergeStrategy: replace\n        type: object\n        description: |-\n            Default service provider for creating Psr\\Log\\LoggerInterface instances.\n            The value should be an array suitable for use with\n            ObjectFactory::getObjectFromSpec(). The created object is expected to\n            implement the MediaWiki\\Logger\\Spi interface. See ObjectFactory for additional\n            details.\n            Alternately the MediaWiki\\Logger\\LoggerFactory::registerProvider method can\n            be called to inject an MediaWiki\\Logger\\Spi instance into the LoggerFactory\n            and bypass the use of this configuration variable entirely.\n            **To completely disable logging:**\n            ```\n            $wgMWLoggerDefaultSpi = [ 'class' => \\MediaWiki\\Logger\\NullSpi::class ];\n            ```\n            @since 1.25\n            @see \\MwLogger\n    ShowDebug:\n        default: false\n        description: |-\n            Display debug data at the bottom of the main content area.\n            Useful for developers and technical users trying to working on a closed wiki.\n    SpecialVersionShowHooks:\n        default: false\n        description: \"Show the contents of $wgHooks in Special:Version\"\n    ShowExceptionDetails:\n        default: false\n        description: |-\n            Show exception message and stack trace when printing details about uncaught exceptions\n            in web response output.\n            This may reveal private information in error messages or function parameters.\n            If set to false, only the exception type or class name will be exposed.\n    LogExceptionBacktrace:\n        default: true\n        description: \"If true, send the exception backtrace to the error log\"\n    PropagateErrors:\n        default: true\n        description: |-\n            If true, the MediaWiki error handler passes errors/warnings to the default error handler\n            after logging them. The setting is ignored when the track_errors php.ini flag is true.\n    ShowHostnames:\n        default: false\n        description: Expose backend server host names through the API and various HTML comments\n    OverrideHostname:\n        default: false\n        description: |-\n            Override server hostname detection with a hardcoded value.\n            Should be a string, default false.\n            @since 1.20\n    DevelopmentWarnings:\n        default: false\n        description: |-\n            If set to true MediaWiki will throw notices for some possible error\n            conditions and for deprecated functions.\n    DeprecationReleaseLimit:\n        default: false\n        description: |-\n            Release limitation to wfDeprecated warnings, if set to a release number\n            development warnings will not be generated for deprecations added in releases\n            after the limit.\n    Profiler:\n        default: { }\n        type: object\n        mergeStrategy: replace\n        description: |-\n            Profiler configuration.\n            To use a profiler, set $wgProfiler in LocalSettings.php.\n            Options:\n            - 'class' (`string`): The Profiler subclass to use.\n              Default: ProfilerStub.\n            - 'sampling' (`integer`): Only enable the profiler on one in this many requests.\n              For requests that are not in the sampling,\n              the 'class' option will be replaced with ProfilerStub.\n              Default: `1`.\n            - 'threshold' (`float`): Only process the recorded data if the total elapsed\n              time for a request is more than this number of seconds.\n              Default: `0.0`.\n            - 'output' (`string|string[]`):  ProfilerOutput subclass or subclasess to use.\n              Default: `[]`.\n            The options array is passed in its entirety to the specified\n            Profiler `class`. Check individual Profiler subclasses for additional\n            options that may be available.\n            Profiler subclasses available in MediaWiki core:\n            - ProfilerXhprof: Based on XHProf or Tideways-XHProf.\n            - ProfilerExcimer: Based on Excimer.\n            - ProfilerSectionOnly\n            Profiler output classes available in MediaWiki:\n            - ProfilerOutputText: outputs profiling data in the web page body as\n              a comment.  You can make the profiling data in HTML render visibly\n              instead by setting the 'visible' configuration flag.\n            - ProfilerOutputStats: outputs profiling data in a format as configured\n              by $wgStatsFormat. It expects that $wgStatsTarget is set.\n            - ProfilerOutputDump: outputs dump files that are compatible\n              with the XHProf gui. It expects that `$wgProfiler['outputDir']`\n              is set as well.\n            Examples:\n            ```\n            $wgProfiler = [\n              'class' => ProfilerXhprof::class,\n              'output' => ProfilerOutputText::class,\n            ];\n            ```\n            ```\n            $wgProfiler = [\n              'class' => ProfilerXhprof::class,\n              'output' => [ ProfilerOutputText::class ],\n              'sampling' => 50, // one in every 50 requests\n            ];\n            ```\n            For performance, the profiler is always disabled for CLI scripts as they\n            could be long running and the data would accumulate. Use the `--profiler`\n            parameter of maintenance scripts to override this.\n            @since 1.17.0\n    StatsdServer:\n        default: false\n        description: |-\n            Destination of statsd metrics.\n            A host or host:port of a statsd server. Port defaults to 8125.\n            If not set, statsd metrics will not be collected.\n            @see MediaWiki::emitBufferedStats()\n            @since 1.25\n    StatsdMetricPrefix:\n        default: MediaWiki\n        description: |-\n            Prefix for metric names sent to $wgStatsdServer.\n            @see \\MediaWiki\\MediaWikiServices::getInstance()->getStatsdDataFactory\n            @see \\Wikimedia\\Stats\\BufferingStatsdDataFactory\n            @since 1.25\n    StatsTarget:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Stats output target URI e.g. udp://127.0.0.1:8125\n            If null, metrics will not be sent.\n            Note: this only affects metrics instantiated by the StatsFactory service\n            @since 1.38\n    StatsFormat:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Stats output format\n            If null, metrics will not be rendered nor sent.\n            Note: this only affects metrics instantiated by the StatsFactory service\n            @see \\Wikimedia\\Stats\\OutputFormats::SUPPORTED_FORMATS\n            @since 1.41\n    StatsPrefix:\n        default: mediawiki\n        type: string\n        description: |-\n            Stats service name prefix\n            Required.  Must not be zero-length.\n            Defaults to: 'mediawiki'\n            Note: this only affects metrics instantiated by the StatsFactory service\n            @since 1.41\n    OpenTelemetryConfig:\n        default: null\n        type:\n            - object\n            - \"null\"\n        description: |-\n            Configuration for OpenTelemetry instrumentation, or `null` to disable it.\n            Possible keys:\n            - `samplingProbability`: probability in % of sampling a trace for which no sampling decision has been\n            taken yet. Must be between 0 and 100.\n            - `serviceName`: name of the service being instrumented.\n            - `endpoint`: URL of the OpenTelemetry collector to send trace data to.\n            This has to be an endpoint accepting OTLP data over HTTP (not gRPC).\n            An example config to send data to a local OpenTelemetry or Jaeger collector instance:\n            ```\n            $wgOpenTelemetryConfig = [\n             'samplingProbability' => 0.1,\n             'serviceName' => 'mediawiki-local',\n             'endpoint' => 'http://127.0.0.1:4318/v1/traces',\n            ];\n            ```\n            @since 1.43\n    PageInfoTransclusionLimit:\n        default: 50\n        description: |-\n            InfoAction retrieves a list of transclusion links (both to and from).\n            This number puts a limit on that query in the case of highly transcluded\n            templates.\n    EnableJavaScriptTest:\n        default: false\n        description: \"Allow running of QUnit tests via [[Special:JavaScriptTest]].\"\n    CachePrefix:\n        default: false\n        description: |-\n            Overwrite the caching key prefix with custom value.\n            @since 1.19\n    DebugToolbar:\n        default: false\n        description: |-\n            Display the new debugging toolbar. This also enables profiling on database\n            queries and other useful output.\n            Will be ignored if $wgUseFileCache or $wgUseCdn is enabled.\n            @since 1.19\n    DisableTextSearch:\n        default: false\n        description: Set this to true to disable the full text search feature.\n    AdvancedSearchHighlighting:\n        default: false\n        description: |-\n            Set to true to have nicer highlighted text in search results,\n            by default off due to execution overhead\n    SearchHighlightBoundaries:\n        default: '[\\p{Z}\\p{P}\\p{C}]'\n        description: |-\n            Regexp to match word boundaries, defaults for non-CJK languages\n            should be empty for CJK since the words are not separate\n    OpenSearchTemplates:\n        default:\n            application/x-suggestions+json: false\n            application/x-suggestions+xml: false\n        type: object\n        description: |-\n            Templates for OpenSearch suggestions, defaults to API action=opensearch\n            Sites with heavy load would typically have these point to a custom\n            PHP wrapper to avoid firing up mediawiki for every keystroke\n            Placeholders: {searchTerms}\n    OpenSearchDefaultLimit:\n        default: 10\n        description: |-\n            Integer defining default number of entries to show on\n            OpenSearch call.\n    OpenSearchDescriptionLength:\n        default: 100\n        description: |-\n            Minimum length of extract in <Description>. Actual extracts will last until the end of\n            sentence.\n    SearchSuggestCacheExpiry:\n        default: 1200\n        description: Expiry time for search suggestion responses\n    DisableSearchUpdate:\n        default: false\n        description: |-\n            If you've disabled search semi-permanently, this also disables updates to the\n            table. If you ever re-enable, be sure to rebuild the search table.\n    NamespacesToBeSearchedDefault:\n        default:\n            - true\n        type: object\n        description: |-\n            List of namespaces which are searched by default.\n            **Example:**\n            ```\n            $wgNamespacesToBeSearchedDefault[NS_MAIN] = true;\n            $wgNamespacesToBeSearchedDefault[NS_PROJECT] = true;\n            ```\n    DisableInternalSearch:\n        default: false\n        description: |-\n            Disable the internal MySQL-based search, to allow it to be\n            implemented by an extension instead.\n    SearchForwardUrl:\n        default: null\n        description: |-\n            Set this to a URL to forward search requests to some external location.\n            If the URL includes '$1', this will be replaced with the URL-encoded\n            search term. Before using this, $wgDisableTextSearch must be set to true.\n            **Example:**\n            To forward to Google you'd have something like:\n            ```\n            $wgSearchForwardUrl =\n            'https://www.google.com/search?q=$1' .\n            '&domains=https://example.com' .\n            '&sitesearch=https://example.com' .\n            '&ie=utf-8&oe=utf-8';\n            ```\n    SitemapNamespaces:\n        default: false\n        type:\n            - boolean\n            - array\n        description: |-\n            Array of namespaces to generate a Google sitemap for when the\n            maintenance/generateSitemap.php script is run, or false if one is to be\n            generated for all namespaces.\n    SitemapNamespacesPriorities:\n        default: false\n        type:\n            - boolean\n            - object\n        description: |-\n            Custom namespace priorities for sitemaps. Setting this will allow you to\n            set custom priorities to namespaces when sitemaps are generated using the\n            maintenance/generateSitemap.php script.\n            This should be a map of namespace IDs to priority\n            **Example:**\n            ```\n            $wgSitemapNamespacesPriorities = [\n                NS_USER => '0.9',\n                NS_HELP => '0.0',\n            ];\n            ```\n    EnableSearchContributorsByIP:\n        default: true\n        description: |-\n            If true, searches for IP addresses will be redirected to that IP's\n            contributions page. E.g. searching for \"1.2.3.4\" will redirect to\n            [[Special:Contributions/1.2.3.4]]\n    SpecialSearchFormOptions:\n        default: { }\n        type: object\n        description: |-\n            Options for Special:Search completion widget form created by SearchFormWidget class.\n            Settings that can be used:\n            - showDescriptions: true/false - whether to show opensearch description results\n            - performSearchOnClick:  true/false - whether to perform search on click\n            See also TitleWidget.js UI widget.\n            @since 1.34\n    SearchMatchRedirectPreference:\n        default: false\n        type: boolean\n        description: |-\n            Set true to allow logged-in users to set a preference whether or not matches in\n            search results should force redirection to that page. If false, the preference is\n            not exposed and cannot be altered from site default. To change your site's default\n            preference, set via $wgDefaultUserOptions['search-match-redirect'].\n            @since 1.35\n    SearchRunSuggestedQuery:\n        default: true\n        type: boolean\n        description: |-\n            Controls whether zero-result search queries with suggestions should display results for\n            these suggestions.\n            @since 1.26\n    Diff3:\n        default: /usr/bin/diff3\n        description: |-\n            Path to the GNU diff3 utility. If the file doesn't exist, edit conflicts will\n            fall back to the old behavior (no merging).\n    Diff:\n        default: /usr/bin/diff\n        description: Path to the GNU diff utility.\n    PreviewOnOpenNamespaces:\n        default:\n            14: true\n        type: object\n        description: |-\n            Which namespaces have special treatment where they should be preview-on-open\n            Internally only Category: pages apply, but using this extensions (e.g. Semantic MediaWiki)\n            can specify namespaces of pages they have special treatment for\n    UniversalEditButton:\n        default: true\n        description: |-\n            Enable the UniversalEditButton for browsers that support it\n            (currently only Firefox with an extension)\n            See http://universaleditbutton.org for more background information\n    UseAutomaticEditSummaries:\n        default: true\n        description: |-\n            If user doesn't specify any edit summary when making a an edit, MediaWiki\n            will try to automatically create one. This feature can be disabled by set-\n            ting this variable false.\n    CommandLineDarkBg:\n        default: false\n        description: \"For colorized maintenance script output, is your terminal background dark ?\"\n    ReadOnly:\n        default: null\n        description: |-\n            Set this to a string to put the wiki into read-only mode. The text will be\n            used as an explanation to users.\n            This prevents most write operations via the web interface. Cache updates may\n            still be possible. To prevent database writes completely, use the read_only\n            option in MySQL.\n    ReadOnlyWatchedItemStore:\n        default: false\n        type: boolean\n        description: |-\n            Set this to true to put the wiki watchlists into read-only mode.\n            @since 1.31\n    ReadOnlyFile:\n        default: false\n        dynamicDefault:\n            use: [ UploadDirectory ]\n            callback: [ MediaWiki\\MainConfigSchema, getDefaultReadOnlyFile ]\n        description: |-\n            If this lock file exists (size > 0), the wiki will be forced into read-only mode.\n            Its contents will be shown to users as part of the read-only warning\n            message.\n            Will default to \"{$wgUploadDirectory}/lock_yBgMBwiR\" in Setup.php\n    UpgradeKey:\n        default: false\n        description: |-\n            When you run the web-based upgrade utility, it will tell you what to set\n            this to in order to authorize the upgrade process. It will subsequently be\n            used as a password, to authorize further upgrades.\n            For security, do not set this to a guessable string. Use the value supplied\n            by the install/upgrade process. To cause the upgrader to generate a new key,\n            delete the old key from LocalSettings.php.\n    GitBin:\n        default: /usr/bin/git\n        description: Fully specified path to git binary\n    GitRepositoryViewers:\n        default:\n            \"https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)\": \"https://gerrit.wikimedia.org/g/%R/+/%H\"\n            \"ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)\": \"https://gerrit.wikimedia.org/g/%R/+/%H\"\n        type: object\n        description: |-\n            Map GIT repository URLs to viewer URLs to provide links in Special:Version\n            Key is a pattern passed to preg_match() and preg_replace(),\n            without the delimiters (which are #) and must match the whole URL.\n            The value is the replacement for the key (it can contain $1, etc.)\n            %h will be replaced by the short SHA-1 (7 first chars) and %H by the\n            full SHA-1 of the HEAD revision.\n            %r will be replaced with a URL-encoded version of $1.\n            %R will be replaced with $1 and no URL-encoding\n            @since 1.20\n    InstallerInitialPages:\n        default:\n            - { titlemsg: mainpage, text: \"{{subst:int:mainpagetext}}\\n\\n{{subst:int:mainpagedocfooter}}\" }\n        type: array\n        description: |-\n            Initial content to create when installing a wiki. An array of page info\n            arrays. Each must contain at least one of:\n              - title: The title to create (string)\n              - titlemsg: The name of a message to read the title from\n            And one of:\n              - text: The text to write to the page (string)\n              - textmsg: The name of a message to read the page contents from\n            The text may contain\n              - {{InstallerOption:<name>}}: This will be replaced with the named option value\n              - {{InstallerConfig:<name>}}: This will be replaced with the named config value\n            @see \\InstallPreConfigured\n            @since 1.44\n    RCMaxAge:\n        default: 7776000\n        description: |-\n            Recentchanges items are periodically purged; entries older than this many\n            seconds will go.\n            Default: 90 days = about three months\n    WatchersMaxAge:\n        default: 15552000\n        description: |-\n            Page watchers inactive for more than this many seconds are considered inactive.\n            Used mainly by action=info. Default: 180 days = about six months.\n            @since 1.26\n    UnwatchedPageSecret:\n        default: 1\n        description: |-\n            If active watchers (per above) are this number or less, do not disclose it.\n            Left to 1, prevents unprivileged users from knowing for sure that there are 0.\n            Set to -1 if you want to always complement watchers count with this info.\n            @since 1.26\n    RCFilterByAge:\n        default: false\n        description: |-\n            Filter $wgRCLinkDays by $wgRCMaxAge to avoid showing links for numbers\n            higher than what will be stored. Note that this is disabled by default\n            because we sometimes do have RC data which is beyond the limit for some\n            reason, and some users may use the high numbers to display that data which\n            is still there.\n    RCLinkLimits:\n        default:\n            - 50\n            - 100\n            - 250\n            - 500\n        type: array\n        description: |-\n            List of Limits options to list in the Special:Recentchanges and\n            Special:Recentchangeslinked pages.\n    RCLinkDays:\n        default:\n            - 1\n            - 3\n            - 7\n            - 14\n            - 30\n        type: array\n        description: |-\n            List of Days options to list in the Special:Recentchanges and\n            Special:Recentchangeslinked pages.\n            @see \\MediaWiki\\SpecialPage\\ChangesListSpecialPage::getLinkDays\n    RCFeeds:\n        default: { }\n        type: object\n        description: |-\n            Configuration for feeds to which notifications about recent changes will be sent.\n            The following feed classes are available by default:\n            - 'UDPRCFeedEngine' - sends recent changes over UDP to the specified server.\n            - 'RedisPubSubFeedEngine' - send recent changes to Redis.\n            Only 'class' or 'uri' is required. If 'uri' is set instead of 'class', then\n            RecentChange::getEngine() is used to determine the class. All options are\n            passed to the constructor.\n            Common options:\n            - 'class' -- The class to use for this feed (must implement RCFeed).\n            - 'omit_bots' -- Exclude bot edits from the feed. (default: false)\n            - 'omit_anon' -- Exclude anonymous edits from the feed. (default: false)\n            - 'omit_user' -- Exclude edits by registered users from the feed. (default: false)\n            - 'omit_minor' -- Exclude minor edits from the feed. (default: false)\n            - 'omit_patrolled' -- Exclude patrolled edits from the feed. (default: false)\n            FormattedRCFeed-specific options:\n            - 'uri' -- [required] The address to which the messages are sent.\n              The uri scheme of this string will be looked up in $wgRCEngines\n              to determine which FormattedRCFeed class to use.\n            - 'formatter' -- [required] The class (implementing RCFeedFormatter) which will\n              produce the text to send. This can also be an object of the class.\n              Formatters available by default: JSONRCFeedFormatter, XMLRCFeedFormatter,\n              IRCColourfulRCFeedFormatter.\n            IRCColourfulRCFeedFormatter-specific options:\n            - 'add_interwiki_prefix' -- whether the titles should be prefixed with\n              the first entry in the $wgLocalInterwikis array\n            JSONRCFeedFormatter-specific options:\n            - 'channel' -- if set, the 'channel' parameter is also set in JSON values.\n            **Examples:**\n            ```\n            $wgRCFeeds['example'] = [\n                'uri' => 'udp://localhost:1336',\n                'formatter' => 'JSONRCFeedFormatter',\n                'add_interwiki_prefix' => false,\n                'omit_bots' => true,\n            ];\n            ```\n            ```\n            $wgRCFeeds['example'] = [\n                'uri' => 'udp://localhost:1338',\n                'formatter' => 'IRCColourfulRCFeedFormatter',\n                'add_interwiki_prefix' => false,\n                'omit_bots' => true,\n            ];\n            ```\n            ```\n            $wgRCFeeds['example'] = [\n                'class' => ExampleRCFeed::class,\n            ];\n            ```\n            @since 1.22\n    RCEngines:\n        default:\n            redis: MediaWiki\\RCFeed\\RedisPubSubFeedEngine\n            udp: MediaWiki\\RCFeed\\UDPRCFeedEngine\n        type: object\n        description: |-\n            Used by RecentChange::getEngine to find the correct engine for a given URI scheme.\n            Keys are scheme names, values are names of FormattedRCFeed sub classes.\n            @since 1.22\n    RCWatchCategoryMembership:\n        default: false\n        description: |-\n            Treat category membership changes as a RecentChange.\n            Changes are mentioned in RC for page actions as follows:\n            - creation: pages created with categories are mentioned\n            - edit: category additions/removals to existing pages are mentioned\n            - move: nothing is mentioned (unless templates used depend on the title)\n            - deletion: nothing is mentioned\n            - undeletion: nothing is mentioned\n            @since 1.27\n    UseRCPatrol:\n        default: true\n        description: |-\n            Use RC Patrolling to check for vandalism (from recent changes and watchlists)\n            New pages and new files are included.\n            @note If you disable all patrolling features, you probably also want to\n            remove 'patrol' from $wgFilterLogTypes so a show/hide link isn't shown on\n            Special:Log.\n    StructuredChangeFiltersLiveUpdatePollingRate:\n        default: 3\n        description: |-\n            Polling rate, in seconds, used by the 'live update' and 'view newest' features\n            of the RCFilters app on SpecialRecentChanges and Special:Watchlist.\n            0 to disable completely.\n    UseNPPatrol:\n        default: true\n        description: |-\n            Use new page patrolling to check new pages on Special:Newpages\n            @note If you disable all patrolling features, you probably also want to\n            remove 'patrol' from $wgFilterLogTypes so a show/hide link isn't shown on\n            Special:Log.\n    UseFilePatrol:\n        default: true\n        description: |-\n            Use file patrolling to check new files on Special:Newfiles\n            @note If you disable all patrolling features, you probably also want to\n            remove 'patrol' from $wgFilterLogTypes so a show/hide link isn't shown on\n            Special:Log.\n            @since 1.27\n    Feed:\n        default: true\n        description: \"Provide syndication feeds (RSS, Atom) for, e.g., Recentchanges, Newpages\"\n    FeedLimit:\n        default: 50\n        description: |-\n            Set maximum number of results to return in syndication feeds (RSS, Atom) for\n            eg Recentchanges, Newpages.\n    FeedCacheTimeout:\n        default: 60\n        description: |-\n            _Minimum_ timeout for cached Recentchanges feed, in seconds.\n            A cached version will continue to be served out even if changes\n            are made, until this many seconds runs out since the last render.\n            If set to 0, feed caching is disabled. Use this for debugging only;\n            feed generation can be pretty slow with diffs.\n    FeedDiffCutoff:\n        default: 32768\n        description: |-\n            When generating Recentchanges RSS/Atom feed, diffs will not be generated for\n            pages larger than this size.\n    OverrideSiteFeed:\n        default: { }\n        type: object\n        description: |-\n            Override the site's default RSS/ATOM feed for recentchanges that appears on\n            every page. Some sites might have a different feed they'd like to promote\n            instead of the RC feed (maybe like a \"Recent New Articles\" or \"Breaking news\" one).\n            Should be a format as key (either 'rss' or 'atom') and an URL to the feed\n            as value.\n            **Example:**\n            Configure the 'atom' feed to https://example.com/somefeed.xml\n            ```\n            $wgSiteFeed['atom'] = \"https://example.com/somefeed.xml\";\n            ```\n    FeedClasses:\n        default:\n            rss: MediaWiki\\Feed\\RSSFeed\n            atom: MediaWiki\\Feed\\AtomFeed\n        type: object\n        description: |-\n            Available feeds objects.\n            Should probably only be defined when a page is syndicated ie when\n            $wgOut->isSyndicated() is true.\n    AdvertisedFeedTypes:\n        default:\n            - atom\n        type: array\n        description: |-\n            Which feed types should we provide by default?  This can include 'rss',\n            'atom', neither, or both.\n    RCShowWatchingUsers:\n        default: false\n        description: \"Show watching users in recent changes, watchlist and page history views\"\n    RCShowChangedSize:\n        default: true\n        description: Show the amount of changed characters in recent changes\n    RCChangedSizeThreshold:\n        default: 500\n        description: |-\n            If the difference between the character counts of the text\n            before and after the edit is below that value, the value will be\n            highlighted on the RC page.\n    ShowUpdatedMarker:\n        default: true\n        description: |-\n            Show \"Updated (since my last visit)\" marker in RC view, watchlist and history\n            view for watched pages with new changes\n    DisableAnonTalk:\n        default: false\n        description: |-\n            Disable links to talk pages of anonymous users (IPs) in listings on special\n            pages like page history, Special:Recentchanges, etc.\n    UseTagFilter:\n        default: true\n        description: |-\n            Allow filtering by change tag in recentchanges, history, etc\n            Has no effect if no tags are defined.\n    SoftwareTags:\n        default:\n            mw-contentmodelchange: true\n            mw-new-redirect: true\n            mw-removed-redirect: true\n            mw-changed-redirect-target: true\n            mw-blank: true\n            mw-replace: true\n            mw-recreated: true\n            mw-rollback: true\n            mw-undo: true\n            mw-manual-revert: true\n            mw-reverted: true\n            mw-server-side-upload: true\n        type: object\n        additionalProperties:\n            type: boolean\n        description: |-\n            List of core tags to enable.\n            @since 1.31\n            @since 1.36 Added 'mw-manual-revert' and 'mw-reverted'\n            @see \\MediaWiki\\ChangeTags\\ChangeTags::TAG_CONTENT_MODEL_CHANGE\n            @see \\MediaWiki\\ChangeTags\\ChangeTags::TAG_NEW_REDIRECT\n            @see \\MediaWiki\\ChangeTags\\ChangeTags::TAG_REMOVED_REDIRECT\n            @see \\MediaWiki\\ChangeTags\\ChangeTags::TAG_CHANGED_REDIRECT_TARGET\n            @see \\MediaWiki\\ChangeTags\\ChangeTags::TAG_BLANK\n            @see \\MediaWiki\\ChangeTags\\ChangeTags::TAG_REPLACE\n            @see \\MediaWiki\\ChangeTags\\ChangeTags::TAG_RECREATE\n            @see \\MediaWiki\\ChangeTags\\ChangeTags::TAG_ROLLBACK\n            @see \\MediaWiki\\ChangeTags\\ChangeTags::TAG_UNDO\n            @see \\MediaWiki\\ChangeTags\\ChangeTags::TAG_MANUAL_REVERT\n            @see \\MediaWiki\\ChangeTags\\ChangeTags::TAG_REVERTED\n            @see \\MediaWiki\\ChangeTags\\ChangeTags::TAG_SERVER_SIDE_UPLOAD\n    UnwatchedPageThreshold:\n        default: false\n        description: |-\n            If set to an integer, pages that are watched by this many users or more\n            will not require the unwatchedpages permission to view the number of\n            watchers.\n            @since 1.21\n    RecentChangesFlags:\n        default:\n            newpage: { letter: newpageletter, title: recentchanges-label-newpage, legend: recentchanges-legend-newpage, grouping: any }\n            minor: { letter: minoreditletter, title: recentchanges-label-minor, legend: recentchanges-legend-minor, class: minoredit, grouping: all }\n            bot: { letter: boteditletter, title: recentchanges-label-bot, legend: recentchanges-legend-bot, class: botedit, grouping: all }\n            unpatrolled: { letter: unpatrolledletter, title: recentchanges-label-unpatrolled, legend: recentchanges-legend-unpatrolled, grouping: any }\n        type: object\n        description: |-\n            Flags (letter symbols) shown in recent changes and watchlist to indicate\n            certain types of edits.\n            To register a new one:\n            ```\n            $wgRecentChangesFlags['flag'] => [\n              // message for the letter displayed next to rows on changes lists\n              'letter' => 'letter-msg',\n              // message for the tooltip of the letter\n              'title' => 'tooltip-msg',\n              // optional (defaults to 'tooltip-msg'), message to use in the legend box\n              'legend' => 'legend-msg',\n              // optional (defaults to 'flag'), CSS class to put on changes lists rows\n              'class' => 'css-class',\n              // optional (defaults to 'any'), how top-level flag is determined.  'any'\n              // will set the top-level flag if any line contains the flag, 'all' will\n              // only be set if all lines contain the flag.\n              'grouping' => 'any',\n            ];\n            ```\n            @since 1.22\n    WatchlistExpiry:\n        default: false\n        type: boolean\n        description: |-\n            Whether to enable the watchlist expiry feature.\n            @since 1.35\n    WatchlistPurgeRate:\n        default: 0.1\n        type: number\n        description: |-\n            Chance of expired watchlist items being purged on any page edit.\n            Only has effect if $wgWatchlistExpiry is true.\n            If this is zero, expired watchlist items will not be removed\n            and the purgeExpiredWatchlistItems.php maintenance script should be run periodically.\n            @since 1.35\n    WatchlistExpiryMaxDuration:\n        default: 1 year\n        type:\n            - string\n            - \"null\"\n        description: |-\n            Relative maximum duration for watchlist expiries, as accepted by strtotime().\n            This relates to finite watchlist expiries only. Pages can be watched indefinitely\n            regardless of what this is set to.\n            This is used to ensure the watchlist_expiry table doesn't grow to be too big.\n            Only has effect if $wgWatchlistExpiry is true.\n            Set to null to allow expiries of any duration.\n            @since 1.35\n    RightsPage:\n        default: null\n        description: |-\n            Override for copyright metadata.\n            This is the name of the page containing information about the wiki's copyright status,\n            which will be added as a link in the footer if it is specified. It overrides\n            $wgRightsUrl if both are specified.\n    RightsUrl:\n        default: null\n        description: |-\n            Set this to specify an external URL containing details about the content license used on your\n            wiki.\n            If $wgRightsPage is set then this setting is ignored.\n    RightsText:\n        default: null\n        description: |-\n            If either $wgRightsUrl or $wgRightsPage is specified then this variable gives the text for\n            the link. Otherwise, it will be treated as raw HTML.\n            If using $wgRightsUrl then this value must be specified. If using $wgRightsPage then the\n            name\n            of the page will also be used as the link text if this variable is not set.\n    RightsIcon:\n        default: null\n        description: Override for copyright metadata.\n    UseCopyrightUpload:\n        default: false\n        description: Set this to true if you want detailed copyright information forms on Upload.\n    MaxCredits:\n        default: 0\n        description: |-\n            Set this to the number of authors that you want to be credited below an\n            article text. Set it to zero to hide the attribution block, and a negative\n            number (like -1) to show all authors. Note that this will require 2-3 extra\n            database hits, which can have a not insignificant impact on performance for\n            large wikis.\n    ShowCreditsIfMax:\n        default: true\n        description: |-\n            If there are more than $wgMaxCredits authors, show $wgMaxCredits of them.\n            Otherwise, link to a separate credits page.\n    ImportSources:\n        default: { }\n        type: object\n        description: |-\n            List of interwiki prefixes for wikis we'll accept as sources for\n            Special:Import and API action=import. Since complete page history can be\n            imported, these should be 'trusted'.\n            This can either be a regular array, or an associative map specifying\n            subprojects on the interwiki map of the target wiki, or a mix of the two,\n            e.g.\n            ```\n            $wgImportSources = [\n                'wikipedia' => [ 'cs', 'en', 'fr', 'zh' ],\n                'wikispecies',\n                'wikia' => [ 'animanga', 'brickipedia', 'desserts' ],\n            ];\n            ```\n            If you have a very complex import sources setup, you can lazy-load it using\n            the ImportSources hook.\n            If a user has the 'import' permission but not the 'importupload' permission,\n            they will only be able to run imports through this transwiki interface.\n    ImportTargetNamespace:\n        default: null\n        description: |-\n            Optional default target namespace for interwiki imports.\n            Can use this to create an incoming \"transwiki\"-style queue.\n            Set to numeric key, not the name.\n            Users may override this in the Special:Import dialog.\n    ExportAllowHistory:\n        default: true\n        description: |-\n            If set to false, disables the full-history option on Special:Export.\n            This is currently poorly optimized for long edit histories, so is\n            disabled on Wikimedia's sites.\n    ExportMaxHistory:\n        default: 0\n        description: |-\n            If set nonzero, Special:Export requests for history of pages with\n            more revisions than this will be rejected. On some big sites things\n            could get bogged down by very very long pages.\n    ExportAllowListContributors:\n        default: false\n        description: Return distinct author list (when not returning full history)\n    ExportMaxLinkDepth:\n        default: 0\n        description: |-\n            If non-zero, Special:Export accepts a \"pagelink-depth\" parameter\n            up to this specified level, which will cause it to include all\n            pages linked to from the pages you specify. Since this number\n            can become *really really large* and could easily break your wiki,\n            it's disabled by default for now.\n            @warning There's a HARD CODED limit of 5 levels of recursion to prevent a\n            crazy-big export from being done by someone setting the depth number too\n            high. In other words, last resort safety net.\n    ExportFromNamespaces:\n        default: false\n        description: 'Whether to allow the \"export all pages in namespace\" option'\n    ExportAllowAll:\n        default: false\n        description: Whether to allow exporting the entire wiki into a single file\n    ExportPagelistLimit:\n        default: 5000\n        description: |-\n            Maximum number of pages returned by the GetPagesFromCategory and\n            GetPagesFromNamespace functions.\n            @since 1.27\n    XmlDumpSchemaVersion:\n        default: \"0.11\"\n        description: |-\n            The schema to use by default when generating XML dumps. This allows sites to control\n            explicitly when to make breaking changes to their export and dump format.\n    WikiFarmSettingsDirectory:\n        default: null\n        description: |-\n            A directory that contains site-specific configuration files.\n            Setting this will enable multi-tenant (\"wiki farm\") mode, causing\n            site-specific settings to be loaded based on information from the web request.\n            @unstable EXPERIMENTAL\n            @since 1.38\n    WikiFarmSettingsExtension:\n        default: yaml\n        description: |-\n            The file extension to be used when looking up site-specific settings files in\n            $wgWikiFarmSettingsDirectory, such as 'json' or 'yaml'.\n            @unstable EXPERIMENTAL\n            @since 1.38\n    ExtensionFunctions:\n        default: []\n        type: array\n        description: |-\n            A list of callback functions which are called once MediaWiki is fully\n            initialised\n    ExtensionMessagesFiles:\n        default: { }\n        type: object\n        description: |-\n            Extension messages files.\n            Associative array mapping extension name to the filename where messages can be\n            found. The file should contain variable assignments. Any of the variables\n            present in languages/messages/MessagesEn.php may be defined, but $messages\n            is the most common.\n            Variables defined in extensions will override conflicting variables defined\n            in the core.\n            Since MediaWiki 1.23, use of this variable to define messages is discouraged; instead, store\n            messages in JSON format and use $wgMessagesDirs. For setting other variables than\n            $messages, $wgExtensionMessagesFiles should still be used. Use a DIFFERENT key because\n            any entry having a key that also exists in $wgMessagesDirs will be ignored.\n            Extensions using the JSON message format can preserve backward compatibility with\n            earlier versions of MediaWiki by using a compatibility shim, such as one generated\n            by the generateJsonI18n.php maintenance script, listing it under the SAME key\n            as for the $wgMessagesDirs entry.\n            **Example:**\n            ```\n            $wgExtensionMessagesFiles['ConfirmEdit'] = __DIR__.'/ConfirmEdit.i18n.php';\n            ```\n    MessagesDirs:\n        default: { }\n        type: object\n        description: |-\n            Extension messages directories.\n            Associative array mapping extension name to the path of the directory where message files can\n            be found. The message files are expected to be JSON files named for their language code, e.g.\n            en.json, de.json, etc. Extensions with messages in multiple places may specify an array of\n            message directories.\n            Message directories in core should be added to LocalisationCache::getMessagesDirs()\n            **Simple example:**\n            ```\n            $wgMessagesDirs['Example'] = __DIR__ . '/i18n';\n            ```\n            **Complex example:**\n            ```\n            $wgMessagesDirs['Example'] = [\n                __DIR__ . '/lib/ve/i18n',\n                __DIR__ . '/lib/ooui/i18n',\n                __DIR__ . '/i18n',\n            ]\n            ```\n            @since 1.23\n    TranslationAliasesDirs:\n        default: { }\n        type: object\n        description: |-\n            Message directories containing JSON files for localisation of special page aliases.\n            Associative array mapping extension name to the directory where configurations can be\n            found. The directory is expected to contain JSON files corresponding to each language code.\n            Variables defined in extensions will override conflicting variables defined\n            in the core. We recommend using this configuration to set variables that require localisation:\n            special page aliases, and in the future namespace aliases and magic words.\n            **Simple example**: extension.json\n            ```\n            \"TranslationAliasesDirs\": {\n              \"TranslationNotificationsAlias\": \"i18n/aliases\"\n            }\n            ```\n            **Complex example**: extension.json\n             ```\n             \"TranslationAliasesDirs\": {\n               \"TranslationNotificationsAlias\": [ \"i18n/special-page-aliases\", \"i18n/magic-words\", \"i18n/namespaces\" ]\n             }\n             ```\n            @unstable EXPERIMENTAL\n            @since 1.42\n    ExtensionEntryPointListFiles:\n        default: { }\n        type: object\n        description: |-\n            Array of files with list(s) of extension entry points to be used in\n            maintenance/mergeMessageFileList.php\n            @since 1.22\n    EnableParserLimitReporting:\n        default: true\n        description: Whether to include the NewPP limit report as a HTML comment\n    ValidSkinNames:\n        default: { }\n        type: object\n        description: |-\n            List of valid skin names\n            The key should be the name in all lower case.\n            As of 1.35, the value should be a an array in the form of the ObjectFactory specification.\n            For example for 'foobarskin' where the PHP class is 'MediaWiki\\Skins\\FooBar\\FooBarSkin' set:\n            **skin.json Example:**\n            ```\n            \"ValidSkinNames\": {\n               \"foobarskin\": {\n                   \"displayname\": \"FooBarSkin\",\n                   \"class\": \"MediaWiki\\\\Skins\\\\FooBar\\\\FooBarSkin\"\n               }\n            }\n            ```\n            Historically, the value was a properly cased name for the skin (and is still currently\n            supported). This value will be prefixed with \"Skin\" to create the class name of the\n            skin to load. Use Skin::getSkinNames() as an accessor if you wish to have access to the\n            full list.\n    SpecialPages:\n        default: { }\n        type: object\n        description: |-\n            Special page list. This is an associative array mapping the (canonical) names of\n            special pages to either a class name or a ObjectFactory spec to be instantiated, or a callback to use for\n            creating the special page object. In all cases, the result must be an instance of SpecialPage.\n    ExtensionCredits:\n        default: { }\n        type: object\n        description: |-\n            Add information about an installed extension, keyed by its type.\n            This is for use from LocalSettings.php and legacy PHP-entrypoint\n            extensions. In general, extensions should (only) declare this\n            information in their extension.json file.\n            The 'name', 'path' and 'author' keys are required.\n            ```\n            $wgExtensionCredits['other'][] = [\n                'path' => __FILE__,\n                'name' => 'Example extension',\n                'namemsg' => 'exampleextension-name',\n                'author' => [\n                    'Foo Barstein',\n                ],\n                'version' => '0.0.1',\n                'url' => 'https://example.org/example-extension/',\n                'descriptionmsg' => 'exampleextension-desc',\n                'license-name' => 'GPL-2.0-or-later',\n            ];\n            ```\n            The extensions are listed on Special:Version. This page also looks for a file\n            named COPYING or LICENSE (optional .txt extension) and provides a link to\n            view said file. When the 'license-name' key is specified, this file is\n            interpreted as wikitext.\n            - $type: One of 'specialpage', 'parserhook', 'variable', 'media', 'antispam',\n               'skin', 'api', or 'other', or any additional types as specified through the\n               ExtensionTypes hook as used in SpecialVersion::getExtensionTypes().\n            - name: Name of extension as an inline string instead of localizable message.\n               Do not omit this even if 'namemsg' is provided, as it is used to override\n               the path Special:Version uses to find extension's license info, and is\n               required for backwards-compatibility with MediaWiki 1.23 and older.\n            - namemsg (since MW 1.24): A message key for a message containing the\n               extension's name, if the name is localizable. (For example, skin names\n               usually are.)\n            - author: A string or an array of strings. Authors can be linked using\n               the regular wikitext link syntax. To have an internationalized version of\n               \"and others\" show, add an element \"...\". This element can also be linked,\n               for instance \"[https://example ...]\".\n            - descriptionmsg: A message key or an array with message key and parameters:\n               `'descriptionmsg' => 'exampleextension-desc',`\n            - description: Description of extension as an inline string instead of\n               localizable message (omit in favour of 'descriptionmsg').\n            - license-name: Short name of the license (used as label for the link), such\n              as \"GPL-2.0-or-later\" or \"MIT\" (https://spdx.org/licenses/ for a list of identifiers).\n            @see \\MediaWiki\\Specials\\SpecialVersion::getCredits\n    Hooks:\n        default: { }\n        type: object\n        mergeStrategy: array_merge_recursive\n        description: |-\n            Global list of hooks.\n            The key is one of the events made available by MediaWiki, you can find\n            a description for most of them in their respective hook interfaces. For\n            overview of the hook system see docs/Hooks.md. The array is used internally\n            by HookContainer::run().\n            The value can be one of:\n            - A function name: `$wgHooks['event_name'][] = $function;`\n            - A function with some data: `$wgHooks['event_name'][] = [ $function, $data ];`\n            - A an object method: `$wgHooks['event_name'][] = [ $object, 'method' ];`\n            - A closure:\n            ```\n            $wgHooks['event_name'][] = function ( $hookParam ) {\n                // Handler code goes here.\n            };\n            ```\n            @warning You should always append to an event array or you will end up\n            deleting a previous registered hook.\n            @warning Hook handlers should be registered at file scope. Registering\n            handlers after file scope can lead to unexpected results due to caching.\n    ServiceWiringFiles:\n        default: []\n        type: array\n        description: |-\n            List of service wiring files to be loaded by the default instance of MediaWikiServices. Each\n            file listed here is expected to return an associative array mapping service names to\n            instantiator functions. Extensions may add wiring files to define their own services.\n            However, this cannot be used to replace existing services - use the MediaWikiServices hook\n            for that.\n            @note the default wiring file will be added automatically by Setup.php\n            @see \\MediaWiki\\MediaWikiServices\n            @see \\Wikimedia\\Services\\ServiceContainer::loadWiringFiles() for details on loading\n              service instantiator functions.\n            @see docs/Injection.md for an overview of dependency\n              injection in MediaWiki.\n    JobClasses:\n        default:\n            deletePage: MediaWiki\\JobQueue\\Jobs\\DeletePageJob\n            refreshLinks: MediaWiki\\JobQueue\\Jobs\\RefreshLinksJob\n            deleteLinks: MediaWiki\\JobQueue\\Jobs\\DeleteLinksJob\n            htmlCacheUpdate: MediaWiki\\JobQueue\\Jobs\\HTMLCacheUpdateJob\n            sendMail: { class: EmaillingJob, services: [ Emailer ] }\n            enotifNotify: EnotifNotifyJob\n            fixDoubleRedirect: { class: MediaWiki\\JobQueue\\Jobs\\DoubleRedirectJob, services: [ RevisionLookup, MagicWordFactory, WikiPageFactory ], needsPage: true }\n            AssembleUploadChunks: MediaWiki\\JobQueue\\Jobs\\AssembleUploadChunksJob\n            PublishStashedFile: MediaWiki\\JobQueue\\Jobs\\PublishStashedFileJob\n            ThumbnailRender: MediaWiki\\JobQueue\\Jobs\\ThumbnailRenderJob\n            UploadFromUrl: MediaWiki\\JobQueue\\Jobs\\UploadFromUrlJob\n            recentChangesUpdate: MediaWiki\\RecentChanges\\RecentChangesUpdateJob\n            refreshLinksPrioritized: MediaWiki\\JobQueue\\Jobs\\RefreshLinksJob\n            refreshLinksDynamic: MediaWiki\\JobQueue\\Jobs\\RefreshLinksJob\n            activityUpdateJob: MediaWiki\\Watchlist\\ActivityUpdateJob\n            categoryMembershipChange: MediaWiki\\JobQueue\\Jobs\\CategoryMembershipChangeJob\n            clearUserWatchlist: MediaWiki\\Watchlist\\ClearUserWatchlistJob\n            watchlistExpiry: MediaWiki\\Watchlist\\WatchlistExpiryJob\n            cdnPurge: MediaWiki\\JobQueue\\Jobs\\CdnPurgeJob\n            userGroupExpiry: UserGroupExpiryJob\n            clearWatchlistNotifications: MediaWiki\\Watchlist\\ClearWatchlistNotificationsJob\n            userOptionsUpdate: UserOptionsUpdateJob\n            revertedTagUpdate: MediaWiki\\JobQueue\\Jobs\\RevertedTagUpdateJob\n            \"null\": MediaWiki\\JobQueue\\Jobs\\NullJob\n            userEditCountInit: UserEditCountInitJob\n            parsoidCachePrewarm: { class: MediaWiki\\JobQueue\\Jobs\\ParsoidCachePrewarmJob, services: [ ParserOutputAccess, PageStore, RevisionLookup, ParsoidSiteConfig ], needsPage: false }\n            renameUserTable: { class: MediaWiki\\RenameUser\\Job\\RenameUserTableJob, services: [ MainConfig, DBLoadBalancerFactory ] }\n            renameUserDerived: { class: MediaWiki\\RenameUser\\Job\\RenameUserDerivedJob, services: [ RenameUserFactory, UserFactory ] }\n            renameUser: { class: MediaWiki\\RenameUser\\Job\\RenameUserTableJob, services: [ MainConfig, DBLoadBalancerFactory ] }\n        type: object\n        description: |-\n            Maps jobs to their handlers; extensions\n            can add to this to provide custom jobs.\n            Since 1.40, job handlers can be specified as object specs\n            for use with ObjectFactory, using an array, a plain class name,\n            or a callback.\n            @note The constructor signature of job classes has to follow one of two patterns:\n            Either it takes a parameter array as the first argument, followed by any services it\n            needs to have injected: ( array $params, ... ).\n            Or it takes a PageReference as the first parameter, followed by the parameter array,\n            followed by any services: ( PageReference $page, array $params, ... ).\n            In order to signal to the JobFactory that the $page parameter should be omitted from\n            the constructor arguments, the job class has to be a subclass of GenericParameterJob,\n            or the object specification for the job has to set the 'needsPage' key to false.\n            If a callback is used, its signature follows the same rules.\n    JobTypesExcludedFromDefaultQueue:\n        default:\n            - AssembleUploadChunks\n            - PublishStashedFile\n            - UploadFromUrl\n        type: array\n        description: |-\n            Jobs that must be explicitly requested, i.e. aren't run by job runners unless\n            special flags are set. The values here are keys of $wgJobClasses.\n            These can be:\n            - Very long-running jobs.\n            - Jobs that you would never want to run as part of a page rendering request.\n            - Jobs that you want to run on specialized machines ( like transcoding, or a particular\n              machine on your cluster has 'outside' web access you could restrict uploadFromUrl )\n            These settings should be global to all wikis.\n    JobBackoffThrottling:\n        default: { }\n        type: object\n        additionalProperties:\n            type: number\n        description: |-\n            Map of job types to how many job \"work items\" should be run per second\n            on each job runner process. The meaning of \"work items\" varies per job,\n            but typically would be something like \"pages to update\". A single job\n            may have a variable number of work items, as is the case with batch jobs.\n            This is used by runJobs.php and not jobs run via $wgJobRunRate.\n            These settings should be global to all wikis.\n    JobTypeConf:\n        default:\n            default: { class: MediaWiki\\JobQueue\\JobQueueDB, order: random, claimTTL: 3600 }\n        additionalProperties:\n            type: object\n            properties: { class: { type: string }, order: { type: string }, claimTTL: { type: integer } }\n        type: object\n        description: |-\n            Map of job types to configuration arrays.\n            This determines which queue class and storage system is used for each job type.\n            Job types that do not have explicit configuration will use the 'default' config.\n            These settings should be global to all wikis.\n    JobQueueIncludeInMaxLagFactor:\n        default: false\n        description: |-\n            Whether to include the number of jobs that are queued\n            for the API's maxlag parameter.\n            The total number of jobs will be divided by this to get an\n            estimated second of maxlag. Typically bots backoff at maxlag=5,\n            so setting this to the max number of jobs that should be in your\n            queue divided by 5 should have the effect of stopping bots once\n            that limit is hit.\n            @since 1.29\n    SpecialPageCacheUpdates:\n        default:\n            Statistics: [ MediaWiki\\Deferred\\SiteStatsUpdate, cacheUpdate ]\n        type: object\n        description: |-\n            Additional functions to be performed with updateSpecialPages.\n            Expensive Querypages are already updated.\n    PagePropLinkInvalidations:\n        default:\n            hiddencat: categorylinks\n        type: object\n        description: |-\n            Page property link table invalidation lists. When a page property\n            changes, this may require other link tables to be updated (eg\n            adding __HIDDENCAT__ means the hiddencat tracking category will\n            have been added, so the categorylinks table needs to be rebuilt).\n            This array can be added to by extensions.\n    CategoryMagicGallery:\n        default: true\n        description: |-\n            On category pages, show thumbnail gallery for images belonging to that\n            category instead of listing them as articles.\n    CategoryPagingLimit:\n        default: 200\n        description: Paging limit for categories\n    CategoryCollation:\n        default: uppercase\n        description: |-\n            Specify how category names should be sorted, when listed on a category page.\n            A sorting scheme is also known as a collation.\n            Available values are:\n              - uppercase: Converts the category name to upper case, and sorts by that.\n              - identity: Does no conversion. Sorts by binary value of the string.\n              - uca-default: Provides access to the Unicode Collation Algorithm with\n                the default element table. This is a compromise collation which sorts\n                all languages in a mediocre way. However, it is better than \"uppercase\".\n            To use the uca-default collation, you must have PHP's intl extension\n            installed. See https://www.php.net/manual/en/intl.setup.php . The details of the\n            resulting collation will depend on the version of ICU installed on the\n            server.\n            After you change this, you must run maintenance/updateCollation.php to fix\n            the sort keys in the database.\n            Extensions can define there own collations by subclassing Collation\n            and using the Collation::factory hook.\n    TempCategoryCollations:\n        default: []\n        type: array\n        description: |-\n            Additional category collations to store during LinksUpdate. This can be used\n            to perform online migration of categories from one collation to another. An\n            array of associative arrays each having the following keys:\n            - table: (string) The table name\n            - collation: (string) The collation to use for cl_sortkey\n            - fakeCollation: (string) The collation name to insert into cl_collation\n            @since 1.38\n    SortedCategories:\n        default: false\n        type: boolean\n        description: |-\n            Whether to sort categories in OutputPage for display.\n            The value of CategoryCollation is used for sorting.\n            @unstable EXPERIMENTAL This feature is used for Parsoid development,\n            but its future as a core feature will depend on community uptake.\n    TrackingCategories:\n        default: []\n        type: array\n        deprecated: |-\n            since 1.25 Extensions should now register tracking categories using the new\n            extension registration system.\n        description: |-\n            Array holding default tracking category names.\n            Array contains the system messages for each tracking category.\n            Tracking categories allow pages with certain characteristics to be tracked.\n            It works by adding any such page to a category automatically.\n            A message with the suffix '-desc' should be added as a description message\n            to have extra information on Special:TrackingCategories.\n            @deprecated since 1.25 Extensions should now register tracking categories using\n            the new extension registration system.\n            @since 1.23\n    LogTypes:\n        default:\n            - \"\"\n            - block\n            - protect\n            - rights\n            - delete\n            - upload\n            - move\n            - import\n            - interwiki\n            - patrol\n            - merge\n            - suppress\n            - tag\n            - managetags\n            - contentmodel\n            - renameuser\n        type: array\n        description: |-\n            The logging system has two levels: an event type, which describes the\n            general category and can be viewed as a named subset of all logs; and\n            an action, which is a specific kind of event that can exist in that\n            log type.\n            Note that code should call LogPage::validTypes() to get a list of valid\n            log types instead of checking the global variable.\n    LogRestrictions:\n        default:\n            suppress: suppressionlog\n        type: object\n        description: |-\n            This restricts log access to those who have a certain right\n            Users without this will not see it in the option menu and can not view it\n            Restricted logs are not added to recent changes\n            Logs should remain non-transcludable\n            Format: logtype => permissiontype\n    FilterLogTypes:\n        default:\n            patrol: true\n            tag: true\n            newusers: false\n        type: object\n        description: |-\n            Show/hide links on Special:Log will be shown for these log types.\n            This is associative array of log type => boolean \"hide by default\"\n            See $wgLogTypes for a list of available log types.\n            **Example:**\n            `$wgFilterLogTypes = [ 'move' => true, 'import' => false ];`\n            Will display show/hide links for the move and import logs. Move logs will be\n            hidden by default unless the link is clicked. Import logs will be shown by\n            default, and hidden when the link is clicked.\n            A message of the form logeventslist-[type]-log should be added, and will be\n            used for the link text.\n    LogNames:\n        default:\n            \"\": all-logs-page\n            block: blocklogpage\n            protect: protectlogpage\n            rights: rightslog\n            delete: dellogpage\n            upload: uploadlogpage\n            move: movelogpage\n            import: importlogpage\n            patrol: patrol-log-page\n            merge: mergelog\n            suppress: suppressionlog\n        type: object\n        description: |-\n            Lists the message key string for each log type. The localized messages\n            will be listed in the user interface.\n            Extensions with custom log types may add to this array.\n            @since 1.19, if you follow the naming convention log-name-TYPE,\n            where TYPE is your log type, you don't need to use this array.\n    LogHeaders:\n        default:\n            \"\": alllogstext\n            block: blocklogtext\n            delete: dellogpagetext\n            import: importlogpagetext\n            merge: mergelogpagetext\n            move: movelogpagetext\n            patrol: patrol-log-header\n            protect: protectlogtext\n            rights: rightslogtext\n            suppress: suppressionlogtext\n            upload: uploadlogpagetext\n        type: object\n        description: |-\n            Lists the message key string for descriptive text to be shown at the\n            top of each log type.\n            Extensions with custom log types may add to this array.\n            @since 1.19, if you follow the naming convention log-description-TYPE,\n            where TYPE is your log type, yoy don't need to use this array.\n    LogActions:\n        default: { }\n        type: object\n        description: |-\n            Maps log actions to message keys, for formatting log entries of each type\n            and action when displaying logs to the user.\n            The array keys are composed as \"$type/$action\".\n            Extensions with custom log types may add to this array.\n    LogActionsHandlers:\n        default:\n            block/block: { class: MediaWiki\\Logging\\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }\n            block/reblock: { class: MediaWiki\\Logging\\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }\n            block/unblock: { class: MediaWiki\\Logging\\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }\n            contentmodel/change: MediaWiki\\Logging\\ContentModelLogFormatter\n            contentmodel/new: MediaWiki\\Logging\\ContentModelLogFormatter\n            delete/delete: MediaWiki\\Logging\\DeleteLogFormatter\n            delete/delete_redir: MediaWiki\\Logging\\DeleteLogFormatter\n            delete/delete_redir2: MediaWiki\\Logging\\DeleteLogFormatter\n            delete/event: MediaWiki\\Logging\\DeleteLogFormatter\n            delete/restore: MediaWiki\\Logging\\DeleteLogFormatter\n            delete/revision: MediaWiki\\Logging\\DeleteLogFormatter\n            import/interwiki: MediaWiki\\Logging\\ImportLogFormatter\n            import/upload: MediaWiki\\Logging\\ImportLogFormatter\n            interwiki/iw_add: MediaWiki\\Logging\\InterwikiLogFormatter\n            interwiki/iw_delete: MediaWiki\\Logging\\InterwikiLogFormatter\n            interwiki/iw_edit: MediaWiki\\Logging\\InterwikiLogFormatter\n            managetags/activate: MediaWiki\\Logging\\LogFormatter\n            managetags/create: MediaWiki\\Logging\\LogFormatter\n            managetags/deactivate: MediaWiki\\Logging\\LogFormatter\n            managetags/delete: MediaWiki\\Logging\\LogFormatter\n            merge/merge: { class: MediaWiki\\Logging\\MergeLogFormatter, services: [ TitleParser ] }\n            merge/merge-into: { class: MediaWiki\\Logging\\MergeLogFormatter, services: [ TitleParser ] }\n            move/move: { class: MediaWiki\\Logging\\MoveLogFormatter, services: [ TitleParser ] }\n            move/move_redir: { class: MediaWiki\\Logging\\MoveLogFormatter, services: [ TitleParser ] }\n            patrol/patrol: MediaWiki\\Logging\\PatrolLogFormatter\n            patrol/autopatrol: MediaWiki\\Logging\\PatrolLogFormatter\n            protect/modify: { class: MediaWiki\\Logging\\ProtectLogFormatter, services: [ TitleParser ] }\n            protect/move_prot: { class: MediaWiki\\Logging\\ProtectLogFormatter, services: [ TitleParser ] }\n            protect/protect: { class: MediaWiki\\Logging\\ProtectLogFormatter, services: [ TitleParser ] }\n            protect/unprotect: { class: MediaWiki\\Logging\\ProtectLogFormatter, services: [ TitleParser ] }\n            renameuser/renameuser: { class: MediaWiki\\Logging\\RenameuserLogFormatter, services: [ TitleParser ] }\n            rights/autopromote: MediaWiki\\Logging\\RightsLogFormatter\n            rights/rights: MediaWiki\\Logging\\RightsLogFormatter\n            suppress/block: { class: MediaWiki\\Logging\\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }\n            suppress/delete: MediaWiki\\Logging\\DeleteLogFormatter\n            suppress/event: MediaWiki\\Logging\\DeleteLogFormatter\n            suppress/reblock: { class: MediaWiki\\Logging\\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }\n            suppress/revision: MediaWiki\\Logging\\DeleteLogFormatter\n            tag/update: MediaWiki\\Logging\\TagLogFormatter\n            upload/overwrite: MediaWiki\\Logging\\UploadLogFormatter\n            upload/revert: MediaWiki\\Logging\\UploadLogFormatter\n            upload/upload: MediaWiki\\Logging\\UploadLogFormatter\n        type: object\n        description: |-\n            The same as above, but here values are class names or ObjectFactory specifications,\n            not messages. The specification must resolve to a LogFormatter subclass,\n            and will receive the LogEntry object as its first constructor argument.\n            The type can be specified as '*' (e.g. 'block/*') to handle all types.\n            @see \\MediaWiki\\Logging\\LogPage::actionText\n            @see \\MediaWiki\\Logging\\LogFormatter\n    ActionFilteredLogs:\n        default:\n            block: { block: [ block ], reblock: [ reblock ], unblock: [ unblock ] }\n            contentmodel: { change: [ change ], new: [ new ] }\n            delete: { delete: [ delete ], delete_redir: [ delete_redir, delete_redir2 ], restore: [ restore ], event: [ event ], revision: [ revision ] }\n            import: { interwiki: [ interwiki ], upload: [ upload ] }\n            managetags: { create: [ create ], delete: [ delete ], activate: [ activate ], deactivate: [ deactivate ] }\n            move: { move: [ move ], move_redir: [ move_redir ] }\n            newusers: { create: [ create, newusers ], create2: [ create2 ], autocreate: [ autocreate ], byemail: [ byemail ] }\n            protect: { protect: [ protect ], modify: [ modify ], unprotect: [ unprotect ], move_prot: [ move_prot ] }\n            rights: { rights: [ rights ], autopromote: [ autopromote ] }\n            suppress: { event: [ event ], revision: [ revision ], delete: [ delete ], block: [ block ], reblock: [ reblock ] }\n            upload: { upload: [ upload ], overwrite: [ overwrite ], revert: [ revert ] }\n        type: object\n        description: |-\n            List of log types that can be filtered by action types\n            To each action is associated the list of log_action\n            subtypes to search for, usually one, but not necessarily so\n            Extensions may append to this array\n            @since 1.27\n    NewUserLog:\n        default: true\n        description: \"Maintain a log of newusers at Special:Log/newusers?\"\n    PageCreationLog:\n        default: true\n        description: |-\n            Maintain a log of page creations at Special:Log/create?\n            @since 1.32\n    AllowSpecialInclusion:\n        default: true\n        description: \"Allow special page inclusions such as {{Special:Allpages}}\"\n    DisableQueryPageUpdate:\n        default: false\n        description: |-\n            Set this to an array of special page names to prevent\n            maintenance/updateSpecialPages.php from updating those pages.\n            Mapping each special page name to a run mode like 'periodical' if a cronjob is set up.\n    CountCategorizedImagesAsUsed:\n        default: false\n        description: |-\n            On Special:Unusedimages, consider images \"used\", if they are put\n            into a category. Default (false) is not to count those as used.\n    MaxRedirectLinksRetrieved:\n        default: 500\n        description: |-\n            Maximum number of links to a redirect page listed on\n            Special:Whatlinkshere/RedirectDestination\n    RangeContributionsCIDRLimit:\n        default:\n            IPv4: 16\n            IPv6: 32\n        type: object\n        additionalProperties:\n            type: integer\n        description: |-\n            Shortest CIDR limits that can be checked in any individual range check\n            at Special:Contributions.\n            @since 1.30\n    Actions:\n        default: { }\n        type: object\n        description: |-\n            Map of allowed values for the \"title=foo&action=<action>\" parameter.\n            to the corresponding handler code.\n            See ActionFactory for the syntax. Core defaults are in ActionFactory::CORE_ACTIONS,\n            anything here overrides that.\n    DefaultRobotPolicy:\n        default: \"index,follow\"\n        description: |-\n            Default robot policy.  The default policy is to encourage indexing and fol-\n            lowing of links.  It may be overridden on a per-namespace and/or per-page\n            basis.\n    NamespaceRobotPolicies:\n        default: { }\n        type: object\n        description: |-\n            Robot policies per namespaces. The default policy is given above, the array\n            is made of namespace constants as defined in includes/Defines.php.  You can-\n            not specify a different default policy for NS_SPECIAL: it is always noindex,\n            nofollow.  This is because a number of special pages (e.g., ListPages) have\n            many permutations of options that display the same data under redundant\n            URLs, so search engine spiders risk getting lost in a maze of twisty special\n            pages, all alike, and never reaching your actual content.\n            **Example:**\n            ```\n            $wgNamespaceRobotPolicies = [ NS_TALK => 'noindex' ];\n            ```\n    ArticleRobotPolicies:\n        default: { }\n        type: object\n        description: |-\n            Robot policies per article. These override the per-namespace robot policies.\n            Must be in the form of an array where the key part is a properly canonicalised\n            text form title and the value is a robot policy.\n            **Example:**\n            ```\n            $wgArticleRobotPolicies = [\n                    'Main Page' => 'noindex,follow',\n                    'User:Bob' => 'index,follow',\n            ];\n            ```\n            **Example that DOES NOT WORK because the names are not canonical text**\n            forms:\n            ```\n            $wgArticleRobotPolicies = [\n              // Underscore, not space!\n              'Main_Page' => 'noindex,follow',\n              // \"Project\", not the actual project name!\n              'Project:X' => 'index,follow',\n              // Needs to be \"Abc\", not \"abc\" (unless $wgCapitalLinks is false for that namespace)!\n              'abc' => 'noindex,nofollow'\n            ];\n            ```\n    ExemptFromUserRobotsControl:\n        default: null\n        type:\n            - array\n            - \"null\"\n        description: |-\n            An array of namespace keys in which the __INDEX__/__NOINDEX__ magic words\n            will not function, so users can't decide whether pages in that namespace are\n            indexed by search engines.  If set to null, default to $wgContentNamespaces.\n            **Example:**\n            ```\n            $wgExemptFromUserRobotsControl = [ NS_MAIN, NS_TALK, NS_PROJECT ];\n            ```\n    DebugAPI:\n        default: false\n        description: |-\n            WARNING: SECURITY THREAT - debug use only\n            Disables many security checks in the API for debugging purposes.\n            This flag should never be used on the production servers, as it introduces\n            a number of potential security holes. Even when enabled, the validation\n            will still be performed, but instead of failing, API will return a warning.\n            Also, there will always be a warning notifying that this flag is set.\n            At this point, the flag allows GET requests to go through for modules\n            requiring POST.\n            @since 1.21\n    APIModules:\n        default: { }\n        type: object\n        description: |-\n            API module extensions.\n            Associative array mapping module name to modules specs;\n            Each module spec is an associative array containing at least\n            the 'class' key for the module's class, and optionally a\n            'factory' key for the factory function to use for the module.\n            That factory function will be called with two parameters,\n            the parent module (an instance of ApiBase, usually ApiMain)\n            and the name the module was registered under. The return\n            value must be an instance of the class given in the 'class'\n            field.\n            For backward compatibility, the module spec may also be a\n            simple string containing the module's class name. In that\n            case, the class' constructor will be called with the parent\n            module and module name as parameters, as described above.\n            Examples for registering API modules:\n            ```\n            $wgAPIModules['foo'] = 'ApiFoo';\n            $wgAPIModules['bar'] = [\n              'class' => ApiBar::class,\n              'factory' => function( $main, $name ) { ... }\n            ];\n            $wgAPIModules['xyzzy'] = [\n              'class' => ApiXyzzy::class,\n              'factory' => [ XyzzyFactory::class, 'newApiModule' ]\n            ];\n            ```\n            Extension modules may override the core modules.\n            See ApiMain::MODULES for a list of the core modules.\n    APIFormatModules:\n        default: { }\n        type: object\n        description: |-\n            API format module extensions.\n            Associative array mapping format module name to module specs (see $wgAPIModules).\n            Extension modules may override the core modules.\n            See ApiMain::FORMATS for a list of the core format modules.\n    APIMetaModules:\n        default: { }\n        type: object\n        description: |-\n            API Query meta module extensions.\n            Associative array mapping meta module name to module specs (see $wgAPIModules).\n            Extension modules may override the core modules.\n            See ApiQuery::QUERY_META_MODULES for a list of the core meta modules.\n    APIPropModules:\n        default: { }\n        type: object\n        description: |-\n            API Query prop module extensions.\n            Associative array mapping prop module name to module specs (see $wgAPIModules).\n            Extension modules may override the core modules.\n            See ApiQuery::QUERY_PROP_MODULES for a list of the core prop modules.\n    APIListModules:\n        default: { }\n        type: object\n        description: |-\n            API Query list module extensions.\n            Associative array mapping list module name to module specs (see $wgAPIModules).\n            Extension modules may override the core modules.\n            See ApiQuery::QUERY_LIST_MODULES for a list of the core list modules.\n    APIMaxDBRows:\n        default: 5000\n        description: |-\n            Maximum amount of rows to scan in a DB query in the API\n            The default value is generally fine\n    APIMaxResultSize:\n        default: 8388608\n        description: |-\n            The maximum size (in bytes) of an API result.\n            @warning Do not set this lower than $wgMaxArticleSize*1024\n    APIMaxUncachedDiffs:\n        default: 1\n        description: |-\n            The maximum number of uncached diffs that can be retrieved in one API\n            request. Set this to 0 to disable API diffs altogether\n    APIMaxLagThreshold:\n        default: 7\n        description: |-\n            Maximum amount of DB lag on a majority of DB replica DBs to tolerate\n            before forcing bots to retry any write requests via API errors.\n            This should be lower than the 'max lag' value in $wgLBFactoryConf.\n    APIRequestLog:\n        default: false\n        deprecated: since 1.43; use api or api-request $wgDebugLogGroups channel\n        description: |-\n            Log file or URL (TCP or UDP) to log API requests to, or false to disable\n            API request logging\n    APICacheHelpTimeout:\n        default: 3600\n        description: \"Set the timeout for the API help text cache. If set to 0, caching disabled\"\n    APIUselessQueryPages:\n        default:\n            - MIMEsearch\n            - LinkSearch\n        type: array\n        description: |-\n            The ApiQueryQueryPages module should skip pages that are redundant to true\n            API queries.\n    AjaxLicensePreview:\n        default: true\n        description: Enable previewing licences via AJAX.\n    CrossSiteAJAXdomains:\n        default: { }\n        type: object\n        description: |-\n            Settings for incoming cross-site AJAX requests:\n            Newer browsers support cross-site AJAX when the target resource allows requests\n            from the origin domain by the Access-Control-Allow-Origin header.\n            This is currently only used by the API (requests to api.php)\n            $wgCrossSiteAJAXdomains can be set using a wildcard syntax:\n            - '*' matches any number of characters\n            - '?' matches any 1 character\n            **Example:**\n            ```\n            $wgCrossSiteAJAXdomains = [\n                'www.mediawiki.org',\n                '*.wikipedia.org',\n                '*.wikimedia.org',\n                '*.wiktionary.org',\n            ];\n            ```\n    CrossSiteAJAXdomainExceptions:\n        default: { }\n        type: object\n        description: |-\n            Domains that should not be allowed to make AJAX requests,\n            even if they match one of the domains allowed by $wgCrossSiteAJAXdomains\n            Uses the same syntax as $wgCrossSiteAJAXdomains\n    AllowedCorsHeaders:\n        default:\n            - Accept\n            - Accept-Language\n            - Content-Language\n            - Content-Type\n            - Accept-Encoding\n            - DNT\n            - Origin\n            - User-Agent\n            - Api-User-Agent\n            - Access-Control-Max-Age\n            - Authorization\n        type: array\n        description: List of allowed headers for cross-origin API requests.\n    RestAPIAdditionalRouteFiles:\n        default: []\n        type: array\n        description: |-\n            Additional REST API Route files.\n            A common usage is to enable development/experimental endpoints only on test wikis.\n    RestSandboxSpecs:\n        default: { }\n        type: object\n        additionalProperties:\n            type: object\n            properties: { url: { type: string, format: url }, name: { type: string }, msg: { type: string, description: a message key } }\n            required: [ url ]\n        description: |-\n            A list of OpenAPI specs to be made available for exploration on\n            Special:RestSandbox. If none are given, Special:RestSandbox is disabled.\n            This is an associative array, arbitrary spec IDs to spec descriptions.\n            Each spec description is an array with the following keys:\n            - url: the URL that will return the OpenAPI spec.\n            - name: the name of the API, to be shown on Special:RestSandbox.\n              Ignored if msg is given.\n            - msg: a message key for the name of the API, to be shown on\n              Special:RestSandbox.\n            @unstable Introduced in 1.43. We may want to rename or change this to\n            accommodate the need to list external APIs in a central discovery\n            document.\n    MaxShellMemory:\n        default: 307200\n        description: \"Maximum amount of virtual memory available to shell processes under linux, in KiB.\"\n    MaxShellFileSize:\n        default: 102400\n        description: |-\n            Maximum file size created by shell processes under linux, in KiB\n            ImageMagick convert for example can be fairly hungry for scratch space\n    MaxShellTime:\n        default: 180\n        description: Maximum CPU time in seconds for shell processes under Linux\n    MaxShellWallClockTime:\n        default: 180\n        description: |-\n            Maximum wall clock time (i.e. real time, of the kind the clock on the wall\n            would measure) in seconds for shell processes under Linux\n    ShellCgroup:\n        default: false\n        description: |-\n            Under Linux: a cgroup directory used to constrain memory usage of shell\n            commands. The directory must be writable by the user which runs MediaWiki.\n            If specified, this is used instead of ulimit, which is inaccurate, and\n            causes malloc() to return NULL, which exposes bugs in C applications, making\n            them segfault or deadlock.\n            A wrapper script will create a cgroup for each shell command that runs, as\n            a subgroup of the specified cgroup. If the memory limit is exceeded, the\n            kernel will send a SIGKILL signal to a process in the subgroup.\n            **Example:**\n            ```\n            mkdir -p /sys/fs/cgroup/memory/mediawiki\n            mkdir -m 0777 /sys/fs/cgroup/memory/mediawiki/job\n            echo '$wgShellCgroup = \"/sys/fs/cgroup/memory/mediawiki/job\";' >> LocalSettings.php\n            ```\n            The reliability of cgroup cleanup can be improved by installing a\n            notify_on_release script in the root cgroup, see e.g.\n            https://gerrit.wikimedia.org/r/#/c/40784\n    PhpCli:\n        default: /usr/bin/php\n        description: Executable path of the PHP cli binary. Should be set up on install.\n    ShellRestrictionMethod:\n        default: autodetect\n        type:\n            - string\n            - boolean\n        description: |-\n            Method to use to restrict shell commands\n            Supported options:\n            - 'autodetect': Autodetect if any restriction methods are available\n            - 'firejail': Use firejail <https://firejail.wordpress.com/>\n            - false: Don't use any restrictions\n            @note If using firejail with MediaWiki running in a home directory different\n            from the webserver user, firejail 0.9.44+ is required.\n            @since 1.31\n    ShellboxUrls:\n        default:\n            default: null\n        type: object\n        additionalProperties:\n            type: [ string, boolean, \"null\" ]\n        description: |-\n            Shell commands can be run on a remote server using Shellbox. To use this\n            feature, set this to the URLs mapped by the service, and also configure $wgShellboxSecretKey.\n            You can also disable a certain service by setting it to false or null.\n            'default' would be the default URL if no URL is defined for that service.\n            For more information about installing Shellbox, see\n            https://www.mediawiki.org/wiki/Shellbox\n            @since 1.37\n    ShellboxSecretKey:\n        default: null\n        type:\n            - string\n            - \"null\"\n        description: |-\n            The secret key for HMAC verification of Shellbox requests. Set this to\n            a long random string.\n            @since 1.36\n    ShellboxShell:\n        default: /bin/sh\n        type:\n            - string\n            - \"null\"\n        description: |-\n            The POSIX-compatible shell to use when running scripts. This is used by\n            some media handling shell commands.\n            If ShellboxUrls is configured, this path should exist on the remote side.\n            On Windows this should be the full path to bash.exe, not git-bash.exe.\n            @since 1.42\n    HTTPTimeout:\n        default: 25\n        type: number\n        description: |-\n            Timeout for HTTP requests done internally, in seconds.\n            @since 1.5\n    HTTPConnectTimeout:\n        default: 5.0\n        type: number\n        description: |-\n            Timeout for connections done internally (in seconds).\n            Only supported if cURL is installed, ignored otherwise.\n            @since 1.22\n    HTTPMaxTimeout:\n        default: 0\n        type: number\n        description: |-\n            The maximum HTTP request timeout in seconds. If any specified or configured\n            request timeout is larger than this, then this value will be used instead.\n            Zero is interpreted as \"no limit\".\n            @since 1.35\n    HTTPMaxConnectTimeout:\n        default: 0\n        type: number\n        description: |-\n            The maximum HTTP connect timeout in seconds. If any specified or configured\n            connect timeout is larger than this, then this value will be used instead.\n            Zero is interpreted as \"no limit\".\n            @since 1.35\n    HTTPImportTimeout:\n        default: 25\n        description: |-\n            Timeout for HTTP requests done internally for transwiki imports, in seconds.\n            @since 1.29\n    AsyncHTTPTimeout:\n        default: 25\n        description: \"Timeout for Asynchronous (background) HTTP requests, in seconds.\"\n    HTTPProxy:\n        default: \"\"\n        description: Proxy to use for CURL requests.\n    LocalVirtualHosts:\n        default: { }\n        type: object\n        description: |-\n            A list of URL domains that will be routed to the proxy specified by\n            $wgLocalHTTPProxy.\n            @since 1.25\n    LocalHTTPProxy:\n        default: false\n        type:\n            - string\n            - boolean\n        description: |-\n            Proxy to use for requests to domains in $wgLocalVirtualHosts\n            If set to false, no reverse proxy will be used for local requests.\n            @since 1.38\n    AllowExternalReqID:\n        default: false\n        description: |-\n            Whether to respect/honour\n             - request ID provided by the incoming request via the `X-Request-Id`\n             - trace context provided by the incoming request via the `tracestate` and `traceparent`\n            Set to `true` if the entity sitting in front of MediaWiki sanitises external requests.\n            Default: `false`.\n    JobRunRate:\n        default: 1\n        description: |-\n            Number of jobs to perform per request. May be less than one in which case jobs are\n            performed probabilistically. If this is zero, jobs will not be done during ordinary\n            apache requests. In this case, maintenance/runJobs.php should be run in loop every\n            few seconds via a service or cron job. If using a cron job, be sure to handle the\n            case where the script is already running (e.g. via `/usr/bin/flock -n <lock_file>`).\n            If this is set to a non-zero number, then it is highly recommended that PHP run in\n            fastcgi mode (php_fpm). When using a standard Apache PHP handler (mod_php), it is\n            recommended that output_buffering and zlib.output_compression both be set to \"Off\",\n            allowing MediaWiki to install an unlimited size output buffer on the fly. Setting\n            output_buffering to an integer (e.g. 4096) or enabling zlib.output_compression can\n            cause user-visible slowness as background tasks execute during web requests.\n            Regardless of the web server engine in use, be sure to configure a sufficient number\n            processes/threads in order to avoid exhaustion (which will cause user-visible slowness).\n    RunJobsAsync:\n        default: false\n        description: |-\n            When $wgJobRunRate > 0, try to run jobs asynchronously, spawning a new process\n            to handle the job execution, instead of blocking the request until the job\n            execution finishes.\n            @since 1.23\n    UpdateRowsPerJob:\n        default: 300\n        description: Number of rows to update per job\n    UpdateRowsPerQuery:\n        default: 100\n        description: Number of rows to update per query\n    RedirectOnLogin:\n        default: null\n        description: |-\n            Allow redirection to another page when a user logs in.\n            To enable, set to a string like 'Main Page'\n    VirtualRestConfig:\n        default:\n            paths: []\n            modules: []\n            global: { timeout: 360, forwardCookies: false, HTTPProxy: null }\n        mergeStrategy: array_plus_2d\n        type: object\n        description: |-\n            Global configuration variable for Virtual REST Services.\n            Use the 'path' key to define automatically mounted services. The value for this\n            key is a map of path prefixes to service configuration. The latter is an array of:\n              - class : the fully qualified class name\n              - options : map of arguments to the class constructor\n            Such services will be available to handle queries under their path from the VRS\n            singleton, e.g. MediaWikiServices::getInstance()->getVirtualRESTServiceClient();\n            Auto-mounting example for Parsoid:\n            $wgVirtualRestConfig['paths']['/parsoid/'] = [\n                'class' => ParsoidVirtualRESTService::class,\n                'options' => [\n                    'url' => 'http://localhost:8000',\n                    'prefix' => 'enwiki',\n                    'domain' => 'en.wikipedia.org'\n                ]\n            ];\n            Parameters for different services can also be declared inside the 'modules' value,\n            which is to be treated as an associative array. The parameters in 'global' will be\n            merged with service-specific ones. The result will then be passed to\n            VirtualRESTService::__construct() in the module.\n            Example config for Parsoid:\n              $wgVirtualRestConfig['modules']['parsoid'] = [\n                'url' => 'http://localhost:8000',\n                'prefix' => 'enwiki',\n                'domain' => 'en.wikipedia.org',\n              ];\n            @since 1.25\n    EventRelayerConfig:\n        default:\n            default: { class: Wikimedia\\EventRelayer\\EventRelayerNull }\n        type: object\n        description: |-\n            Mapping of event channels (or channel categories) to EventRelayer configuration.\n            By setting up a PubSub system (like Kafka) and enabling a corresponding EventRelayer class\n            that uses it, MediaWiki can broadcast events to all subscribers. Certain features like WAN\n            cache purging and CDN cache purging will emit events to this system. Appropriate listeners\n            can subscribe to the channel and take actions based on the events. For example, a local daemon\n            can run on each CDN cache node and perform local purges based on the URL purge channel\n            events.\n            Some extensions may want to use \"channel categories\" so that different channels can also\n            share the same custom relayer instance (e.g. when it's likely to be overridden). They can use\n            EventRelayerGroup::getRelayer() based on the category but call notify() on various different\n            actual channels. One reason for this would be that some systems have very different\n            performance vs durability needs, so one system (e.g. Kafka) may not be suitable for all\n            uses.\n            The 'default' key is for all channels (or channel categories) without an explicit entry\n            here.\n            @since 1.27\n    Pingback:\n        default: false\n        type: boolean\n        description: |-\n            Share data about this installation with MediaWiki developers\n            When set to true, MediaWiki will periodically ping https://www.mediawiki.org/ with basic\n            data about this MediaWiki instance. This data includes, for example, the type of system,\n            PHP version, and chosen database backend. The Wikimedia Foundation shares this data with\n            MediaWiki developers to help guide future development efforts.\n            For details about what data is sent, see: https://www.mediawiki.org/wiki/Manual:$wgPingback\n            For the pingback privacy policy, see:\n            https://wikimediafoundation.org/wiki/MediaWiki_Pingback_Privacy_Statement\n            Aggregate pingback data is available at: https://pingback.wmcloud.org/\n            @since 1.28\n    OriginTrials:\n        default: []\n        type: array\n        description: |-\n            Origin Trials tokens.\n            @since 1.33\n    ReportToExpiry:\n        default: 86400\n        type: integer\n        description: |-\n            Expiry of the endpoint definition for the Reporting API.\n            @unstable EXPERIMENTAL\n            @since 1.34\n    ReportToEndpoints:\n        default: []\n        type: array\n        description: |-\n            List of endpoints for the Reporting API.\n            @unstable EXPERIMENTAL\n            @since 1.34\n    FeaturePolicyReportOnly:\n        default: []\n        type: array\n        description: |-\n            List of Feature Policy Reporting types to enable.\n            Each entry is turned into a Feature-Policy-Report-Only header.\n            @unstable EXPERIMENTAL\n            @since 1.34\n    SkinsPreferred:\n        default:\n            - vector-2022\n            - vector\n        type: array\n        description: |-\n            List of preferred skins to be listed higher in Special:Preferences\n            @since 1.38\n    SpecialContributeSkinsEnabled:\n        default: []\n        type: array\n        description: |-\n            List of skins that show a link to the Special:Contribute page\n            @since 1.40\n    EnableEditRecovery:\n        default: false\n        type: boolean\n        description: |-\n            Whether to enable the client-side edit recovery feature.\n            @unstable Temporary feature flag, T341844\n            @since 1.41\n    EditRecoveryExpiry:\n        default: 2592000\n        type: integer\n        description: Number of seconds to keep edit recovery data after the edit is stored.\n    UseCodexSpecialBlock:\n        default: false\n        type: boolean\n        description: |-\n            Whether to use Codex in Special:Block form.\n            @unstable Temporary feature flag, T358153\n            @since 1.42\n    ShowLogoutConfirmation:\n        default: false\n        type: boolean\n        description: |-\n            Whether to display a confirmation screen during user log out.\n            @unstable Temporary feature flag, T357484\n            @since 1.42\n    EnableProtectionIndicators:\n        default: false\n        type: boolean\n        description: |-\n            Whether to show indicators on a page when it is protected.\n            @since 1.43\n    OutputPipelineStages:\n        default: { }\n        type: object\n        description: |-\n            OutputPipelineStages to add to the DefaultOutputPipeline.\n            @unstable EXPERIMENTAL\n            @since 1.43\n    FeatureShutdown:\n        default: []\n        type: array\n        description: |-\n            Allow temporarily disabling use of certain features. Useful for\n            large site operators to push people to newer APIs while still\n            keeping the breakage short and contained.\n            This should be an array, where a key is a feature name and the value\n            is an array of shutdown arrays, each containing the following keys:\n            \t'start' => Shutdown start, parsed with strtotime(). (required)\n            \t'end' => Shutdown end, parsed with strtotime(). (required)\n            \t'percentage' => Number between 0 and 100. If set, only a certain\n            \t  percentage of requests will be blocked.\n            For example:\n            @code\n            $wgFeatureShutdown = [\n              'pre-1.24-tokens' => [\n                [\n                  'start' => '2021-07-01T00:00 +00:00',\n                  'end' => '2021-08-01T00:00 +00:00',\n                  'percentage' => 50,\n                ],\n              ],\n            ];\n            @encdode\n            @since 1.44\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":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/docs/extension.schema.v1.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/docs/extension.schema.v2.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/docs/rest/discovery-1.0.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/docs/rest/mwapi-1.0.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/ExistingPageBare.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/ExistingPageHtml.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/ExistingPageSource.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/ExistingRevisionHtml.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/MediaFile.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/MediaLinks.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/ModuleSpec.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/NewPage.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/PageHistory.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/PageHistoryCount.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/PageLanguageLinks.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/RevisionCompare.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/RevisionMetaDataBare.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/RevisionMetaDataWithSource.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/Handler/Schema/SearchResults.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/content.v1.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/coreDevelopmentRoutes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/coreRoutes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/i18n/en.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/i18n/qqq.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/Rest/specs.v0.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/api/i18n/en.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/api/i18n/qqq.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/installer/i18n/en.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/installer/i18n/qqq.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/libs/ParamValidator/i18n/en.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/includes/libs/ParamValidator/i18n/qqq.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/jsdoc.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/data/grammarTransformations/et.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/data/grammarTransformations/he.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/data/grammarTransformations/ka.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/data/grammarTransformations/ku.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/data/grammarTransformations/mn.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/data/grammarTransformations/nb.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/data/grammarTransformations/nn.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/data/grammarTransformations/rsk.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/data/grammarTransformations/ru.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/data/grammarTransformations/sv.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/data/grammarTransformations/uk.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/i18n/codex/en.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/i18n/codex/qqq.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/i18n/datetime/en.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/i18n/datetime/qqq.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/i18n/en.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/i18n/exif/en.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/i18n/exif/qqq.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/i18n/preferences/en.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/i18n/preferences/qqq.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/languages/i18n/qqq.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/maintenance/mediawiki.Title/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/maintenance/mediawiki.Title/generateJsToUpperCaseList.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/mw-config/.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/mw-config/config.js","messages":[],"suppressedMessages":[{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\[.","line":8,"column":17,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":8,"endColumn":18,"suggestions":[{"messageId":"removeEscape","fix":{"range":[169,170],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[169,169],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-sizzle","severity":2,"message":"Selector extensions are not allowed","line":27,"column":9,"nodeType":"CallExpression","endLine":27,"endColumn":33,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-animate-toggle","severity":2,"message":"Prefer CSS transitions to .hide","line":30,"column":5,"nodeType":"CallExpression","endLine":30,"endColumn":37,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-animate-toggle","severity":2,"message":"Prefer CSS transitions to .show","line":32,"column":5,"nodeType":"CallExpression","endLine":32,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-animate-toggle","severity":2,"message":"Prefer CSS transitions to .show","line":47,"column":5,"nodeType":"CallExpression","endLine":47,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-animate-toggle","severity":2,"message":"Prefer CSS transitions to .hide","line":50,"column":5,"nodeType":"CallExpression","endLine":50,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-animate-toggle","severity":2,"message":"Prefer CSS transitions to .hide","line":58,"column":5,"nodeType":"CallExpression","endLine":58,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-animate-toggle","severity":2,"message":"Prefer CSS transitions to .show","line":61,"column":5,"nodeType":"CallExpression","endLine":61,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-slide","severity":2,"message":"Prefer CSS transitions to .slideDown","line":78,"column":5,"nodeType":"CallExpression","endLine":78,"endColumn":86,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-slide","severity":2,"message":"Prefer CSS transitions to .slideUp","line":81,"column":5,"nodeType":"CallExpression","endLine":81,"endColumn":83,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-animate-toggle","severity":2,"message":"Prefer CSS transitions to .show","line":97,"column":5,"nodeType":"CallExpression","endLine":97,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-animate-toggle","severity":2,"message":"Prefer CSS transitions to .hide","line":100,"column":5,"nodeType":"CallExpression","endLine":100,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":270,"column":4,"nodeType":"CallExpression","endLine":272,"endColumn":55,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-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":"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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/package.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/jquery.lengthLimit.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/jquery.spinner/spinner.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/jquery.tablesorter/jquery.tablesorter.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-map-util","severity":2,"message":"Prefer Array#map to $.map","line":65,"column":11,"nodeType":"CallExpression","endLine":87,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":109,"column":30,"nodeType":"CallExpression","endLine":109,"endColumn":82,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":207,"column":9,"nodeType":"CallExpression","endLine":207,"endColumn":44,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":333,"column":5,"nodeType":"CallExpression","endLine":354,"endColumn":8,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":380,"column":10,"nodeType":"CallExpression","endLine":380,"endColumn":50,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":730,"column":9,"nodeType":"CallExpression","endLine":730,"endColumn":44,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":809,"column":4,"nodeType":"CallExpression","endLine":812,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/jquery/jquery.confirmable.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":96,"column":8,"nodeType":"CallExpression","endLine":96,"endColumn":57,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/jquery/jquery.confirmable.mediawiki.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/jquery/jquery.highlightText.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/jquery/jquery.makeCollapsible.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'wikipage.collapsibleContent'","line":425,"column":1,"nodeType":"Block","endLine":425,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":125,"column":19,"nodeType":"CallExpression","endLine":125,"endColumn":58,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":384,"column":9,"nodeType":"CallExpression","endLine":384,"endColumn":64,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":409,"column":30,"nodeType":"CallExpression","endLine":409,"endColumn":69,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * jQuery makeCollapsible\n * Note: To avoid performance issues such as reflows, several styles are\n * shipped in mediawiki.makeCollapsible.styles to reserve space for the toggle control. Please\n * familiarise yourself with that CSS before making any changes to this code.\n *\n * Dual licensed:\n * - CC BY 3.0 <https://creativecommons.org/licenses/by/3.0>\n * - GPL2 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>\n */\n/**\n * Collapse a collection of elements.\n *\n * @module jquery.makeCollapsible\n */\n( function () {\n\t/**\n\t * Handler for a click on a collapsible toggler.\n\t *\n\t * @private\n\t * @param {jQuery} $collapsible\n\t * @param {boolean} expand Expand the element, otherwise collapse\n\t * @param {jQuery|null} [$defaultToggle]\n\t * @param {Object|undefined} [options]\n\t */\n\tfunction toggleElement( $collapsible, expand, $defaultToggle, options ) {\n\t\toptions = options || {};\n\n\t\t// Validate parameters\n\n\t\t// $collapsible must be an instance of jQuery\n\t\tif ( !$collapsible.jquery ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( $defaultToggle === undefined ) {\n\t\t\t$defaultToggle = null;\n\t\t}\n\n\t\t// Trigger a custom event to allow callers to hook to the collapsing/expanding,\n\t\t// allowing the module to be testable, and making it possible to\n\t\t// e.g. implement persistence via cookies\n\t\t$collapsible.trigger( expand ? 'beforeExpand.mw-collapsible' : 'beforeCollapse.mw-collapsible' );\n\t\tconst hookCallback = function () {\n\t\t\t$collapsible.trigger( expand ? 'afterExpand.mw-collapsible' : 'afterCollapse.mw-collapsible' );\n\t\t};\n\n\t\t// Handle different kinds of elements\n\t\tlet $containers;\n\t\tif ( !options.plainMode && $collapsible.is( 'table' ) ) {\n\t\t\t// Tables\n\t\t\t// If there is a caption, hide all rows; otherwise, only hide body rows\n\t\t\tif ( $collapsible.find( '> caption' ).length ) {\n\t\t\t\t$containers = $collapsible.find( '> * > tr' );\n\t\t\t} else {\n\t\t\t\t$containers = $collapsible.find( '> tbody > tr' );\n\t\t\t}\n\t\t\tif ( $defaultToggle ) {\n\t\t\t\t// Exclude table row containing togglelink\n\t\t\t\t$containers = $containers.not( $defaultToggle.closest( 'tr' ) );\n\t\t\t}\n\n\t\t} else if ( !options.plainMode && ( $collapsible.is( 'ul' ) || $collapsible.is( 'ol' ) ) ) {\n\t\t\t// Lists\n\t\t\t$containers = $collapsible.find( '> li' );\n\t\t\tif ( $defaultToggle ) {\n\t\t\t\t// Exclude list-item containing togglelink\n\t\t\t\t$containers = $containers.not( $defaultToggle.parent() );\n\t\t\t}\n\t\t} else {\n\t\t\t// Everything else: <div>, <p> etc.\n\t\t\tconst $collapsibleContent = $collapsible.find( '> .mw-collapsible-content' );\n\n\t\t\t// If a collapsible-content is defined, act on it\n\t\t\tif ( !options.plainMode && $collapsibleContent.length ) {\n\t\t\t\t$containers = $collapsibleContent;\n\n\t\t\t// Otherwise assume this is a customcollapse with a remote toggle\n\t\t\t// .. and there is no collapsible-content because the entire element should be toggled\n\t\t\t} else {\n\t\t\t\t$containers = $collapsible;\n\t\t\t}\n\t\t}\n\n\t\t$containers.toggle( expand );\n\t\thookCallback();\n\t}\n\n\t/**\n\t * Handle clicking/keypressing on the collapsible element toggle and other\n\t * situations where a collapsible element is toggled (e.g. the initial\n\t * toggle for collapsed ones).\n\t *\n\t * @private\n\t * @param {jQuery} $toggle the clickable toggle itself\n\t * @param {jQuery} $collapsible the collapsible element\n\t * @param {jQuery.Event|null} e either the event or null if unavailable\n\t * @param {Object|undefined} options\n\t */\n\tfunction togglingHandler( $toggle, $collapsible, e, options ) {\n\t\toptions = options || {};\n\n\t\tif ( e ) {\n\t\t\tif (\n\t\t\t\te.type === 'click' &&\n\t\t\t\te.target.nodeName.toLowerCase() === 'a' &&\n\t\t\t\t$( e.target ).attr( 'href' )\n\t\t\t) {\n\t\t\t\t// Don't fire if a link was clicked (for premade togglers)\n\t\t\t\treturn;\n\t\t\t} else if ( e.type === 'keydown' && e.which !== 13 && e.which !== 32 ) {\n\t\t\t\t// Only handle the \"Enter\" or \"Space\" keys\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t}\n\n\t\t// This allows the element to be hidden on initial toggle without fiddling with the class\n\t\tlet wasCollapsed;\n\t\tif ( options.wasCollapsed !== undefined ) {\n\t\t\twasCollapsed = options.wasCollapsed;\n\t\t} else {\n\t\t\t// eslint-disable-next-line no-jquery/no-class-state\n\t\t\twasCollapsed = $collapsible.hasClass( 'mw-collapsed' );\n\t\t}\n\n\t\t// Toggle the state of the collapsible element (that is, expand or collapse)\n\t\t$collapsible.toggleClass( 'mw-collapsed', !wasCollapsed );\n\n\t\t// Toggle the mw-collapsible-toggle classes, if requested (for default and premade togglers by default)\n\t\tif ( options.toggleClasses ) {\n\t\t\t$toggle\n\t\t\t\t.toggleClass( 'mw-collapsible-toggle-collapsed', !wasCollapsed )\n\t\t\t\t.toggleClass( 'mw-collapsible-toggle-expanded', wasCollapsed );\n\t\t}\n\n\t\t// Toggle `aria-expanded` attribute, if requested (for default and premade togglers by default).\n\t\tif ( options.toggleARIA ) {\n\t\t\t$toggle.attr( 'aria-expanded', wasCollapsed ? 'true' : 'false' );\n\t\t}\n\n\t\t// Toggle the text (\"Show\"/\"Hide\") within elements tagged with mw-collapsible-text\n\t\tif ( options.toggleText ) {\n\t\t\tconst collapseText = options.toggleText.collapseText;\n\t\t\tconst expandText = options.toggleText.expandText;\n\n\t\t\tconst $textContainer = $toggle.find( '.mw-collapsible-text' );\n\t\t\tif ( $textContainer.length ) {\n\t\t\t\t$textContainer.text( wasCollapsed ? collapseText : expandText );\n\t\t\t}\n\t\t}\n\n\t\t// And finally toggle the element state itself\n\t\ttoggleElement( $collapsible, !!wasCollapsed, $toggle, options );\n\t}\n\n\t/**\n\t * If the URL contains a hash followed by the fragment identifier of an\n\t * element inside collapsed parents, expand them all and scroll to it.\n\t *\n\t * @private\n\t */\n\tfunction hashHandler() {\n\t\tconst fragment = mw.util.getTargetFromFragment();\n\t\tif ( !fragment ) {\n\t\t\t// The fragment doesn't exist\n\t\t\treturn;\n\t\t}\n\n\t\tconst $parents = $( fragment ).parents( '.mw-collapsed' );\n\t\tif ( !$parents.length ) {\n\t\t\t// The fragment is not in a collapsed element\n\t\t\treturn;\n\t\t}\n\n\t\t// Expand collapsed parents\n\t\t$parents.each( function () {\n\t\t\tconst $collapsible = $( this );\n\t\t\tif ( $collapsible.data( 'mw-made-collapsible' ) ) {\n\t\t\t\t$collapsible.data( 'mw-collapsible' ).expand();\n\t\t\t} else {\n\t\t\t\t// The collapsible has not been initialized, so just prevent it\n\t\t\t\t// from being collapsed\n\t\t\t\t$collapsible.removeClass( 'mw-collapsed' );\n\t\t\t}\n\t\t} );\n\n\t\t// Scroll to the fragment\n\t\tfragment.scrollIntoView();\n\t}\n\n\t/**\n\t * Enable collapsible-functionality on all elements in the collection.\n\t *\n\t * - Will prevent binding twice to the same element.\n\t * - Initial state is expanded by default, this can be overridden by adding class\n\t *   \"mw-collapsed\" to the \"mw-collapsible\" element.\n\t * - Elements made collapsible have jQuery data \"mw-made-collapsible\" set to true.\n\t * - The inner content is wrapped in a \"div.mw-collapsible-content\" (except for tables and lists).\n\t *\n\t * To use this {@link jQuery} plugin, load the `jquery.makeCollapsible` module with {@link mw.loader}.\n\t *\n\t * @example\n\t * mw.loader.using( 'jquery.makeCollapsible' ).then( () => {\n\t *       $( 'table' ).makeCollapsible();\n\t * } );\n\t * @param {Object} [options]\n\t * @param {string} [options.collapseText] Text used for the toggler, when clicking it would\n\t *   collapse the element. Default: the 'data-collapsetext' attribute of the\n\t *   collapsible element or the content of 'collapsible-collapse' message.\n\t * @param {string} [options.expandText] Text used for the toggler, when clicking it would\n\t *   expand the element. Default: the 'data-expandtext' attribute of the\n\t *   collapsible element or the content of 'collapsible-expand' message.\n\t * @param {boolean} [options.collapsed] Whether to collapse immediately. By default\n\t *   collapse only if the element has the 'mw-collapsed' class.\n\t * @param {jQuery} [options.$customTogglers] Elements to be used as togglers\n\t *   for this collapsible element. By default, if the collapsible element\n\t *   has an id attribute like 'mw-customcollapsible-XXX', elements with a\n\t *   **class** of 'mw-customtoggle-XXX' are made togglers for it.\n\t * @param {boolean} [options.plainMode=false] Whether to use a \"plain mode\" when making the\n\t *   element collapsible - that is, hide entire tables and lists (instead\n\t *   of hiding only all rows but first of tables, and hiding each list\n\t *   item separately for lists) and don't wrap other elements in\n\t *   div.mw-collapsible-content. May only be used with custom togglers.\n\t * @return {jQuery}\n\t * @memberof module:jquery.makeCollapsible\n\t * @method\n\t */\n\t$.fn.makeCollapsible = function ( options ) {\n\t\toptions = options || {};\n\n\t\tthis.each( function () {\n\t\t\t// Ensure class \"mw-collapsible\" is present in case .makeCollapsible()\n\t\t\t// is called on element(s) that don't have it yet.\n\t\t\tconst $collapsible = $( this ).addClass( 'mw-collapsible' );\n\n\t\t\t// Return if it has been enabled already.\n\t\t\tif ( $collapsible.data( 'mw-made-collapsible' ) ) {\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\t// Let CSS know that it no longer needs to worry about flash of unstyled content.\n\t\t\t\t// This will allow mediawiki.makeCollapsible.styles to disable temporary pseudo elements, that\n\t\t\t\t// are needed to avoid a flash of unstyled content.\n\t\t\t\t$collapsible.addClass( 'mw-made-collapsible' )\n\t\t\t\t\t.data( 'mw-made-collapsible', true );\n\t\t\t}\n\n\t\t\t// Use custom text or default?\n\t\t\tconst collapseText = options.collapseText || $collapsible.attr( 'data-collapsetext' ) || mw.msg( 'collapsible-collapse' );\n\t\t\tconst expandText = options.expandText || $collapsible.attr( 'data-expandtext' ) || mw.msg( 'collapsible-expand' );\n\n\t\t\t// Default click/keydown handler and toggle link to use when none is present\n\t\t\tlet actionHandler = function ( e, opts ) {\n\t\t\t\tconst defaultOpts = {\n\t\t\t\t\ttoggleClasses: true,\n\t\t\t\t\ttoggleARIA: true,\n\t\t\t\t\ttoggleText: { collapseText: collapseText, expandText: expandText }\n\t\t\t\t};\n\t\t\t\topts = Object.assign( defaultOpts, options, opts );\n\n\t\t\t\t// Take care of cloned content (e.g. in reference popups): if the toggle\n\t\t\t\t// link is not inside the original collapsible, make it toggle the\n\t\t\t\t// cloned collapsible (which we expect to be there) instead of\n\t\t\t\t// original.\n\t\t\t\tlet $currentCollapsible = $.contains( $collapsible.get( 0 ), this ) ?\n\t\t\t\t\t$collapsible :\n\t\t\t\t\t$( this ).closest( '.mw-collapsible' );\n\t\t\t\t// However, if we still can't find the collapsible, fallback to original\n\t\t\t\tif ( $currentCollapsible.length === 0 ) {\n\t\t\t\t\t$currentCollapsible = $collapsible;\n\t\t\t\t}\n\n\t\t\t\ttogglingHandler( $( this ), $currentCollapsible, e, opts );\n\t\t\t};\n\n\t\t\t// Default toggle link. Only build it when needed to avoid jQuery memory leaks (event data).\n\t\t\tconst buildDefaultToggleLink = function () {\n\t\t\t\treturn $( '<span>' )\n\t\t\t\t\t.addClass( 'mw-collapsible-text' )\n\t\t\t\t\t.text( collapseText )\n\t\t\t\t\t.wrap( '<button type=\"button\" class=\"mw-collapsible-toggle mw-collapsible-toggle-default\"></button>' )\n\t\t\t\t\t.parent();\n\t\t\t};\n\n\t\t\t// Check if this element has a custom position for the toggle link\n\t\t\t// (ie. outside the container or deeper inside the tree)\n\t\t\tlet $customTogglers;\n\t\t\tif ( options.$customTogglers ) {\n\t\t\t\t$customTogglers = $( options.$customTogglers );\n\t\t\t} else {\n\t\t\t\tlet collapsibleId = $collapsible.attr( 'id' ) || '';\n\t\t\t\tif ( collapsibleId.startsWith( 'mw-customcollapsible-' ) ) {\n\t\t\t\t\tcollapsibleId = $.escapeSelector( collapsibleId );\n\t\t\t\t\t$customTogglers = $( '.' + collapsibleId.replace( 'mw-customcollapsible', 'mw-customtoggle' ) )\n\t\t\t\t\t\t.addClass( 'mw-customtoggle' );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add event handlers to custom togglers or create our own ones\n\t\t\tlet $toggle;\n\t\t\tif ( $customTogglers && $customTogglers.length ) {\n\t\t\t\tactionHandler = function ( e, opts ) {\n\t\t\t\t\tconst defaultOpts = {};\n\t\t\t\t\topts = Object.assign( defaultOpts, options, opts );\n\t\t\t\t\ttogglingHandler( $( this ), $collapsible, e, opts );\n\t\t\t\t};\n\n\t\t\t\t$toggle = $customTogglers;\n\n\t\t\t} else {\n\t\t\t\t// If this is not a custom case, do the default: wrap the\n\t\t\t\t// contents and add the toggle link. Different elements are\n\t\t\t\t// treated differently.\n\n\t\t\t\tlet $firstItem;\n\t\t\t\tif ( $collapsible.is( 'table' ) ) {\n\n\t\t\t\t\t// If the table has a caption, collapse to the caption\n\t\t\t\t\t// as opposed to the first row\n\t\t\t\t\tconst $caption = $collapsible.find( '> caption' );\n\t\t\t\t\tif ( $caption.length ) {\n\t\t\t\t\t\t$toggle = $caption.find( '> .mw-collapsible-toggle, .mw-collapsible-toggle-placeholder' ).first();\n\n\t\t\t\t\t\t// If there is no toggle link, add it to the end of the caption\n\t\t\t\t\t\tif ( !$toggle.length ) {\n\t\t\t\t\t\t\t$toggle = buildDefaultToggleLink().appendTo( $caption );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// The toggle-link will be in one of the cells (td or th) of the first row\n\t\t\t\t\t\t$firstItem = $collapsible.find( 'tr' ).first().find( 'th, td' );\n\t\t\t\t\t\t$toggle = $firstItem.find( '> .mw-collapsible-toggle, .mw-collapsible-toggle-placeholder' ).first();\n\n\t\t\t\t\t\t// If theres no toggle link, add it to the last cell\n\t\t\t\t\t\tif ( !$toggle.length ) {\n\t\t\t\t\t\t\t$toggle = buildDefaultToggleLink().prependTo( $firstItem.eq( -1 ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( $collapsible.parent().is( 'li' ) &&\n\t\t\t\t\t$collapsible.parent().children( '.mw-collapsible' ).length === 1 &&\n\t\t\t\t\t$collapsible.find( '> .mw-collapsible-toggle, .mw-collapsible-toggle-placeholder' ).length === 0\n\t\t\t\t) {\n\t\t\t\t\t// special case of one collapsible in <li> tag\n\t\t\t\t\t$toggle = buildDefaultToggleLink();\n\t\t\t\t\t$collapsible.before( $toggle );\n\t\t\t\t} else if ( $collapsible.is( 'ul' ) || $collapsible.is( 'ol' ) ) {\n\t\t\t\t\t// The toggle-link will be in the first list-item\n\t\t\t\t\t$firstItem = $collapsible.find( 'li' ).first();\n\t\t\t\t\t$toggle = $firstItem.find( '> .mw-collapsible-toggle, .mw-collapsible-toggle-placeholder' ).first();\n\n\t\t\t\t\t// If theres no toggle link, add it\n\t\t\t\t\tif ( !$toggle.length ) {\n\t\t\t\t\t\t// Make sure the numeral order doesn't get messed up, force the first (soon to be second) item\n\t\t\t\t\t\t// to be \"1\". Except if the value-attribute is already used.\n\t\t\t\t\t\t// If no value was set WebKit returns \"\", Mozilla returns '-1', others return 0, null or undefined.\n\t\t\t\t\t\tconst firstval = $firstItem.prop( 'value' );\n\t\t\t\t\t\tif ( firstval === undefined || !firstval || firstval === '-1' || firstval === -1 ) {\n\t\t\t\t\t\t\t$firstItem.prop( 'value', '1' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$toggle = buildDefaultToggleLink();\n\t\t\t\t\t\t$toggle.wrap( '<li class=\"mw-collapsible-toggle-li\"></li>' ).parent().prependTo( $collapsible );\n\t\t\t\t\t}\n\n\t\t\t\t} else { // <div>, <p> etc.\n\n\t\t\t\t\t// The toggle-link will be the first child of the element\n\t\t\t\t\t$toggle = $collapsible.find( '> .mw-collapsible-toggle, .mw-collapsible-toggle-placeholder' ).first();\n\n\t\t\t\t\t// If a direct child .content-wrapper does not exists, create it\n\t\t\t\t\tif ( !$collapsible.find( '> .mw-collapsible-content' ).length ) {\n\t\t\t\t\t\t$collapsible.wrapInner( '<div class=\"mw-collapsible-content\"></div>' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If theres no toggle link, add it\n\t\t\t\t\tif ( !$toggle.length ) {\n\t\t\t\t\t\t$toggle = buildDefaultToggleLink().prependTo( $collapsible );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If the toggle is just a placeholder, replace it with a real one\n\t\t\t// eslint-disable-next-line no-jquery/no-class-state\n\t\t\tif ( $toggle.hasClass( 'mw-collapsible-toggle-placeholder' ) ) {\n\t\t\t\tconst $realToggle = buildDefaultToggleLink();\n\t\t\t\t$toggle.replaceWith( $realToggle );\n\t\t\t\t$toggle = $realToggle;\n\t\t\t}\n\n\t\t\t// Attach event handlers to togglelink\n\t\t\t$toggle.on( 'click.mw-collapsible keydown.mw-collapsible', actionHandler )\n\t\t\t\t.attr( 'aria-expanded', 'true' )\n\t\t\t\t.prop( 'tabIndex', 0 );\n\n\t\t\t$( this ).data( 'mw-collapsible', {\n\t\t\t\tcollapse: function () {\n\t\t\t\t\tactionHandler.call( $toggle.get( 0 ), null, { wasCollapsed: false } );\n\t\t\t\t},\n\t\t\t\texpand: function () {\n\t\t\t\t\tactionHandler.call( $toggle.get( 0 ), null, { wasCollapsed: true } );\n\t\t\t\t},\n\t\t\t\ttoggle: function () {\n\t\t\t\t\tactionHandler.call( $toggle.get( 0 ), null, null );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Initial state\n\t\t\t// eslint-disable-next-line no-jquery/no-class-state\n\t\t\tif ( options.collapsed || $collapsible.hasClass( 'mw-collapsed' ) ) {\n\t\t\t\t// One toggler can hook to multiple elements, and one element can have\n\t\t\t\t// multiple togglers. This is the best way to handle that.\n\t\t\t\tactionHandler.call( $toggle.get( 0 ), null, { wasCollapsed: false } );\n\t\t\t}\n\n\t\t} );\n\n\t\t// Attach hash handler\n\t\twindow.addEventListener( 'hashchange', hashHandler );\n\n\t\t/**\n\t\t * Fired after collapsible content has been initialized.\n\t\t *\n\t\t * This gives an option to modify the collapsible behavior.\n\t\t *\n\t\t * @event ~'wikipage.collapsibleContent'\n\t\t * @memberof Hooks\n\t\t * @param {jQuery} $collapsible An element that has been made collapsible\n\t\t */\n\t\tmw.hook( 'wikipage.collapsibleContent' ).fire( this );\n\n\t\treturn this;\n\t};\n\n\t// Run hash handler right now in case the URL already has a hash\n\thashHandler();\n\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/jquery/jquery.suggestions.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-sizzle","severity":2,"message":"Selector extensions are not allowed","line":90,"column":6,"nodeType":"CallExpression","endLine":90,"endColumn":46,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":157,"column":10,"nodeType":"CallExpression","endLine":157,"endColumn":53,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":162,"column":32,"nodeType":"CallExpression","endLine":162,"endColumn":72,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":187,"column":32,"nodeType":"CallExpression","endLine":187,"endColumn":72,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":193,"column":11,"nodeType":"CallExpression","endLine":193,"endColumn":54,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-sizzle","severity":2,"message":"Selector extensions are not allowed","line":427,"column":22,"nodeType":"CallExpression","endLine":427,"endColumn":62,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/jquery/jquery.textSelection.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/jsdoc.types.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.DateFormatter/DateFormatter.js","messages":[],"suppressedMessages":[{"ruleId":"no-new","severity":2,"message":"Do not use 'new' for side effects.","line":27,"column":5,"nodeType":"ExpressionStatement","messageId":"noNewStatement","endLine":27,"endColumn":66,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"compat/compat","severity":2,"message":"Intl.supportedValuesOf() is not supported in Safari 11.1, iOS Safari 11.3-11.4","line":68,"column":10,"nodeType":"MemberExpression","endLine":68,"endColumn":32,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"compat/compat","severity":2,"message":"Intl.supportedValuesOf() is not supported in Safari 11.1, iOS Safari 11.3-11.4","line":68,"column":36,"nodeType":"MemberExpression","endLine":68,"endColumn":58,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.ForeignApi/index.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.ForeignApi/mediawiki.ForeignApi.core.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.ForeignApi/mediawiki.ForeignRest.core.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.ForeignStructuredUpload.BookletLayout/BookletLayout.js","messages":[],"suppressedMessages":[{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":116,"column":6,"nodeType":"CallExpression","endLine":116,"endColumn":55,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.ForeignStructuredUpload.BookletLayout/ForeignStructuredUpload.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.ForeignStructuredUpload.BookletLayout/index.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.ForeignUpload.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.String.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.Title/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.Title/Title.js","messages":[],"suppressedMessages":[{"ruleId":"no-control-regex","severity":2,"message":"Unexpected control character(s) in regular expression: \\x00, \\x1f.","line":154,"column":13,"nodeType":"Literal","messageId":"unexpected","endLine":154,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.Title/phpCharToUpper.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.Upload.BookletLayout/BookletLayout.js","messages":[],"suppressedMessages":[{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":209,"column":5,"nodeType":"CallExpression","endLine":209,"endColumn":54,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.Upload.BookletLayout/mw.widgets.StashedFileWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.Upload.Dialog.js","messages":[],"suppressedMessages":[{"ruleId":"new-cap","severity":2,"message":"A constructor name should not start with a lowercase letter.","line":136,"column":19,"nodeType":"NewExpression","messageId":"lower","endLine":136,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.Upload.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.Uri/Uri.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.action.edit/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.action.edit/edit.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'wikipage.editform'","line":12,"column":1,"nodeType":"Block","endLine":12,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/*!\n * Scripts for action=edit as rendered by EditPage.php.\n */\n'use strict';\n\n/**\n * Fired when the editform is added to the edit page.\n *\n * Similar to the {@link event:'wikipage.content' wikipage.content hook},\n * $editForm can still be detached when this hook is fired.\n *\n * @event ~'wikipage.editform'\n * @memberof Hooks\n * @param {jQuery} $editForm The most appropriate element containing the\n *   editform, usually #editform.\n */\n\n$( () => {\n\tconst $wpSummary = $( '#wpSummaryWidget' );\n\n\t// The summary field might not be there, e.g. when extensions replace it\n\tif ( $wpSummary.length ) {\n\t\tconst wpSummary = OO.ui.infuse( $wpSummary );\n\n\t\t// Show a byte-counter to users with how many bytes are left for their edit summary.\n\t\tmw.widgets.visibleCodePointLimit( wpSummary, mw.config.get( 'wgCommentCodePointLimit' ) );\n\t}\n\n\t// Restore the edit box scroll state following a preview operation,\n\t// and set up a form submission handler to remember this state.\n\tconst editBox = document.getElementById( 'wpTextbox1' );\n\tconst scrollTop = document.getElementById( 'wpScrolltop' );\n\tconst $editForm = $( '#editform' );\n\tmw.hook( 'wikipage.editform' ).fire( $editForm );\n\tif ( $editForm.length && editBox && scrollTop ) {\n\t\tif ( scrollTop.value ) {\n\t\t\teditBox.scrollTop = scrollTop.value;\n\t\t}\n\t\t$editForm.on( 'submit', () => {\n\t\t\tscrollTop.value = editBox.scrollTop;\n\t\t} );\n\t}\n\n\tmw.hook( 'wikipage.watchlistChange' ).add( ( isWatched, expiry, expirySelected ) => {\n\t\t// Update the \"Watch this page\" checkbox on action=edit when the\n\t\t// page is watched or unwatched via the tab (T14395).\n\t\tconst watchCheckbox = document.getElementById( 'wpWatchthisWidget' );\n\t\tif ( watchCheckbox ) {\n\t\t\tOO.ui.infuse( watchCheckbox ).setSelected( isWatched );\n\n\t\t\t// Also reset expiry selection to keep it in sync\n\t\t\tif ( isWatched ) {\n\t\t\t\tconst expiryCheckbox = document.getElementById( 'wpWatchlistExpiryWidget' );\n\t\t\t\tif ( expiryCheckbox ) {\n\t\t\t\t\tOO.ui.infuse( expiryCheckbox ).setValue( expirySelected );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} );\n} );\n\nrequire( './stash.js' );\n\nrequire( './watchlistExpiry.js' );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.action.edit/stash.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.action.edit/watchlistExpiry.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.action/mediawiki.action.edit.editWarning.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.action/mediawiki.action.edit.preview.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.action/mediawiki.action.history.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.action/mediawiki.action.protect.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.action/mediawiki.action.view.metadata.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":35,"column":12,"nodeType":"CallExpression","endLine":35,"endColumn":42,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":43,"column":7,"nodeType":"CallExpression","endLine":43,"endColumn":40,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.action/mediawiki.action.view.postEdit.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'postEdit'","line":21,"column":1,"nodeType":"Block","endLine":21,"endColumn":1},{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'postEdit.afterRemoval'","line":36,"column":1,"nodeType":"Block","endLine":36,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"( function () {\n\t'use strict';\n\n\t/**\n\t * Fired after an edit was successfully saved.\n\t *\n\t * Does not fire for null edits.\n\t *\n\t * Code that fires the postEdit hook should first set `wgRevisionId` and `wgCurRevisionId`\n\t * to the revision associated with the edit that triggered the postEdit hook, then fire\n\t * the postEdit hook.\n\t *\n\t * @example\n\t * mw.config.set( {\n\t *    wgCurRevisionId: data.newrevid,\n\t *    wgRevisionId: data.newrevid\n\t * } );\n\t * // Now fire the hook.\n\t * mw.hook( 'postEdit' ).fire();\n\t *\n\t * @event ~'postEdit'\n\t * @memberof Hooks\n\t * @param {Object} [data] Optional data\n\t * @param {string|jQuery|Array} [data.message] Message that listeners\n\t *  should use when displaying notifications. String for plain text,\n\t *  use array or jQuery object to pass actual nodes.\n\t * @param {string|mw.user} [data.user=mw.user] User that made the edit.\n\t * @param {boolean} [data.tempUserCreated] Whether a temporary user account\n\t *  was created.\n\t */\n\n\t/**\n\t * After the listener for #postEdit removes the notification.\n\t *\n\t * @deprecated\n\t * @event ~'postEdit.afterRemoval'\n\t * @memberof Hooks\n\t */\n\n\tconst config = require( './config.json' );\n\tconst storageKey = 'mw-PostEdit' + mw.config.get( 'wgPageName' );\n\n\tfunction showConfirmation( data ) {\n\t\tdata = data || {};\n\n\t\tconst label = data.message || mw.message(\n\t\t\tconfig.EditSubmitButtonLabelPublish ?\n\t\t\t\t'postedit-confirmation-published' :\n\t\t\t\t'postedit-confirmation-saved',\n\t\t\tdata.user || mw.user,\n\t\t\tmw.config.get( 'wgRevisionId' )\n\t\t).parseDom();\n\n\t\tdata.message = new OO.ui.MessageWidget( {\n\t\t\ttype: 'success',\n\t\t\tinline: true,\n\t\t\tlabel: label\n\t\t} ).$element[ 0 ];\n\n\t\tmw.notify( data.message, {\n\t\t\tclasses: [ 'postedit' ]\n\t\t} );\n\n\t\t// Deprecated - use the 'postEdit' hook, and an additional pause if required\n\t\tmw.hook( 'postEdit.afterRemoval' ).fire();\n\n\t\tif ( data.tempUserCreated ) {\n\t\t\tmw.tempUserCreated.showPopup();\n\t\t}\n\t}\n\n\tfunction init() {\n\t\t// JS-only flag that allows another module providing a hook handler to suppress the default one.\n\t\tif ( !mw.config.get( 'wgPostEditConfirmationDisabled' ) ) {\n\t\t\tmw.hook( 'postEdit' ).add( showConfirmation );\n\t\t}\n\n\t\t// Check storage and cookie (set server-side)\n\t\tlet action = mw.storage.session.get( storageKey ) || mw.config.get( 'wgPostEdit' );\n\t\tif ( action ) {\n\t\t\tlet tempUserCreated = false;\n\t\t\tconst plusPos = action.indexOf( '+' );\n\t\t\tif ( plusPos > -1 ) {\n\t\t\t\taction = action.slice( 0, plusPos );\n\t\t\t\ttempUserCreated = true;\n\t\t\t}\n\n\t\t\t// Set 'wgPostEdit' when displaying a message requested via storage, to allow CampaignEvents\n\t\t\t// to override post-edit behavior for some page creations performed using VisualEditor, which\n\t\t\t// shows a message via storage when creating new pages (T240041#8148006):\n\t\t\t// https://gerrit.wikimedia.org/g/mediawiki/extensions/CampaignEvents/+/e380af0c69b17ecb05fc3258f92c9df625a35449/resources/ext.campaignEvents.eventpage/index.js#187\n\t\t\t// https://gerrit.wikimedia.org/g/mediawiki/extensions/VisualEditor/+/192c1051120c8dd331f00b9024b5beadab1cb89a/modules/ve-mw/init/targets/ve.init.mw.ArticleTarget.js#656\n\t\t\t// TODO: We should provide a better API for this that doesn't require extensions to parse the\n\t\t\t// 'action' value themselves, and doesn't require accessing 'wgPostEdit' from mw.config.\n\t\t\tmw.config.set( 'wgPostEdit', action );\n\n\t\t\tmodule.exports.fireHook( action, tempUserCreated );\n\t\t}\n\n\t\t// Clear storage (cookie is cleared server-side)\n\t\tmw.storage.session.remove( storageKey );\n\t}\n\n\t/**\n\t * Show post-edit messages.\n\t *\n\t * @example\n\t * var postEdit = require( 'mediawiki.action.view.postEdit' );\n\t * postEdit.fireHook( 'saved' );\n\t *\n\t * @class mw.plugin.action.view.postEdit\n\t * @singleton\n\t * @ignore\n\t */\n\tmodule.exports = {\n\n\t\t/**\n\t\t * Show a post-edit message now.\n\t\t *\n\t\t * This is just a shortcut for firing mw.hook#postEdit.\n\t\t *\n\t\t * @ignore\n\t\t * @param {string} [action] One of 'saved', 'created', 'restored'\n\t\t * @param {boolean} [tempUserCreated] Whether a temporary account was created during this edit\n\t\t */\n\t\tfireHook: ( action, tempUserCreated ) => {\n\t\t\tif ( !action ) {\n\t\t\t\taction = 'saved';\n\t\t\t}\n\t\t\tif ( action === 'saved' && config.EditSubmitButtonLabelPublish ) {\n\t\t\t\taction = 'published';\n\t\t\t}\n\t\t\tmw.hook( 'postEdit' ).fire( {\n\t\t\t\t// The following messages can be used here:\n\t\t\t\t// * postedit-confirmation-published\n\t\t\t\t// * postedit-confirmation-saved\n\t\t\t\t// * postedit-confirmation-created\n\t\t\t\t// * postedit-confirmation-restored\n\t\t\t\tmessage: mw.message(\n\t\t\t\t\t'postedit-confirmation-' + action,\n\t\t\t\t\tmw.user,\n\t\t\t\t\tmw.config.get( 'wgRevisionId' )\n\t\t\t\t).parseDom(),\n\t\t\t\ttempUserCreated: tempUserCreated\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Show a post-edit message on the next page load.\n\t\t *\n\t\t * The necessary data is stored in session storage for up to 20 minutes, and cleared when the\n\t\t * page is loaded again.\n\t\t *\n\t\t * @ignore\n\t\t * @param {string} [action] One of 'saved', 'created', 'restored'\n\t\t * @param {boolean} [tempUserCreated] Whether a temporary account was created during this edit\n\t\t */\n\t\tfireHookOnPageReload: ( action, tempUserCreated ) => {\n\t\t\tif ( !action ) {\n\t\t\t\taction = 'saved';\n\t\t\t}\n\t\t\tif ( tempUserCreated ) {\n\t\t\t\taction += '+tempuser';\n\t\t\t}\n\t\t\tmw.storage.session.set(\n\t\t\t\tstorageKey,\n\t\t\t\taction,\n\t\t\t\t1200 // same duration as EditPage::POST_EDIT_COOKIE_DURATION\n\t\t\t);\n\t\t}\n\t};\n\n\tinit();\n\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.action/mediawiki.action.view.redirect.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/AbortController.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/AbortablePromise.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/category.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/edit.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/index.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/login.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/messages.js","messages":[],"suppressedMessages":[{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":72,"column":17,"nodeType":"CallExpression","endLine":72,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/options.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/parse.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/rest.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/rollback.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/upload.js","messages":[],"suppressedMessages":[{"ruleId":"no-loop-func","severity":2,"message":"Function declared in a loop contains unsafe references to variable(s) 'active'.","line":156,"column":19,"nodeType":"FunctionExpression","messageId":"unsafeRefs","endLine":164,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/user.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.api/watch.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.authenticationPopup/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.authenticationPopup/AuthMessageDialog.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.authenticationPopup/AuthPopup.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.authenticationPopup/AuthPopupError.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.authenticationPopup/constants.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.authenticationPopup/index.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'userinfo' is undefined.","line":38,"column":1,"nodeType":"Block","endLine":38,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"const AuthPopup = require( './AuthPopup.js' );\nconst config = require( './config.json' );\n\nfunction checkLoggedIn() {\n\treturn ( new mw.Api() ).get( {\n\t\tmeta: 'userinfo'\n\t} ).then( ( resp ) => {\n\t\tconst userinfo = resp.query.userinfo;\n\t\tif ( userinfo.anon !== undefined || userinfo.temp !== undefined ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn userinfo;\n\t} );\n}\n\nconst loginTitle = mw.Title.makeTitle( -1, config.specialPageNames.UserLogin );\nconst successTitle = mw.Title.makeTitle( -1, config.specialPageNames.AuthenticationPopupSuccess );\n\nconst loginPopupUrl = loginTitle.getUrl( {\n\tdisplay: 'popup',\n\treturnto: successTitle.getPrefixedText(),\n\treturntoquery: 'display=popup'\n} );\nconst loginFallbackUrl = loginTitle.getUrl( {\n\treturnto: successTitle.getPrefixedText()\n} );\n\n/**\n * `userinfo` object as returned by the\n * {@link https://www.mediawiki.org/wiki/API:Userinfo action=query&meta=userinfo API module}.\n *\n * @typedef {Object} module:mediawiki.authenticationPopup~userinfo\n * @property {string} name\n * @property {number} id\n */\n\n/**\n * Exposes an instance of {@link AuthPopup} configured to display a login dialog for the local\n * instance of MediaWiki.\n *\n * The promises returned by `AuthPopup` methods will be resolved with a {@link userinfo} object.\n *\n * **This library is not stable yet (as of May 2024). We're still testing which of the\n * methods work from the technical side, and which methods are understandable for users.\n * Some methods or the whole library may be removed in the future.**\n *\n * @example\n * const authPopup = require( 'mediawiki.authenticationPopup' );\n * authPopup.startPopupWindow()\n * // or: authPopup.startNewTabOrWindow()\n * // or: authPopup.startIframe()\n *     .then( function ( userinfo ) {\n *         if ( userinfo ) {\n *             // Logged in\n *             console.log( userinfo.name );\n *         } else {\n *             // Cancelled by the user\n *         }\n *     }, function ( error ) {\n *         // Unexpected error stopped the login process\n *     } );\n *\n * @example <caption>Example using `await` syntax</caption>\n * const userinfo = await authPopup.startPopupWindow(); // etc.\n * if ( userinfo ) {\n *     // Logged in\n * } else {\n *     // Cancelled by the user\n * }\n *\n * @module mediawiki.authenticationPopup\n * @type {AuthPopup}\n */\nmodule.exports = new AuthPopup( {\n\tloginPopupUrl: loginPopupUrl,\n\tloginFallbackUrl: loginFallbackUrl,\n\tcheckLoggedIn: checkLoggedIn,\n\tmessage: () => $( '<div>' ).append(\n\t\t$( '<p>' ).append(\n\t\t\tmw.message(\n\t\t\t\t'userlogin-authpopup-loggingin-body',\n\t\t\t\t$( '<a>' ).attr( 'href', loginFallbackUrl ).attr( 'target', '_blank' )\n\t\t\t).parseDom()\n\t\t),\n\t\t$.createSpinner( {\n\t\t\tsize: 'large',\n\t\t\ttype: 'block'\n\t\t} )\n\t)\n} );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.authenticationPopup/success.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.base/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.base/errorLogger.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'global.error'","line":8,"column":1,"nodeType":"Block","endLine":8,"endColumn":1},{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'error.caught'","line":22,"column":1,"nodeType":"Block","endLine":22,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"'use strict';\n\n/**\n * Fired via mw.track when an error is not handled by local code and is caught by the\n * window.onerror handler.\n *\n * @ignore\n * @event ~'global.error'\n * @param {string} errorMessage Error message.\n * @param {string} url URL where error was raised.\n * @param {number} line Line number where error was raised.\n * @param {number} [column] Line number where error was raised. Not all browsers\n *   support this.\n * @param {Error|Mixed} [errorObject] The error object. Typically an instance of Error, but\n *   anything (even a primitive value) passed to a throw clause will end up here.\n */\n\n/**\n * Fired via mw.track when an error is logged with mw.errorLogger#logError.\n *\n * @ignore\n * @event ~'error.caught'\n * @param {Error} errorObject The error object\n */\n\n/**\n * Install a `window.onerror` handler that logs errors by notifying both `global.error` and\n * `error.uncaught` topic subscribers that an event has occurred. Note well that the former is\n * done for backwards compatibilty.\n *\n * @private\n * @param {Object} window\n */\nfunction installGlobalHandler( window ) {\n\t// We will preserve the return value of the previous handler. window.onerror works the\n\t// opposite way than normal event handlers (returning true will prevent the default\n\t// action, returning false will let the browser handle the error normally, by e.g.\n\t// logging to the console), so our fallback old handler needs to return false.\n\tconst oldHandler = window.onerror || function () {\n\t\treturn false;\n\t};\n\n\twindow.onerror = function ( errorMessage, url, line, column, errorObject ) {\n\t\tmw.track( 'global.error', {\n\t\t\terrorMessage: errorMessage,\n\t\t\turl: url,\n\t\t\tlineNumber: line,\n\t\t\tcolumnNumber: column,\n\t\t\tstackTrace: errorObject ? errorObject.stack : '',\n\t\t\terrorObject: errorObject\n\t\t} );\n\n\t\tif ( errorObject ) {\n\t\t\tmw.track( 'error.uncaught', errorObject );\n\t\t}\n\n\t\treturn oldHandler.apply( this, arguments );\n\t};\n}\n\n/**\n * Allows the logging of client errors for later inspections.\n *\n * @namespace mw.errorLogger\n */\nmw.errorLogger = {\n\t/**\n\t * Logs an error by notifying subscribers to the given mw.track() topic\n\t * (by default `error.caught`) that an event has occurred.\n\t *\n\t * @param {Error} error\n\t * @param {string} [topic='error.caught'] Error topic. Conventionally in the form\n\t *   'error.⧼component⧽' (where ⧼component⧽ identifies the code logging the error at a\n\t *   high level; e.g. an extension name).\n\t */\n\tlogError: function ( error, topic ) {\n\t\tmw.track( topic || 'error.caught', error );\n\t}\n};\n\nif ( window.QUnit ) {\n\tmw.errorLogger.installGlobalHandler = installGlobalHandler;\n} else {\n\tinstallGlobalHandler( window );\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.base/log.js","messages":[{"ruleId":"jsdoc/require-returns","severity":1,"message":"Found more than one @return declaration.","line":14,"column":1,"nodeType":"Block","endLine":20,"endColumn":4},{"ruleId":"jsdoc/require-returns-check","severity":1,"message":"Found more than one @return declaration.","line":14,"column":1,"nodeType":"Block","endLine":20,"endColumn":4}],"suppressedMessages":[{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":48,"column":46,"nodeType":"MemberExpression","messageId":"unexpected","endLine":48,"endColumn":59,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"// This file extends the mw.log skeleton defined in startup/mediawiki.js.\n// Code that is not needed by mw.loader is placed here.\n\n/* eslint-disable no-console */\n\n/**\n * Log debug messages and developer warnings to the browser console.\n *\n * See [mw.log()]{@link mw.log(2)} for verbose debug logging.\n *\n * @namespace mw.log\n */\n\n/**\n * Create a function that returns true for the first call from any particular call stack.\n *\n * @private\n * @return {Function}\n * @return {boolean|undefined} return.return True if the caller was not seen before.\n */\nfunction stackSet() {\n\t// Optimisation: Don't create or compute anything for the common case\n\t// where deprecations are not triggered.\n\tlet stacks;\n\n\treturn function isFirst() {\n\t\tif ( !stacks ) {\n\t\t\tstacks = new Set();\n\t\t}\n\t\tconst stack = new Error().stack;\n\t\tif ( !stacks.has( stack ) ) {\n\t\t\tstacks.add( stack );\n\t\t\treturn true;\n\t\t}\n\t};\n}\n\n/**\n * Write a message to the browser console's error channel.\n *\n * Most browsers also print a stacktrace when calling this method if the\n * argument is an Error object.\n *\n * @since 1.26\n * @method\n * @param {...Mixed} msg Messages to output to console\n */\nmw.log.error = Function.prototype.bind.call( console.error, console );\n\n/**\n * Create a function that logs a deprecation warning when called.\n *\n * @example\n * var deprecatedNoB = mw.log.makeDeprecated( 'hello_without_b', 'Use of hello without b is deprecated.' );\n *\n * function hello( a, b ) {\n *   if ( b === undefined ) {\n *     deprecatedNoB();\n *     b = 0;\n *   }\n *   return a + b;\n * }\n *\n * hello( 1 );\n *\n * @since 1.38\n * @param {string|null} key Name of the feature for deprecation tracker,\n *  or null for a console-only deprecation.\n * @param {string} msg Deprecation warning.\n * @return {Function}\n */\nmw.log.makeDeprecated = function ( key, msg ) {\n\tconst isFirst = stackSet();\n\treturn function maybeLog() {\n\t\tif ( isFirst() ) {\n\t\t\tif ( key ) {\n\t\t\t\tmw.track( 'mw.deprecate', key );\n\t\t\t}\n\t\t\tmw.log.warn( msg );\n\t\t}\n\t};\n};\n\n/**\n * Create a property on a host object that, when accessed, will log\n * a deprecation warning to the console.\n *\n * @example\n * mw.log.deprecate( window, 'myGlobalFn', myGlobalFn );\n *\n * @example\n * mw.log.deprecate( Thing, 'old', old, 'Use Other.thing instead', 'Thing.old'  );\n *\n * @param {Object} obj Host object of deprecated property\n * @param {string} key Name of property to create in `obj`\n * @param {any} val The value this property should return when accessed\n * @param {string} [msg] Optional extra text to add to the deprecation warning\n * @param {string} [logName] Name of the feature for deprecation tracker.\n *  Tracking is disabled by default, except for global variables on `window`.\n */\nmw.log.deprecate = function ( obj, key, val, msg, logName ) {\n\tconst maybeLog = mw.log.makeDeprecated(\n\t\tlogName || ( obj === window ? key : null ),\n\t\t'Use of \"' + ( logName || key ) + '\" is deprecated.' + ( msg ? ' ' + msg : '' )\n\t);\n\tObject.defineProperty( obj, key, {\n\t\tconfigurable: true,\n\t\tenumerable: true,\n\t\tget: function () {\n\t\t\tmaybeLog();\n\t\t\treturn val;\n\t\t},\n\t\tset: function ( newVal ) {\n\t\t\tmaybeLog();\n\t\t\tval = newVal;\n\t\t}\n\t} );\n};\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.base/mediawiki.base.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'mediawiki' is undefined.","line":217,"column":1,"nodeType":"Block","endLine":217,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'mediawiki' is undefined.","line":243,"column":1,"nodeType":"Block","endLine":243,"endColumn":1}],"suppressedMessages":[{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":347,"column":9,"nodeType":"CallExpression","endLine":347,"endColumn":41,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"'use strict';\n\nconst slice = Array.prototype.slice;\n\n// Apply site-level data\nmw.config.set( require( './config.json' ) );\n\nrequire( './log.js' );\n\n/**\n * @class mw.Message\n * @classdesc Describes a translateable text or HTML string. Similar to the Message class in MediaWiki PHP.\n *\n * @example\n * var obj, str;\n * mw.messages.set( {\n *     'hello': 'Hello world',\n *     'hello-user': 'Hello, $1!',\n *     'welcome-user': 'Welcome back to $2, $1! Last visit by $1: $3',\n *     'so-unusual': 'You will find: $1'\n * } );\n *\n * obj = mw.message( 'hello' );\n * mw.log( obj.text() );\n * // Hello world\n *\n * obj = mw.message( 'hello-user', 'John Doe' );\n * mw.log( obj.text() );\n * // Hello, John Doe!\n *\n * obj = mw.message( 'welcome-user', 'John Doe', 'Wikipedia', '2 hours ago' );\n * mw.log( obj.text() );\n * // Welcome back to Wikipedia, John Doe! Last visit by John Doe: 2 hours ago\n *\n * // Using mw.msg shortcut, always in \"text' format.\n * str = mw.msg( 'hello-user', 'John Doe' );\n * mw.log( str );\n * // Hello, John Doe!\n *\n * // Different formats\n * obj = mw.message( 'so-unusual', 'Time \"after\" <time>' );\n *\n * mw.log( obj.text() );\n * // You will find: Time \"after\" <time>\n *\n * mw.log( obj.escaped() );\n * // You will find: Time &quot;after&quot; &lt;time&gt;\n *\n * @constructor\n * @description Object constructor for messages. The constructor is not publicly accessible;\n * use {@link mw.message} instead.\n * @param {mw.Map} map Message store\n * @param {string} key\n * @param {Array} [parameters]\n */\nfunction Message( map, key, parameters ) {\n\tthis.map = map;\n\tthis.key = key;\n\tthis.parameters = parameters || [];\n}\n\nMessage.prototype = /** @lends mw.Message.prototype */ {\n\t/**\n\t * Get parsed contents of the message.\n\t *\n\t * The default parser does simple $N replacements and nothing else.\n\t * This may be overridden to provide a more complex message parser.\n\t * The primary override is in the mediawiki.jqueryMsg module.\n\t *\n\t * This function will not be called for nonexistent messages.\n\t * For internal use by mediawiki.jqueryMsg only\n\t *\n\t * @private\n\t * @param {string} format\n\t * @return {string} Parsed message\n\t */\n\tparser: function ( format ) {\n\t\tlet text = this.map.get( this.key );\n\n\t\t// Apply qqx formatting.\n\t\t//\n\t\t// - Keep this synchronised with LanguageQqx/MessageCache in PHP.\n\t\t// - Keep this synchronised with mw.jqueryMsg.Parser#getAst.\n\t\t//\n\t\t// Unlike LanguageQqx in PHP, this doesn't replace unconditionally.\n\t\t// It replaces non-existent messages, and messages that were exported by\n\t\t// load.php as \"(key)\" in qqx formatting. Some extensions export other data\n\t\t// via their message blob (T222944).\n\t\tif (\n\t\t\tmw.config.get( 'wgUserLanguage' ) === 'qqx' &&\n\t\t\t( !text || text === '(' + this.key + ')' )\n\t\t) {\n\t\t\ttext = '(' + this.key + '$*)';\n\t\t}\n\t\ttext = mw.format( text, ...this.parameters );\n\t\tif ( format === 'parse' ) {\n\t\t\t// We don't know how to parse anything, so escape it all\n\t\t\ttext = mw.html.escape( text );\n\t\t}\n\t\treturn text;\n\t},\n\n\t/**\n\t * Add (does not replace) parameters for `$N` placeholder values.\n\t *\n\t * @param {Array} parameters\n\t * @return {mw.Message}\n\t * @chainable\n\t */\n\tparams: function ( parameters ) {\n\t\tthis.parameters.push( ...parameters );\n\t\treturn this;\n\t},\n\n\t/**\n\t * Convert message object to a string using the \"text\"-format .\n\t *\n\t * This exists for implicit string type casting only.\n\t * Do not call this directly. Use mw.Message#text() instead, one of the\n\t * other format methods.\n\t *\n\t * @private\n\t * @param {string} [format=\"text\"] Internal parameter. Uses \"text\" if called\n\t *  implicitly through string casting.\n\t * @return {string} Message in the given format, or `⧼key⧽` if the key\n\t *  does not exist.\n\t */\n\ttoString: function ( format ) {\n\t\tif ( !this.exists() ) {\n\t\t\t// Make sure qqx works for non-existent messages, see parser() above.\n\t\t\tif ( mw.config.get( 'wgUserLanguage' ) !== 'qqx' ) {\n\t\t\t\t// Use ⧼key⧽ as text if key does not exist\n\t\t\t\t// Err on the side of safety, ensure that the output\n\t\t\t\t// is always html safe in the event the message key is\n\t\t\t\t// missing, since in that case its highly likely the\n\t\t\t\t// message key is user-controlled.\n\t\t\t\t// '⧼' is used instead of '<' to side-step any\n\t\t\t\t// double-escaping issues.\n\t\t\t\t// (Keep synchronised with Message::toString() in PHP.)\n\t\t\t\treturn '⧼' + mw.html.escape( this.key ) + '⧽';\n\t\t\t}\n\t\t}\n\n\t\tif ( !format ) {\n\t\t\tformat = 'text';\n\t\t}\n\n\t\tif ( format === 'plain' || format === 'text' || format === 'parse' ) {\n\t\t\treturn this.parser( format );\n\t\t}\n\n\t\t// Format: 'escaped' (including for any invalid format, default to safe escape)\n\t\treturn mw.html.escape( this.parser( 'escaped' ) );\n\t},\n\n\t/**\n\t * Parse message as wikitext and return HTML.\n\t *\n\t * If jqueryMsg is loaded, this transforms text and parses a subset of supported wikitext\n\t * into HTML. Without jqueryMsg, it is equivalent to {@link mw.Message#escaped}.\n\t *\n\t * @return {string} String form of parsed message\n\t */\n\tparse: function () {\n\t\treturn this.toString( 'parse' );\n\t},\n\n\t/**\n\t * Return message plainly.\n\t *\n\t * This substitutes parameters, but otherwise does not transform the\n\t * message content.\n\t *\n\t * @return {string} String form of plain message\n\t */\n\tplain: function () {\n\t\treturn this.toString( 'plain' );\n\t},\n\n\t/**\n\t * Format message with text transformations applied.\n\t *\n\t * If jqueryMsg is loaded, `{{`-transformation is done for supported\n\t * magic words such as `{{plural:}}`, `{{gender:}}`, and `{{int:}}`.\n\t * Without jqueryMsg, it is equivalent to {@link mw.Message#plain}.\n\t *\n\t * @return {string} String form of text message\n\t */\n\ttext: function () {\n\t\treturn this.toString( 'text' );\n\t},\n\n\t/**\n\t * Format message and return as escaped text in HTML.\n\t *\n\t * This is equivalent to the #text format, which is then HTML-escaped.\n\t *\n\t * @return {string} String form of html escaped message\n\t */\n\tescaped: function () {\n\t\treturn this.toString( 'escaped' );\n\t},\n\n\t/**\n\t * Check if a message exists. Equivalent to {@link mw.Map.exists}.\n\t *\n\t * @return {boolean}\n\t */\n\texists: function () {\n\t\treturn this.map.exists( this.key );\n\t}\n};\n\n/**\n * @class mw\n * @singleton\n * @borrows mediawiki.inspect.runReports as inspect\n */\n\n/**\n * Empty object for third-party libraries, for cases where you don't\n * want to add a new global, or the global is bad and needs containment\n * or wrapping.\n *\n * @type {Object}\n */\nmw.libs = {};\n\n/**\n * OOUI widgets specific to MediaWiki.\n * Initially empty. To expand the amount of available widgets the `mediawiki.widget` module can be loaded.\n *\n * @namespace mw.widgets\n * @example\n * mw.loader.using('mediawiki.widget').then(() => {\n *   OO.ui.getWindowManager().addWindows( [ new mw.widget.AbandonEditDialog() ] );\n * });\n */\nmw.widgets = {};\n\n/**\n * Generates a ResourceLoader report using the\n * {@link mediawiki.inspect.js.html|mediawiki.inspect module}.\n *\n * @ignore\n */\nmw.inspect = function ( ...reports ) {\n\t// Lazy-load\n\tmw.loader.using( 'mediawiki.inspect', () => {\n\t\tmw.inspect.runReports( ...reports );\n\t} );\n};\n\n/**\n * Replace `$*` with a list of parameters for `uselang=qqx` support.\n *\n * @private\n * @since 1.33\n * @param {string} formatString Format string\n * @param {Array} parameters Values for $N replacements\n * @return {string} Transformed format string\n */\nmw.internalDoTransformFormatForQqx = function ( formatString, parameters ) {\n\tif ( formatString.includes( '$*' ) ) {\n\t\tlet replacement = '';\n\t\tif ( parameters.length ) {\n\t\t\treplacement = ': ' + parameters.map( ( _, i ) => '$' + ( i + 1 ) ).join( ', ' );\n\t\t}\n\t\treturn formatString.replace( '$*', replacement );\n\t}\n\treturn formatString;\n};\n\n/**\n * Encode page titles in a way that matches `wfUrlencode` in PHP.\n *\n * @see mw.util#wikiUrlencode\n * @private\n * @param {string} str\n * @return {string}\n */\nmw.internalWikiUrlencode = function ( str ) {\n\treturn encodeURIComponent( String( str ) )\n\t\t.replace( /'/g, '%27' )\n\t\t.replace( /%20/g, '_' )\n\t\t.replace( /%3B/g, ';' )\n\t\t.replace( /%40/g, '@' )\n\t\t.replace( /%24/g, '$' )\n\t\t.replace( /%2C/g, ',' )\n\t\t.replace( /%2F/g, '/' )\n\t\t.replace( /%3A/g, ':' );\n};\n\n/**\n * Format a string. Replace $1, $2 ... $N with positional arguments.\n *\n * Used by {@link mw.Message#parse}.\n *\n * @memberof mw\n * @since 1.25\n * @param {string} formatString Format string\n * @param {...Mixed} parameters Values for $N replacements\n * @return {string} Formatted string\n */\nmw.format = function ( formatString, ...parameters ) {\n\tformatString = mw.internalDoTransformFormatForQqx( formatString, parameters );\n\treturn formatString.replace( /\\$(\\d+)/g, ( str, match ) => {\n\t\tconst index = parseInt( match, 10 ) - 1;\n\t\treturn parameters[ index ] !== undefined ? parameters[ index ] : '$' + match;\n\t} );\n};\n\n// Expose Message constructor\nmw.Message = Message;\n\n/**\n * Get a message object.\n *\n * Shortcut for `new mw.Message( mw.messages, key, parameters )`.\n *\n * @memberof mw\n * @see {@link mw.Message}\n * @param {string} key Key of message to get\n * @param {...Mixed} parameters Values for $N replacements\n * @return {mw.Message}\n */\nmw.message = function ( key ) {\n\tconst parameters = slice.call( arguments, 1 );\n\treturn new Message( mw.messages, key, parameters );\n};\n\n/**\n * Get a message string using the (default) 'text' format.\n *\n * Shortcut for `mw.message( key, parameters... ).text()`.\n *\n * @memberof mw\n * @see {@link mw.Message}\n * @param {string} key Key of message to get\n * @param {...any} parameters Values for $N replacements\n * @return {string}\n */\nmw.msg = function ( key, ...parameters ) {\n\t// Shortcut must process text transformations by default\n\t// if mediawiki.jqueryMsg is loaded. (T46459)\n\t// eslint-disable-next-line mediawiki/msg-doc\n\treturn mw.message( key, ...parameters ).text();\n};\n\n/**\n * Convenience method for loading and accessing the\n * {@link mw.notification.notify|mw.notification module}.\n *\n * @memberof mw\n * @param {HTMLElement|HTMLElement[]|jQuery|mw.Message|string} message\n * @param {Object} [options] See mw.notification#defaults for the defaults.\n * @return {jQuery.Promise}\n */\nmw.notify = function ( message, options ) {\n\t// Lazy load\n\treturn mw.loader.using( 'mediawiki.notification' ).then( () => mw.notification.notify( message, options ) );\n};\n\nconst trackCallbacks = $.Callbacks( 'memory' );\nlet trackHandlers = [];\n\n/**\n * Track an analytic event.\n *\n * This method provides a generic means for MediaWiki JavaScript code to capture state\n * information for analysis. Each logged event specifies a string topic name that describes\n * the kind of event that it is. Topic names consist of dot-separated path components,\n * arranged from most general to most specific. Each path component should have a clear and\n * well-defined purpose.\n *\n * Data handlers are registered via `mw.trackSubscribe`, and receive the full set of\n * events that match their subscription, including buffered events that fired before the handler\n * was subscribed.\n *\n * @memberof mw\n * @param {string} topic Topic name\n * @param {...Object|number|string} [data] Data describing the event.\n */\nmw.track = function ( topic, ...data ) {\n\tmw.trackQueue.push( { topic, args: data } );\n\ttrackCallbacks.fire( mw.trackQueue );\n};\n\n/**\n * Register a handler for subset of analytic events, specified by topic.\n *\n * Handlers will be called once for each tracked event, including for any buffered events that\n * fired before the handler was subscribed. The callback is passed a `topic` string, and optional\n * `data` argument(s).\n *\n * @example\n * // To monitor all topics for debugging\n * mw.trackSubscribe( '', console.log );\n *\n * @example\n * // To subscribe to any of `foo.*`, e.g. both `foo.bar` and `foo.quux`\n * mw.trackSubscribe( 'foo.', console.log );\n *\n * @memberof mw\n * @param {string} topic Handle events whose name starts with this string prefix\n * @param {Function} callback Handler to call for each matching tracked event\n * @param {string} callback.topic\n * @param {...Object|number|string} [callback.data]\n */\nmw.trackSubscribe = function ( topic, callback ) {\n\tlet seen = 0;\n\tfunction handler( trackQueue ) {\n\t\tfor ( ; seen < trackQueue.length; seen++ ) {\n\t\t\tconst event = trackQueue[ seen ];\n\t\t\tif ( event.topic.startsWith( topic ) ) {\n\t\t\t\tcallback( event.topic, ...event.args );\n\t\t\t}\n\t\t}\n\t}\n\n\ttrackHandlers.push( [ handler, callback ] );\n\ttrackCallbacks.add( handler );\n};\n\n/**\n * Stop handling events for a particular handler.\n *\n * @memberof mw\n * @param {Function} callback\n */\nmw.trackUnsubscribe = function ( callback ) {\n\ttrackHandlers = trackHandlers.filter( ( fns ) => {\n\t\tif ( fns[ 1 ] === callback ) {\n\t\t\ttrackCallbacks.remove( fns[ 0 ] );\n\t\t\t// Ensure the tuple is removed to avoid holding on to closures\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t} );\n};\n\n// Notify subscribers of any mw.trackQueue.push() calls\n// from the startup module before mw.track() is defined.\ntrackCallbacks.fire( mw.trackQueue );\n\n/**\n * @namespace Hooks\n * @description Registry and firing of events.\n *\n * MediaWiki has various interface components that are extended, enhanced\n * or manipulated in some other way by extensions, gadgets and even\n * in core itself.\n *\n * This framework helps streamlining the timing of when these other\n * code paths fire their plugins (instead of using document-ready,\n * which can and should be limited to firing only once).\n *\n * Features like navigating to other wiki pages, previewing an edit\n * and editing itself – without a refresh – can then retrigger these\n * hooks accordingly to ensure everything still works as expected.\n * See {@link Hook}.\n *\n * Example usage:\n * ```\n * mw.hook( 'wikipage.content' ).add( fn ).remove( fn );\n * mw.hook( 'wikipage.content' ).fire( $content );\n * ```\n *\n * Handlers can be added and fired for arbitrary event names at any time. The same\n * event can be fired multiple times. The last run of an event is memorized\n * (similar to `$(document).ready` and `$.Deferred().done`).\n * This means if an event is fired, and a handler added afterwards, the added\n * function will be fired right away with the last given event data.\n *\n * Like Deferreds and Promises, the {@link mw.hook} object is both detachable and chainable.\n * Thus allowing flexible use and optimal maintainability and authority control.\n * You can pass around the `add` and/or `fire` method to another piece of code\n * without it having to know the event name (or {@link mw.hook} for that matter).\n *\n * ```\n * var h = mw.hook( 'bar.ready' );\n * new mw.Foo( .. ).fetch( { callback: h.fire } );\n * ```\n *\n * The function signature for hooks can be considered [stable](https://www.mediawiki.org/wiki/Special:MyLanguage/Stable_interface_policy/Frontend).\n * See available global events below.\n */\n\nconst hooks = Object.create( null );\n\n/**\n * Create an instance of {@link Hook}.\n *\n * @example\n * const hook = mw.hook( 'name' );\n * hook.add( () => alert( 'Hook was fired' ) );\n * hook.fire();\n *\n * @param {string} name Name of hook.\n * @return {Hook}\n */\nmw.hook = function ( name ) {\n\treturn hooks[ name ] || ( hooks[ name ] = ( function () {\n\t\tlet memory;\n\t\tlet deprecated;\n\t\tconst fns = [];\n\t\tfunction rethrow( e ) {\n\t\t\tsetTimeout( () => {\n\t\t\t\tthrow e;\n\t\t\t} );\n\t\t}\n\t\t/**\n\t\t * @class Hook\n\t\t * @classdesc An instance of a hook, created via [mw.hook method]{@link mw.hook}.\n\t\t * @global\n\t\t * @hideconstructor\n\t\t */\n\t\treturn {\n\t\t\t/**\n\t\t\t * Register a hook handler.\n\t\t\t *\n\t\t\t * @param {...Function} handler Function to bind.\n\t\t\t * @memberof Hook\n\t\t\t * @return {Hook}\n\t\t\t */\n\t\t\tadd: function () {\n\t\t\t\tif ( deprecated ) {\n\t\t\t\t\tdeprecated();\n\t\t\t\t}\n\t\t\t\tfor ( let i = 0; i < arguments.length; i++ ) {\n\t\t\t\t\tfns.push( arguments[ i ] );\n\t\t\t\t\tif ( memory ) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\targuments[ i ].apply( null, memory );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\trethrow( e );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t/**\n\t\t\t * Unregister a hook handler.\n\t\t\t *\n\t\t\t * @param {...Function} handler Function to unbind.\n\t\t\t * @memberof Hook\n\t\t\t * @return {Hook}\n\t\t\t */\n\t\t\tremove: function () {\n\t\t\t\tfor ( let i = 0; i < arguments.length; i++ ) {\n\t\t\t\t\tlet j;\n\t\t\t\t\twhile ( ( j = fns.indexOf( arguments[ i ] ) ) !== -1 ) {\n\t\t\t\t\t\tfns.splice( j, 1 );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t/**\n\t\t\t * Enable a deprecation warning, logged after registering a hook handler.\n\t\t\t *\n\t\t\t * @example\n\t\t\t * mw.hook( 'myhook' ).deprecate().fire( data );\n\t\t\t *\n\t\t\t * @example\n\t\t\t * mw.hook( 'myhook' )\n\t\t\t *   .deprecate( 'Use the \"someother\" hook instead.' )\n\t\t\t *   .fire( data );\n\t\t\t *\n\t\t\t * NOTE: This must be called before calling fire(), as otherwise some\n\t\t\t * hook handlers may be registered and fired without being reported.\n\t\t\t *\n\t\t\t * @memberof Hook\n\t\t\t * @param {string} msg Optional extra text to add to the deprecation warning\n\t\t\t * @return {Hook}\n\t\t\t * @chainable\n\t\t\t */\n\t\t\tdeprecate: function ( msg ) {\n\t\t\t\tdeprecated = mw.log.makeDeprecated(\n\t\t\t\t\t`hook_${ name }`,\n\t\t\t\t\t`mw.hook \"${ name }\" is deprecated.` + ( msg ? ' ' + msg : '' )\n\t\t\t\t);\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t/**\n\t\t\t * Call hook handlers with data.\n\t\t\t *\n\t\t\t * @memberof Hook\n\t\t\t * @param {...any} data\n\t\t\t * @return {Hook}\n\t\t\t * @chainable\n\t\t\t */\n\t\t\tfire: function () {\n\t\t\t\tif ( deprecated && fns.length ) {\n\t\t\t\t\tdeprecated();\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < fns.length; i++ ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfns[ i ].apply( null, arguments );\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\trethrow( e );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tmemory = slice.call( arguments );\n\n\t\t\t\treturn this;\n\t\t\t}\n\t\t};\n\t}() ) );\n};\n\n/**\n * HTML construction helper functions.\n *\n * @example\n * var Html, output;\n *\n * Html = mw.html;\n * output = Html.element( 'div', {}, new Html.Raw(\n *     Html.element( 'img', { src: '<' } )\n * ) );\n * mw.log( output ); // <div><img src=\"&lt;\"/></div>\n *\n * @namespace mw.html\n */\n\nfunction escapeCallback( s ) {\n\tswitch ( s ) {\n\t\tcase '\\'':\n\t\t\treturn '&#039;';\n\t\tcase '\"':\n\t\t\treturn '&quot;';\n\t\tcase '<':\n\t\t\treturn '&lt;';\n\t\tcase '>':\n\t\t\treturn '&gt;';\n\t\tcase '&':\n\t\t\treturn '&amp;';\n\t}\n}\nmw.html = {\n\t/**\n\t * Escape a string for HTML.\n\t *\n\t * Converts special characters to HTML entities.\n\t *\n\t * @example\n\t * mw.html.escape( '< > \\' & \"' );\n\t * // Returns &lt; &gt; &#039; &amp; &quot;\n\t *\n\t * @param {string} s The string to escape\n\t * @return {string} HTML\n\t */\n\tescape: function ( s ) {\n\t\treturn s.replace( /['\"<>&]/g, escapeCallback );\n\t},\n\n\t/**\n\t * Create an HTML element string, with safe escaping.\n\t *\n\t * @param {string} name The tag name.\n\t * @param {Object} [attrs] An object with members mapping element names to values\n\t * @param {string|mw.html.Raw|null} [contents=null] The contents of the element.\n\t *\n\t *  - string: Text to be escaped.\n\t *  - null: The element is treated as void with short closing form, e.g. `<br/>`.\n\t *  - this.Raw: The raw value is directly included.\n\t * @return {string} HTML\n\t */\n\telement: function ( name, attrs, contents ) {\n\t\tlet s = '<' + name;\n\n\t\tif ( attrs ) {\n\t\t\tfor ( const attrName in attrs ) {\n\t\t\t\tlet v = attrs[ attrName ];\n\t\t\t\t// Convert name=true, to name=name\n\t\t\t\tif ( v === true ) {\n\t\t\t\t\tv = attrName;\n\t\t\t\t\t// Skip name=false\n\t\t\t\t} else if ( v === false ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ts += ' ' + attrName + '=\"' + this.escape( String( v ) ) + '\"';\n\t\t\t}\n\t\t}\n\t\tif ( contents === undefined || contents === null ) {\n\t\t\t// Self close tag\n\t\t\ts += '/>';\n\t\t\treturn s;\n\t\t}\n\t\t// Regular open tag\n\t\ts += '>';\n\t\tif ( typeof contents === 'string' ) {\n\t\t\t// Escaped\n\t\t\ts += this.escape( contents );\n\t\t} else if ( typeof contents === 'number' || typeof contents === 'boolean' ) {\n\t\t\t// Convert to string\n\t\t\ts += String( contents );\n\t\t} else if ( contents instanceof this.Raw ) {\n\t\t\t// Raw HTML inclusion\n\t\t\ts += contents.value;\n\t\t} else {\n\t\t\tthrow new Error( 'Invalid content type' );\n\t\t}\n\t\ts += '</' + name + '>';\n\t\treturn s;\n\t},\n\n\t/**\n\t * @classdesc Wrapper object for raw HTML. Can be used with {@link mw.html.element}.\n\t * @class mw.html.Raw\n\t * @param {string} value\n\t * @example\n\t * const raw = new mw.html.Raw( 'Text' );\n\t * mw.html.element( 'div', { class: 'html' }, raw );\n\t */\n\tRaw: function ( value ) {\n\t\tthis.value = value;\n\t}\n};\n\n/**\n * Schedule a function to run once the page is ready (DOM loaded).\n *\n * @since 1.5.8\n * @memberof window\n * @param {Function} fn\n */\nwindow.addOnloadHook = function ( fn ) {\n\t$( () => {\n\t\tfn();\n\t} );\n};\n\nconst loadedScripts = {};\n\n/**\n * Import a script using an absolute URI.\n *\n * @since 1.12.2\n * @memberof window\n * @param {string} url\n * @return {HTMLElement|null} Script tag, or null if it was already imported before\n */\nwindow.importScriptURI = function ( url ) {\n\tif ( loadedScripts[ url ] ) {\n\t\treturn null;\n\t}\n\tloadedScripts[ url ] = true;\n\treturn mw.loader.addScriptTag( url );\n};\n\n/**\n * Import a local JS content page, for use by user scripts and site-wide scripts.\n *\n * Note that if the same title is imported multiple times, it will only\n * be loaded and executed once.\n *\n * @since 1.12.2\n * @memberof window\n * @param {string} title\n * @return {HTMLElement|null} Script tag, or null if it was already imported before\n */\nwindow.importScript = function ( title ) {\n\treturn window.importScriptURI(\n\t\tmw.config.get( 'wgScript' ) + '?title=' + mw.internalWikiUrlencode( title ) +\n\t\t\t'&action=raw&ctype=text/javascript'\n\t);\n};\n\n/**\n * Import a local CSS content page, for use by user scripts and site-wide scripts.\n *\n * @since 1.12.2\n * @memberof window\n * @param {string} title\n * @return {HTMLElement} Link tag\n */\nwindow.importStylesheet = function ( title ) {\n\treturn mw.loader.addLinkTag(\n\t\tmw.config.get( 'wgScript' ) + '?title=' + mw.internalWikiUrlencode( title ) +\n\t\t\t'&action=raw&ctype=text/css'\n\t);\n};\n\n/**\n * Import a stylesheet using an absolute URI.\n *\n * @since 1.12.2\n * @memberof window\n * @param {string} url\n * @param {string} media\n * @return {HTMLElement} Link tag\n */\nwindow.importStylesheetURI = function ( url, media ) {\n\treturn mw.loader.addLinkTag( url, media );\n};\n\n/**\n * Get the names of all registered ResourceLoader modules.\n *\n * @memberof mw.loader\n * @return {string[]}\n */\nmw.loader.getModuleNames = function () {\n\treturn Object.keys( mw.loader.moduleRegistry );\n};\n\n/**\n * Execute a function after one or more modules are ready.\n *\n * Use this method if you need to dynamically control which modules are loaded\n * and/or when they loaded (instead of declaring them as dependencies directly\n * on your module.)\n *\n * This uses the same loader as for regular module dependencies. This means\n * ResourceLoader will not re-download or re-execute a module for the second\n * time if something else already needed it. And the same browser HTTP cache,\n * and localStorage are checked before considering to fetch from the network.\n * And any on-going requests from other dependencies or using() calls are also\n * automatically re-used.\n *\n * Example of inline dependency on OOjs:\n * ```\n * mw.loader.using( 'oojs', function () {\n *     OO.compare( [ 1 ], [ 1 ] );\n * } );\n * ```\n *\n * Example of inline dependency obtained via `require()`:\n * ```\n * mw.loader.using( [ 'mediawiki.util' ], function ( require ) {\n *     var util = require( 'mediawiki.util' );\n * } );\n * ```\n *\n * Since MediaWiki 1.23 this returns a promise.\n *\n * Since MediaWiki 1.28 the promise is resolved with a `require` function.\n *\n * @memberof mw.loader\n * @param {string|Array} dependencies Module name or array of modules names the\n *  callback depends on to be ready before executing\n * @param {Function} [ready] Callback to execute when all dependencies are ready\n * @param {Function} [error] Callback to execute if one or more dependencies failed\n * @return {jQuery.Promise} With a `require` function\n */\nmw.loader.using = function ( dependencies, ready, error ) {\n\tconst deferred = $.Deferred();\n\n\t// Allow calling with a single dependency as a string\n\tif ( !Array.isArray( dependencies ) ) {\n\t\tdependencies = [ dependencies ];\n\t}\n\n\tif ( ready ) {\n\t\tdeferred.done( ready );\n\t}\n\tif ( error ) {\n\t\tdeferred.fail( error );\n\t}\n\n\ttry {\n\t\t// Resolve entire dependency map\n\t\tdependencies = mw.loader.resolve( dependencies );\n\t} catch ( e ) {\n\t\treturn deferred.reject( e ).promise();\n\t}\n\n\tmw.loader.enqueue(\n\t\tdependencies,\n\t\t() => {\n\t\t\tdeferred.resolve( mw.loader.require );\n\t\t},\n\t\tdeferred.reject\n\t);\n\n\treturn deferred.promise();\n};\n\n/**\n * Load a script by URL.\n *\n * @example\n * mw.loader.getScript(\n *     'https://example.org/x-1.0.0.js'\n * )\n *     .then( function () {\n *         // Script succeeded. You can use X now.\n *     }, function ( e ) {\n *         // Script failed. X is not avaiable\n *         mw.log.error( e.message ); // => \"Failed to load script\"\n *     } );\n * } );\n *\n * @memberof mw.loader\n * @param {string} url Script URL\n * @return {jQuery.Promise} Resolved when the script is loaded\n */\nmw.loader.getScript = function ( url ) {\n\treturn $.ajax( url, { dataType: 'script', cache: true } )\n\t\t.catch( () => {\n\t\t\tthrow new Error( 'Failed to load script' );\n\t\t} );\n};\n\n// Skeleton user object, extended by the 'mediawiki.user' module.\n/**\n * @namespace mw.user\n * @ignore\n */\nmw.user = {\n\t/**\n\t * Map of user preferences and their values.\n\t *\n\t * @type {mw.Map}\n\t */\n\toptions: new mw.Map(),\n\t/**\n\t * Map of retrieved user tokens.\n\t *\n\t * @type {mw.Map}\n\t */\n\ttokens: new mw.Map()\n};\n\nmw.user.options.set( require( './user.json' ) );\n\n// Process callbacks for modern browsers (Grade A) that require modules.\nconst queue = window.RLQ;\n// Replace temporary RLQ implementation from startup.js with the\n// final implementation that also processes callbacks that can\n// require modules. It must also support late arrivals of\n// plain callbacks. (T208093)\nwindow.RLQ = {\n\tpush: function ( entry ) {\n\t\tif ( typeof entry === 'function' ) {\n\t\t\tentry();\n\t\t} else {\n\t\t\tmw.loader.using( entry[ 0 ], entry[ 1 ] );\n\t\t}\n\t}\n};\nwhile ( queue[ 0 ] ) {\n\twindow.RLQ.push( queue.shift() );\n}\n\n/**\n * Replace document.write/writeln with basic html parsing that appends\n * to the `<body>` to avoid blanking pages. Added JavaScript will not run.\n *\n * @ignore\n * @deprecated since 1.26\n */\n[ 'write', 'writeln' ].forEach( ( func ) => {\n\tmw.log.deprecate( document, func, function () {\n\t\t$( document.body ).append( $.parseHTML( slice.call( arguments ).join( '' ) ) );\n\t}, 'Use jQuery or mw.loader.load instead.', 'document.' + func );\n} );\n\n// Load other files in the package\nrequire( './errorLogger.js' );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.checkboxtoggle.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.cldr/index.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.confirmCloseWindow.js","messages":[],"suppressedMessages":[{"ruleId":"no-alert","severity":2,"message":"Unexpected confirm.","line":106,"column":21,"nodeType":"CallExpression","messageId":"unexpected","endLine":106,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.cookie/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.cookie/index.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.cookie/jar.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.cookie/jquery.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.cookie/types.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.debug/debug.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-slide","severity":2,"message":"Prefer CSS transitions to .slideUp","line":91,"column":5,"nodeType":"CallExpression","endLine":91,"endColumn":38,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-slide","severity":2,"message":"Prefer CSS transitions to .slideDown","line":101,"column":5,"nodeType":"CallExpression","endLine":101,"endColumn":42,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.debug/jquery.footHovzer.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.deflate/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.deflate/mw.deflate.js","messages":[],"suppressedMessages":[{"ruleId":"compat/compat","severity":2,"message":"CompressionStream is not supported in Safari 11.1, iOS Safari 11.3-11.4, Firefox 101","line":48,"column":8,"nodeType":"NewExpression","endLine":48,"endColumn":46,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"compat/compat","severity":2,"message":"CompressionStream is not supported in Safari 11.1, iOS Safari 11.3-11.4, Firefox 101","line":52,"column":8,"nodeType":"NewExpression","endLine":52,"endColumn":42,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '>>'.","line":91,"column":24,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":91,"endColumn":43,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '|'.","line":92,"column":24,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":92,"endColumn":84,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":92,"column":26,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":92,"endColumn":56,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '&'.","line":92,"column":28,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":92,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '>>'.","line":92,"column":63,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":92,"endColumn":82,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '|'.","line":93,"column":24,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":93,"endColumn":80,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":93,"column":26,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":93,"endColumn":56,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '&'.","line":93,"column":28,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":93,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '>>'.","line":93,"column":63,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":93,"endColumn":78,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '&'.","line":94,"column":24,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":94,"endColumn":41,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '>>'.","line":97,"column":24,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":97,"endColumn":43,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":98,"column":24,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":98,"endColumn":54,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '&'.","line":98,"column":26,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":98,"endColumn":47,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '>>'.","line":102,"column":24,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":102,"endColumn":43,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '|'.","line":103,"column":24,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":103,"endColumn":84,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":103,"column":26,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":103,"endColumn":56,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '&'.","line":103,"column":28,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":103,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '>>'.","line":103,"column":63,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":103,"endColumn":82,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":104,"column":24,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":104,"endColumn":54,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '&'.","line":104,"column":26,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":104,"endColumn":47,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.diff/diff.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.diff/inlineFormatToggle.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'wikipage.diff.wikitextDiffBody'","line":150,"column":1,"nodeType":"Block","endLine":150,"endColumn":1},{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'wikipage.diff.diffTypeSwitch'","line":162,"column":1,"nodeType":"Block","endLine":162,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/*!\n * JavaScript for diff inline toggle\n */\nmodule.exports = function ( $inlineToggleSwitchLayout ) {\n\tconst url = new URL( location.href ),\n\t\tapi = new mw.Api(),\n\t\t$inlineLegendContainer = $( '.mw-diff-inline-legend' ),\n\t\tinlineToggleSwitchLayout = OO.ui.FieldLayout.static.infuse( $inlineToggleSwitchLayout ),\n\t\tinlineToggleSwitch = inlineToggleSwitchLayout.getField();\n\n\tinlineToggleSwitch.on( 'change', ( e ) => {\n\t\tonDiffTypeInlineChange( e, true );\n\t} );\n\tinlineToggleSwitch.on( 'disable', onDiffTypeInlineDisabled );\n\n\tconst $wikitextDiffContainer = $( 'table.diff[data-mw=\"interface\"]' );\n\tconst $wikitextDiffHeader = $wikitextDiffContainer.find( 'tr.diff-title' )\n\t\t.add( $wikitextDiffContainer.find( 'td.diff-multi, td.diff-notice' ).parent() );\n\tlet $wikitextDiffBody = $wikitextDiffContainer.find( 'tr' ).not( $wikitextDiffHeader );\n\n\tlet $wikitextDiffBodyInline, $wikitextDiffBodyTable;\n\tif ( inlineToggleSwitch.getValue() ) {\n\t\t$wikitextDiffBodyInline = $wikitextDiffBody;\n\t} else {\n\t\t$wikitextDiffBodyTable = $wikitextDiffBody;\n\t}\n\n\t/**\n\t * Handler for inlineToggleSwitch onChange event\n\t *\n\t * @param {boolean} isInline\n\t * @param {boolean} saveDiffTypeOption\n\t */\n\tfunction onDiffTypeInlineChange( isInline, saveDiffTypeOption ) {\n\t\tif ( ( isInline && typeof $wikitextDiffBodyInline === 'undefined' ) ||\n\t\t\t( !isInline && typeof $wikitextDiffBodyTable === 'undefined' ) ) {\n\t\t\tfetchDiff( isInline );\n\t\t} else {\n\t\t\ttoggleDiffTypeVisibility( isInline );\n\t\t}\n\n\t\tif ( saveDiffTypeOption ) {\n\t\t\tapi.saveOption( 'diff-type', isInline ? 'inline' : 'table' )\n\t\t\t\t.fail( ( error ) => {\n\t\t\t\t\tif ( error === 'notloggedin' ) {\n\t\t\t\t\t\t// Can't save preference, so use query parameter stickiness\n\t\t\t\t\t\tswitchQueryParams( isInline );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Toggle legend and the DOM containers according to the format selected.\n\t *\n\t * @param {boolean} isInline\n\t */\n\tfunction toggleDiffTypeVisibility( isInline ) {\n\t\t$inlineLegendContainer.toggleClass( 'oo-ui-element-hidden', !isInline );\n\t\tif ( typeof $wikitextDiffBodyInline !== 'undefined' ) {\n\t\t\t$wikitextDiffBodyInline.toggleClass( 'oo-ui-element-hidden', !isInline );\n\t\t}\n\n\t\tif ( typeof $wikitextDiffBodyTable !== 'undefined' ) {\n\t\t\t$wikitextDiffBodyTable.toggleClass( 'oo-ui-element-hidden', isInline );\n\t\t}\n\t}\n\n\t/**\n\t * Change the query parameters to maintain the new diff type.\n\t * This is used for anonymous users.\n\t *\n\t * @param {boolean} isInline\n\t */\n\tfunction switchQueryParams( isInline ) {\n\t\t$( '#differences-prevlink, #differences-nextlink' )\n\t\t\t.each( function () {\n\t\t\t\tlet linkUrl;\n\t\t\t\ttry {\n\t\t\t\t\tlinkUrl = new URL( this.href );\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( isInline ) {\n\t\t\t\t\tlinkUrl.searchParams.set( 'diff-type', 'inline' );\n\t\t\t\t} else {\n\t\t\t\t\tlinkUrl.searchParams.delete( 'diff-type' );\n\t\t\t\t}\n\t\t\t\tthis.href = linkUrl.toString();\n\t\t\t} );\n\t}\n\n\t/**\n\t * Toggle the legend when the toggle switch disabled state changes.\n\t *\n\t * @param {boolean} disabled\n\t */\n\tfunction onDiffTypeInlineDisabled( disabled ) {\n\t\tif ( disabled ) {\n\t\t\t$inlineLegendContainer.addClass( 'oo-ui-element-hidden' );\n\t\t} else {\n\t\t\t$inlineLegendContainer.toggleClass( 'oo-ui-element-hidden', !inlineToggleSwitch.getValue() );\n\t\t\t// When Inline Switch is enabled, toggle wikitext according to its value.\n\t\t\t// Do not save user 'diff-type' preference\n\t\t\tonDiffTypeInlineChange( inlineToggleSwitch.getValue(), false );\n\t\t}\n\t}\n\n\t/**\n\t * Fetch the diff through mw.API in the given format.\n\t *\n\t * @param {boolean} isInline\n\t */\n\tfunction fetchDiff( isInline ) {\n\t\tconst diffType = isInline ? 'inline' : 'table',\n\t\t\toldRevId = mw.config.get( 'wgDiffOldId' ),\n\t\t\tnewRevId = mw.config.get( 'wgDiffNewId' );\n\n\t\tlet oldPageName, newPageName;\n\t\tif ( mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'ComparePages' ) {\n\t\t\toldPageName = newPageName = mw.config.get( 'wgRelevantPageName' );\n\t\t} else {\n\t\t\toldPageName = url.searchParams.get( 'page1' );\n\t\t\tnewPageName = url.searchParams.get( 'page2' );\n\t\t}\n\n\t\tconst apiParams = {\n\t\t\taction: 'compare',\n\t\t\tfromtitle: oldPageName,\n\t\t\ttotitle: newPageName,\n\t\t\tfromrev: oldRevId,\n\t\t\ttorev: newRevId,\n\t\t\tdifftype: diffType\n\t\t};\n\n\t\tapi.get( apiParams ).done( ( diffData ) => {\n\t\t\tif ( isInline ) {\n\t\t\t\t$wikitextDiffBodyInline = $( diffData.compare[ '*' ] );\n\t\t\t} else {\n\t\t\t\t$wikitextDiffBodyTable = $( diffData.compare[ '*' ] );\n\t\t\t}\n\n\t\t\ttoggleDiffTypeVisibility( inlineToggleSwitch.getValue() );\n\n\t\t\t$wikitextDiffBody.last().after( isInline ? $wikitextDiffBodyInline : $wikitextDiffBodyTable );\n\t\t\t$wikitextDiffBody = $wikitextDiffContainer.find( 'tr' ).not( $wikitextDiffHeader );\n\t\t\t/**\n\t\t\t * Fired when the wikitext DOM is updated so others can react accordingly.\n\t\t\t *\n\t\t\t * @event ~'wikipage.diff.wikitextDiffBody'\n\t\t\t * @memberof Hooks\n\t\t\t * @param {jQuery} $wikitextDiffBody\n\t\t\t */\n\t\t\tmw.hook( 'wikipage.diff.wikitextBodyUpdate' ).fire( $wikitextDiffBody );\n\t\t} );\n\t}\n\n\t/**\n\t * Fired when the diff type switch is present so others can decide\n\t * how to manipulate the DOM.\n\t *\n\t * @event ~'wikipage.diff.diffTypeSwitch'\n\t * @memberof Hooks\n\t * @param {OO.ui.ToggleSwitchWidget} inlineToggleSwitch\n\t */\n\tmw.hook( 'wikipage.diff.diffTypeSwitch' ).fire( inlineToggleSwitch );\n};\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.editRecovery/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.editRecovery/LoadNotification.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.editRecovery/edit.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'editRecovery.loadEnd'","line":184,"column":1,"nodeType":"Block","endLine":184,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * In-progress edit recovery for action=edit\n *\n * @ignore\n */\nconst storage = require( './storage.js' );\nconst LoadNotification = require( './LoadNotification.js' );\n\nconst pageName = mw.config.get( 'wgPageName' );\nconst wiki = mw.config.get( 'wgDBname' );\nconst section = $( 'input[name=\"wpSection\"]' ).val() || null;\nconst inputFields = {};\nconst fieldNamePrefix = 'field_';\nlet originalData = {};\nlet changeDebounceTimer = null;\n\n// Number of miliseconds to debounce form input.\nconst debounceTime = 5000;\n\n// This module is loaded for every edit form, but not all should have Edit Recovery functioning.\nconst wasPosted = mw.config.get( 'wgEditRecoveryWasPosted' );\nconst isUndo = $( 'input[name=\"wpUndoAfter\"]' ).length > 0;\nconst isOldRevision = $( 'input[name=\"oldid\"]' ).val() > 0;\nconst isConflict = mw.config.get( 'wgEditMessage' ) === 'editconflict';\nconst useEditRecovery = !isUndo && !isOldRevision && !isConflict;\nif ( useEditRecovery ) {\n\tmw.hook( 'wikipage.editform' ).add( init );\n} else {\n\t// Always remove the data-saved flag when editing without Edit Recovery.\n\t// It may have been set by a previous editing session (within 5 minutes) that did use ER.\n\tmw.storage.session.remove( 'EditRecovery-data-saved' );\n}\n\nconst windowManager = OO.ui.getWindowManager();\nwindowManager.addWindows( [ new mw.widgets.AbandonEditDialog() ] );\n\n/**\n * Initialise when the wikipage.editform hook first fires\n *\n * @ignore\n * @param {jQuery} $editForm\n */\nfunction init( $editForm ) {\n\tmw.hook( 'wikipage.editform' ).remove( init );\n\n\t// Monitor all text-entry inputs for changes/typing.\n\tconst inputsToMonitorSelector = 'textarea, select, input:not([type=\"hidden\"], [type=\"submit\"])';\n\tconst $inputsToMonitor = $editForm.find( inputsToMonitorSelector );\n\t$inputsToMonitor.each( ( _i, field ) => {\n\t\tif ( field.classList.contains( 'oo-ui-inputWidget-input' ) ) {\n\t\t\ttry {\n\t\t\t\tinputFields[ field.name ] = OO.ui.infuse( field.closest( '.oo-ui-widget' ) );\n\t\t\t} catch ( e ) {\n\t\t\t\t// Ignore any non-infusable widget because we won't be able to set its value.\n\t\t\t}\n\t\t} else {\n\t\t\tinputFields[ field.name ] = field;\n\t\t}\n\t} );\n\t// Save the contents of all of those, as well as the following hidden inputs.\n\tconst inputsToSaveNames = [ 'wpSection', 'editRevId', 'oldid', 'parentRevId', 'format', 'model' ];\n\tconst $inputsToSave = $editForm.find( '[name=\"' + inputsToSaveNames.join( '\"], [name=\"' ) + '\"]' );\n\t$inputsToSave.each( ( _i, field ) => {\n\t\tinputFields[ field.name ] = field;\n\t} );\n\n\t// Store the original data for later comparing to the data-to-save. Use the defaultValue/defaultChecked in order to\n\t// avoid using any data remembered by the browser. Note that we have to be careful to store with the same types as\n\t// it will be done later, in order to correctly compare it (e.g. checkboxes as booleans).\n\tfor ( const fieldName in inputFields ) {\n\t\tconst field = inputFields[ fieldName ];\n\t\tif ( field.nodeName === 'INPUT' || field.nodeName === 'TEXTAREA' ) {\n\t\t\tif ( field.type === 'checkbox' ) {\n\t\t\t\t// Checkboxes (Minoredit and Watchthis are handled below as they are OOUI widgets).\n\t\t\t\toriginalData[ fieldNamePrefix + fieldName ] = field.defaultChecked;\n\t\t\t} else {\n\t\t\t\t// Other HTMLInputElements.\n\t\t\t\toriginalData[ fieldNamePrefix + fieldName ] = field.defaultValue;\n\t\t\t}\n\t\t} else if ( field.$input !== undefined ) {\n\t\t\t// OOUI widgets, which may not have been infused by this point.\n\t\t\tif ( field.$input[ 0 ].type === 'checkbox' ) {\n\t\t\t\t// Checkboxes.\n\t\t\t\toriginalData[ fieldNamePrefix + fieldName ] = field.$input[ 0 ].defaultChecked;\n\t\t\t} else {\n\t\t\t\t// Other OOUI widgets.\n\t\t\t\toriginalData[ fieldNamePrefix + fieldName ] = field.$input[ 0 ].defaultValue;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set a short-lived (5m / see postEdit.js) localStorage item to indicate which section is being edited.\n\tif ( section ) {\n\t\tmw.storage.session.set( pageName + '-editRecoverySection', section, 300 );\n\t}\n\t// Open indexedDB database and load any saved data that might be there.\n\tstorage.openDatabase().then( () => {\n\t\t// Check for and delete any expired data for any page, before loading any saved data for the current page.\n\t\tstorage.deleteExpiredData().then( () => {\n\t\t\tstorage.loadData( pageName, section ).then( loadDataSuccess );\n\t\t} );\n\t} );\n\n\t// Set up cancel handler to delete data.\n\tconst cancelButton = OO.ui.infuse( $editForm.find( '#mw-editform-cancel' )[ 0 ] );\n\tcancelButton.on( 'click', () => {\n\t\twindowManager.openWindow( 'abandonedit' ).closed.then( ( data ) => {\n\t\t\tif ( data && data.action === 'discard' ) {\n\t\t\t\t// Note that originalData is used below in loadDataSuccess() but that's always called before this method.\n\t\t\t\t// Here we set originalData to null in order to signal to saveFormData() to deleted the stored data.\n\t\t\t\toriginalData = null;\n\t\t\t\tstorage.deleteData( pageName, section ).finally( () => {\n\t\t\t\t\tmw.storage.session.remove( pageName + '-editRecoverySection' );\n\t\t\t\t\t// Release the beforeunload handler from mediawiki.action.edit.editWarning,\n\t\t\t\t\t// per the documentation there\n\t\t\t\t\t$( window ).off( 'beforeunload.editwarning' );\n\t\t\t\t\tlocation.href = cancelButton.getHref();\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * loadData promise resolved successfully\n *\n * @ignore\n * @param {Object|undefined} pageData Page data, undefined if none found\n */\nfunction loadDataSuccess( pageData ) {\n\tif ( wasPosted ) {\n\t\t// If this is a POST request, save the current data (e.g. from a preview).\n\t\tsaveFormData();\n\t}\n\t// If there is data stored, load it into the form.\n\tif ( !wasPosted && pageData !== undefined && !isSameAsOriginal( pageData, true ) ) {\n\t\tconst loadNotification = new LoadNotification( {\n\t\t\tdifferentRev: originalData.field_parentRevId !== pageData.field_parentRevId\n\t\t} );\n\n\t\t// statsv: Track the number of times the edit recovery notification is shown.\n\t\tmw.track( `counter.MediaWiki.edit_recovery.show.by_wiki.${ wiki }` );\n\t\tmw.track( 'stats.mediawiki_editrecovery_prompt_total', 1, { action: 'show', wiki } );\n\n\t\tconst notification = loadNotification.getNotification();\n\t\t// On 'restore changes'.\n\t\tloadNotification.getRecoverButton().on( 'click', () => {\n\t\t\trecover( pageData );\n\t\t\tnotification.close();\n\t\t\t// statsv: Track the number of times the edit recovery data is recovered.\n\t\t\tmw.track( `counter.MediaWiki.edit_recovery.recover.by_wiki.${ wiki }` );\n\t\t\tmw.track( 'stats.mediawiki_editrecovery_prompt_total', 1, { action: 'recover', wiki } );\n\t\t} );\n\t\t// On 'discard changes'.\n\t\tloadNotification.getDiscardButton().on( 'click', () => {\n\t\t\tstorage.deleteData( pageName, section ).then( () => {\n\t\t\t\tnotification.close();\n\t\t\t} );\n\t\t\t// statsv: Track the number of times the edit recovery data is discarded.\n\t\t\tmw.track( `counter.MediaWiki.edit_recovery.discard.by_wiki.${ wiki }` );\n\t\t\tmw.track( 'stats.mediawiki_editrecovery_prompt_total', 1, { action: 'discard', wiki } );\n\t\t} );\n\t}\n\n\t// Add change handlers.\n\tfor ( const fieldName in inputFields ) {\n\t\tconst field = inputFields[ fieldName ];\n\t\tif ( field.nodeName !== undefined && field.nodeName === 'TEXTAREA' ) {\n\t\t\tfield.addEventListener( 'input', fieldChangeHandler );\n\t\t} else if ( field instanceof OO.ui.Widget ) {\n\t\t\tfield.on( 'change', fieldChangeHandler );\n\t\t} else {\n\t\t\tfield.addEventListener( 'change', fieldChangeHandler );\n\t\t}\n\t}\n\t// Also add handlers for when the window is closed or hidden. Saving the data at these points is not guaranteed to\n\t// work, but it often does and the save operation is atomic so there's no harm in trying.\n\twindow.addEventListener( 'beforeunload', saveFormData );\n\twindow.addEventListener( 'blur', saveFormData );\n\n\t/**\n\t * Fired after EditRecovery has loaded any recovery data, added event handlers, etc.\n\t *\n\t * @event ~'editRecovery.loadEnd'\n\t * @memberof Hooks\n\t * @param {Object} editRecovery\n\t * @param {Function} editRecovery.fieldChangeHandler\n\t */\n\tmw.hook( 'editRecovery.loadEnd' ).fire( { fieldChangeHandler: fieldChangeHandler } );\n}\n\n/**\n * Recover specified page data\n *\n * @ignore\n * @param {Object} pageData Page data\n */\nfunction recover( pageData ) {\n\tfor ( const fieldName in inputFields ) {\n\t\tif ( pageData[ fieldNamePrefix + fieldName ] === undefined ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst field = inputFields[ fieldName ];\n\t\tconst $field = $( field );\n\t\t// Set the field value depending on what type of field it is.\n\t\tif ( field instanceof OO.ui.CheckboxInputWidget ) {\n\t\t\t// OOUI checkbox widgets.\n\t\t\tfield.setSelected( pageData[ fieldNamePrefix + fieldName ] );\n\t\t} else if ( field instanceof OO.ui.Widget ) {\n\t\t\t// Other OOUI widgets.\n\t\t\tfield.setValue( pageData[ fieldNamePrefix + fieldName ], field );\n\t\t} else if ( field.nodeName === 'TEXTAREA' ) {\n\t\t\t// Textareas (also reset caret location to top).\n\t\t\t$field.textSelection( 'setContents', pageData[ fieldNamePrefix + fieldName ] );\n\t\t\t$field.textSelection( 'setSelection', { start: 0 } );\n\t\t} else {\n\t\t\t// Anything else.\n\t\t\tfield.value = pageData[ fieldNamePrefix + fieldName ];\n\t\t}\n\t}\n}\n\n/**\n * Handle an edit form field changing\n *\n * @ignore\n */\nfunction fieldChangeHandler() {\n\tclearTimeout( changeDebounceTimer );\n\tchangeDebounceTimer = setTimeout( saveFormData, debounceTime );\n}\n\n/**\n * Compare a set of form field values to their original values (as at page load time).\n *\n * @ignore\n * @param {Object} pageData The page data to compare to the original.\n * @param {boolean} [ignoreRevIds=false] Do not use parent revision info when determining similarity.\n * @return {boolean}\n */\nfunction isSameAsOriginal( pageData, ignoreRevIds = false ) {\n\tfor ( const fieldName in inputFields ) {\n\t\tif ( ignoreRevIds && ( fieldName === 'editRevId' || fieldName === 'parentRevId' ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\t// Trim trailing whitespace from string fields, to approximate what PHP does when saving.\n\t\tlet currentVal = pageData[ fieldNamePrefix + fieldName ];\n\t\tif ( typeof currentVal === 'string' ) {\n\t\t\tcurrentVal = currentVal.replace( /\\s+$/, '' );\n\t\t}\n\t\tlet originalVal = originalData[ fieldNamePrefix + fieldName ];\n\t\tif ( typeof originalVal === 'string' ) {\n\t\t\toriginalVal = originalVal.replace( /\\s+$/, '' );\n\t\t}\n\t\tif ( currentVal !== originalVal ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n/**\n * Save the current edit form state in the storage backend\n *\n * @ignore\n */\nfunction saveFormData() {\n\tconst pageData = getFormData();\n\tif ( ( originalData === null || isSameAsOriginal( pageData ) ) && !wasPosted ) {\n\t\t// Delete the stored data if there's no change,\n\t\t// or if we've flagged originalData as irrelevant,\n\t\t// or if we can't determine this because this page was POSTed.\n\t\tstorage.deleteData( pageName, section );\n\t\tmw.storage.session.remove( 'EditRecovery-data-saved' );\n\t} else {\n\t\tstorage.saveData( pageName, section, pageData );\n\t\t// Flag the data for deletion in the postEdit handler in ./postEdit.js\n\t\tmw.storage.session.set( 'EditRecovery-data-saved', true, 300 );\n\t}\n}\n\n/**\n * Get the current form data.\n *\n * @ignore\n * @return {Object}\n */\nfunction getFormData() {\n\tconst formData = {};\n\tfor ( const fieldName in inputFields ) {\n\t\tconst field = inputFields[ fieldName ];\n\t\tlet newValue = null;\n\t\tif ( !( field instanceof OO.ui.Widget ) && field.nodeName !== undefined && field.nodeName === 'TEXTAREA' ) {\n\t\t\t// Text areas.\n\t\t\tnewValue = $( field ).textSelection( 'getContents' );\n\t\t} else if ( field instanceof OO.ui.CheckboxInputWidget ) {\n\t\t\t// OOUI checkbox widgets.\n\t\t\tnewValue = field.isSelected();\n\t\t} else if ( field instanceof OO.ui.Widget ) {\n\t\t\t// Other OOUI widgets.\n\t\t\tnewValue = field.getValue();\n\t\t} else {\n\t\t\t// Anything else.\n\t\t\tnewValue = field.value;\n\t\t}\n\t\tformData[ fieldNamePrefix + fieldName ] = newValue;\n\t}\n\treturn formData;\n}\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.editRecovery/postEdit.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.editRecovery/storage.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.experiments.js","messages":[],"suppressedMessages":[{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":31,"column":14,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":31,"endColumn":24,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '^='.","line":32,"column":4,"nodeType":"AssignmentExpression","messageId":"unexpected","endLine":32,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '>>'.","line":32,"column":14,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":32,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":34,"column":13,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":34,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '^='.","line":35,"column":3,"nodeType":"AssignmentExpression","messageId":"unexpected","endLine":35,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '>>'.","line":35,"column":13,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":35,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":36,"column":13,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":36,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '>>>'.","line":38,"column":10,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":38,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.feedback/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.feedback/FeedbackDialog.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.feedback/feedback.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.filewarning/filewarning.js","messages":[],"suppressedMessages":[{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":42,"column":12,"nodeType":"CallExpression","endLine":42,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.htmlform.ooui/Element.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.htmlform/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.htmlform/autocomplete.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.htmlform/autoinfuse.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.htmlform/cloner.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":42,"column":8,"nodeType":"CallExpression","endLine":42,"endColumn":43,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-sizzle","severity":2,"message":"Selector extensions are not allowed","line":49,"column":4,"nodeType":"CallExpression","endLine":49,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":60,"column":8,"nodeType":"CallExpression","endLine":60,"endColumn":43,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-sizzle","severity":2,"message":"Selector extensions are not allowed","line":67,"column":4,"nodeType":"CallExpression","endLine":67,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.htmlform/cond-state.js","messages":[{"ruleId":"jsdoc/require-returns-check","severity":1,"message":"Found more than one @return declaration.","line":48,"column":1,"nodeType":"Block","endLine":59,"endColumn":4}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/*\n * HTMLForm enhancements:\n * Set up 'hide-if' and 'disable-if' behaviors for form fields that have them.\n */\n\n/**\n * Helper function for conditional states to find the nearby form field.\n *\n * Find the closest match for the given name, \"closest\" being the minimum\n * level of parents to go to find a form field matching the given name or\n * ending in array keys matching the given name (e.g. \"baz\" matches\n * \"foo[bar][baz]\").\n *\n * @ignore\n * @private\n * @param {jQuery} $root\n * @param {string} name\n * @return {jQuery|null}\n */\nfunction conditionGetField( $root, name ) {\n\tconst nameFilter = function () {\n\t\treturn this.name === name;\n\t};\n\tlet $found = $root.find( '[name]' ).filter( nameFilter );\n\tif ( !$found.length ) {\n\t\t// Field cloner can load from template dynamically and fire event on sub element\n\t\t$found = $root.closest( 'form' ).find( '[name]' ).filter( nameFilter );\n\t}\n\treturn $found.length ? $found : null;\n}\n\n/**\n * Helper function to get the OOUI widget containing the given field, if any.\n *\n * @ignore\n * @private\n * @param {jQuery} $field\n * @return {OO.ui.Widget|null}\n */\nfunction getWidget( $field ) {\n\tconst $widget = $field.closest( '.oo-ui-widget[data-ooui]' );\n\tif ( $widget.length ) {\n\t\treturn OO.ui.Widget.static.infuse( $widget );\n\t}\n\treturn null;\n}\n\n/**\n * Helper function for conditional states to return a test function and list of\n * dependent fields for a conditional states specification.\n *\n * @ignore\n * @private\n * @param {jQuery} $root\n * @param {Array} spec\n * @return {Array}\n * @return {Array} return.0 Dependent fields, array of jQuery objects\n * @return {Function} return.1 Test function\n */\nfunction conditionParse( $root, spec ) {\n\tlet v, fields, func;\n\n\tconst op = spec[ 0 ];\n\tlet l = spec.length;\n\tswitch ( op ) {\n\t\tcase 'AND':\n\t\tcase 'OR':\n\t\tcase 'NAND':\n\t\tcase 'NOR': {\n\t\t\tconst funcs = [];\n\t\t\tfields = [];\n\t\t\tfor ( let i = 1; i < l; i++ ) {\n\t\t\t\tif ( !Array.isArray( spec[ i ] ) ) {\n\t\t\t\t\tthrow new Error( op + ' parameters must be arrays' );\n\t\t\t\t}\n\t\t\t\tv = conditionParse( $root, spec[ i ] );\n\t\t\t\tfields = fields.concat( v[ 0 ] );\n\t\t\t\tfuncs.push( v[ 1 ] );\n\t\t\t}\n\n\t\t\tl = funcs.length;\n\t\t\tconst valueChk = { AND: false, OR: true, NAND: false, NOR: true };\n\t\t\tconst valueRet = { AND: true, OR: false, NAND: false, NOR: true };\n\t\t\tfunc = function () {\n\t\t\t\tfor ( let j = 0; j < l; j++ ) {\n\t\t\t\t\tif ( valueChk[ op ] === funcs[ j ]() ) {\n\t\t\t\t\t\treturn !valueRet[ op ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn valueRet[ op ];\n\t\t\t};\n\n\t\t\treturn [ fields, func ];\n\t\t}\n\n\t\tcase 'NOT':\n\t\t\tif ( l !== 2 ) {\n\t\t\t\tthrow new Error( 'NOT takes exactly one parameter' );\n\t\t\t}\n\t\t\tif ( !Array.isArray( spec[ 1 ] ) ) {\n\t\t\t\tthrow new Error( 'NOT parameters must be arrays' );\n\t\t\t}\n\t\t\tv = conditionParse( $root, spec[ 1 ] );\n\t\t\tfields = v[ 0 ];\n\t\t\tfunc = v[ 1 ];\n\t\t\treturn [ fields, function () {\n\t\t\t\treturn !func();\n\t\t\t} ];\n\n\t\tcase '===':\n\t\tcase '!==': {\n\t\t\tif ( l !== 3 ) {\n\t\t\t\tthrow new Error( op + ' takes exactly two parameters' );\n\t\t\t}\n\t\t\tconst $field = conditionGetField( $root, spec[ 1 ] );\n\t\t\tif ( !$field ) {\n\t\t\t\treturn [ [], function () {\n\t\t\t\t\treturn false;\n\t\t\t\t} ];\n\t\t\t}\n\t\t\tv = spec[ 2 ];\n\n\t\t\tlet widget;\n\t\t\tconst getVal = function () {\n\t\t\t\t// When the value is requested for the first time,\n\t\t\t\t// determine if we need to treat this field as a OOUI widget.\n\t\t\t\tif ( widget === undefined ) {\n\t\t\t\t\twidget = getWidget( $field );\n\t\t\t\t}\n\n\t\t\t\tif ( widget ) {\n\t\t\t\t\tif ( widget.supports( 'isSelected' ) ) {\n\t\t\t\t\t\tconst selected = widget.isSelected();\n\t\t\t\t\t\treturn selected ? widget.getValue() : '';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn widget.getValue();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif ( $field.prop( 'type' ) === 'radio' || $field.prop( 'type' ) === 'checkbox' ) {\n\t\t\t\t\t\tconst $selected = $field.filter( ':checked' );\n\t\t\t\t\t\treturn $selected.length ? $selected.val() : '';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $field.val();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tswitch ( op ) {\n\t\t\t\tcase '===':\n\t\t\t\t\tfunc = function () {\n\t\t\t\t\t\treturn getVal() === v;\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase '!==':\n\t\t\t\t\tfunc = function () {\n\t\t\t\t\t\treturn getVal() !== v;\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn [ [ $field ], func ];\n\t\t}\n\n\t\tdefault:\n\t\t\tthrow new Error( 'Unrecognized operation \\'' + op + '\\'' );\n\t}\n}\n\n/**\n * Helper function to get the list of ResourceLoader modules needed to infuse the OOUI widgets\n * containing the given fields.\n *\n * @ignore\n * @private\n * @param {jQuery} $fields\n * @return {string[]}\n */\nfunction gatherOOUIModules( $fields ) {\n\tconst $oouiFields = $fields.filter( '[data-ooui]' );\n\tconst modules = [];\n\n\tif ( $oouiFields.length ) {\n\t\tmodules.push( 'mediawiki.htmlform.ooui' );\n\t\t$oouiFields.each( function () {\n\t\t\tconst data = $( this ).data( 'mw-modules' );\n\t\t\tif ( data ) {\n\t\t\t\t// We can trust this value, 'data-mw-*' attributes are banned from user content in Sanitizer\n\t\t\t\tconst extraModules = data.split( ',' );\n\t\t\t\tmodules.push( ...extraModules );\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn modules;\n}\n\nmw.hook( 'htmlform.enhance' ).add( ( $root ) => {\n\tconst $exclude = $root.find( '.mw-htmlform-autoinfuse-lazy' )\n\t\t.find( '.mw-htmlform-hide-if, .mw-htmlform-disable-if' );\n\tconst $fields = $root.find( '.mw-htmlform-hide-if, .mw-htmlform-disable-if' ).not( $exclude );\n\n\t// Load modules for the fields we will hide/disable\n\tmw.loader.using( gatherOOUIModules( $fields ) ).done( () => {\n\t\t$fields.each( function () {\n\t\t\tconst $el = $( this );\n\n\t\t\tlet spec, $elOrLayout, $form;\n\t\t\tif ( $el.is( '[data-ooui]' ) ) {\n\t\t\t\t// $elOrLayout should be a FieldLayout that mixes in mw.htmlform.Element\n\t\t\t\t$elOrLayout = OO.ui.FieldLayout.static.infuse( $el );\n\t\t\t\t$form = $elOrLayout.$element.closest( 'form' );\n\t\t\t\tspec = $elOrLayout.condState;\n\t\t\t} else {\n\t\t\t\t$elOrLayout = $el;\n\t\t\t\t$form = $el.closest( 'form' );\n\t\t\t\tspec = $el.data( 'condState' );\n\t\t\t}\n\n\t\t\tif ( !spec ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet fields = [];\n\t\t\tconst test = {};\n\t\t\t[ 'hide', 'disable' ].forEach( ( type ) => {\n\t\t\t\tif ( spec[ type ] ) {\n\t\t\t\t\tconst v = conditionParse( $form, spec[ type ] );\n\t\t\t\t\tfields = fields.concat( fields, v[ 0 ] );\n\t\t\t\t\ttest[ type ] = v[ 1 ];\n\t\t\t\t}\n\t\t\t} );\n\t\t\tconst func = function () {\n\t\t\t\tconst shouldHide = spec.hide ? test.hide() : false;\n\t\t\t\tconst shouldDisable = shouldHide || ( spec.disable ? test.disable() : false );\n\t\t\t\tif ( spec.hide ) {\n\t\t\t\t\t// Remove server-side CSS class that hides the elements, and re-compute the state\n\t\t\t\t\tif ( $elOrLayout instanceof $ ) {\n\t\t\t\t\t\t$elOrLayout.removeClass( 'mw-htmlform-hide-if-hidden' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$elOrLayout.$element.removeClass( 'mw-htmlform-hide-if-hidden' );\n\t\t\t\t\t}\n\t\t\t\t\t// The .toggle() method works mostly the same for jQuery objects and OO.ui.Widget\n\t\t\t\t\t$elOrLayout.toggle( !shouldHide );\n\t\t\t\t}\n\n\t\t\t\t// Disable fields with either 'disable-if' or 'hide-if' rules\n\t\t\t\t// Hidden fields should be disabled to avoid users meet validation failure on these fields,\n\t\t\t\t// because disabled fields will not be submitted with the form.\n\t\t\t\tif ( $elOrLayout instanceof $ ) {\n\t\t\t\t\t// This also finds elements inside any nested fields (in case of HTMLFormFieldCloner),\n\t\t\t\t\t// which is problematic. But it works because:\n\t\t\t\t\t// * HTMLFormFieldCloner::createFieldsForKey() copies '*-if' rules to nested fields\n\t\t\t\t\t// * jQuery collections like $fields are in document order, so we register event\n\t\t\t\t\t//   handlers for parents first\n\t\t\t\t\t// * Event handlers are fired in the order they were registered, so even if the handler\n\t\t\t\t\t//   for parent messed up the child, the handle for child will run next and fix it\n\t\t\t\t\t$elOrLayout.find( 'input, textarea, select' ).each( function () {\n\t\t\t\t\t\tconst $this = $( this );\n\t\t\t\t\t\tif ( shouldDisable ) {\n\t\t\t\t\t\t\tif ( $this.data( 'was-disabled' ) === undefined ) {\n\t\t\t\t\t\t\t\t$this.data( 'was-disabled', $this.prop( 'disabled' ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$this.prop( 'disabled', true );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$this.prop( 'disabled', $this.data( 'was-disabled' ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\t// $elOrLayout is a OO.ui.FieldLayout\n\t\t\t\t\tif ( shouldDisable ) {\n\t\t\t\t\t\tif ( $elOrLayout.wasDisabled === undefined ) {\n\t\t\t\t\t\t\t$elOrLayout.wasDisabled = $elOrLayout.fieldWidget.isDisabled();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$elOrLayout.fieldWidget.setDisabled( true );\n\t\t\t\t\t} else if ( $elOrLayout.wasDisabled !== undefined ) {\n\t\t\t\t\t\t$elOrLayout.fieldWidget.setDisabled( $elOrLayout.wasDisabled );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst oouiNodes = fields.map(\n\t\t\t\t// We expect undefined for non-OOUI nodes (T308626)\n\t\t\t\t( $node ) => $node.closest( '.oo-ui-fieldLayout[data-ooui]' )[ 0 ]\n\t\t\t).filter(\n\t\t\t\t// Remove undefined\n\t\t\t\t( node ) => !!node\n\t\t\t);\n\n\t\t\t// Load modules for the fields whose state we will check\n\t\t\tmw.loader.using( gatherOOUIModules( $( oouiNodes ) ) ).done( () => {\n\t\t\t\tfor ( let i = 0; i < fields.length; i++ ) {\n\t\t\t\t\tconst widget = getWidget( fields[ i ] );\n\t\t\t\t\tif ( widget ) {\n\t\t\t\t\t\tfields[ i ] = widget;\n\t\t\t\t\t}\n\t\t\t\t\t// The .on() method works mostly the same for jQuery objects and OO.ui.Widget\n\t\t\t\t\tfields[ i ].on( 'change', func );\n\t\t\t\t}\n\t\t\t\tfunc();\n\t\t\t} );\n\t\t} );\n\t} );\n} );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.htmlform/htmlform.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'htmlform.enhance'","line":5,"column":1,"nodeType":"Block","endLine":5,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"$( () => {\n\t/**\n\t * Fired on page load to enhance any HTML forms on the page.\n\t *\n\t * @event ~'htmlform.enhance'\n\t * @param {jQuery} document\n\t * @memberof Hooks\n\t */\n\tmw.hook( 'htmlform.enhance' ).fire( $( document ) );\n} );\n\nmw.hook( 'htmlform.enhance' ).add( ( $root ) => {\n\t// Turn HTML5 form validation back on, in cases where it was disabled server-side (see\n\t// HTMLForm::needsJSForHtml5FormValidation()) because we need extra logic implemented in JS to\n\t// validate correctly. Currently, this is only used for forms containing fields with 'hide-if'.\n\t$root.find( '.mw-htmlform' ).removeAttr( 'novalidate' );\n\n\t// Enable collapsible forms\n\tconst $collapsible = $root.find( '.mw-htmlform-ooui .oo-ui-fieldsetLayout.mw-collapsible' );\n\tif ( $collapsible.length ) {\n\t\tmw.loader.using( 'jquery.makeCollapsible' ).then( () => {\n\t\t\t$collapsible.makeCollapsible();\n\t\t} );\n\t}\n} );\n\n// Collect other hook handlers\nrequire( './autocomplete.js' );\nrequire( './autoinfuse.js' );\nrequire( './cloner.js' );\nrequire( './cond-state.js' );\nrequire( './selectandother.js' );\nrequire( './selectorother.js' );\nrequire( './timezone.js' );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.htmlform/selectandother.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.htmlform/selectorother.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.htmlform/timezone.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.inspect.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'mediawiki' is undefined.","line":61,"column":1,"nodeType":"Block","endLine":61,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'mediawiki' is undefined.","line":91,"column":1,"nodeType":"Block","endLine":91,"endColumn":1},{"ruleId":"jsdoc/require-returns","severity":1,"message":"Found more than one @return declaration.","line":112,"column":2,"nodeType":"Block","endLine":123,"endColumn":5},{"ruleId":"jsdoc/require-returns-check","severity":1,"message":"Found more than one @return declaration.","line":112,"column":2,"nodeType":"Block","endLine":123,"endColumn":5},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'mediawiki' is undefined.","line":121,"column":1,"nodeType":"Block","endLine":121,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'mediawiki' is undefined.","line":152,"column":1,"nodeType":"Block","endLine":152,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'mediawiki' is undefined.","line":164,"column":1,"nodeType":"Block","endLine":164,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'mediawiki' is undefined.","line":175,"column":1,"nodeType":"Block","endLine":175,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'mediawiki' is undefined.","line":203,"column":1,"nodeType":"Block","endLine":203,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":167,"column":22,"nodeType":"MemberExpression","messageId":"unexpected","endLine":167,"endColumn":35,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":184,"column":9,"nodeType":"MemberExpression","messageId":"unexpected","endLine":184,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":185,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":185,"endColumn":18,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"group"},"fix":{"range":[5581,5631],"text":""},"desc":"Remove the console.group()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":187,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":187,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[5648,5696],"text":""},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":190,"column":9,"nodeType":"MemberExpression","messageId":"unexpected","endLine":190,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":191,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":191,"endColumn":21,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"groupEnd"},"fix":{"range":[5783,5836],"text":""},"desc":"Remove the console.groupEnd()."}],"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":9,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/*!\n * The mediawiki.inspect module.\n *\n * @author Ori Livneh\n * @since 1.22\n */\n\n/* eslint-disable no-console */\n\n( function () {\n\n\t// mw.inspect is a singleton class with static methods\n\t// that itself can also be invoked as a function (mediawiki.base/mw#inspect).\n\t// In JavaScript, that is implemented by starting with a function,\n\t// and subsequently setting additional properties on the function object.\n\n\t/**\n\t * @classdesc Tools for inspecting page composition and performance.\n\t *\n\t * @class mediawiki.inspect\n\t * @hideconstructor\n\t */\n\n\tconst inspect = mw.inspect,\n\t\tbyteLength = require( 'mediawiki.String' ).byteLength,\n\t\thasOwn = Object.prototype.hasOwnProperty;\n\n\tfunction sortByProperty( array, prop, descending ) {\n\t\tconst order = descending ? -1 : 1;\n\t\treturn array.sort( ( a, b ) => {\n\t\t\tif ( a[ prop ] === undefined || b[ prop ] === undefined ) {\n\t\t\t\t// Sort undefined to the end, regardless of direction\n\t\t\t\treturn a[ prop ] !== undefined ? -1 : b[ prop ] !== undefined ? 1 : 0;\n\t\t\t}\n\t\t\treturn a[ prop ] > b[ prop ] ? order : a[ prop ] < b[ prop ] ? -order : 0;\n\t\t} );\n\t}\n\n\tfunction humanSize( bytesInput ) {\n\t\tlet bytes = +bytesInput;\n\t\tconst units = [ '', ' KiB', ' MiB', ' GiB', ' TiB', ' PiB' ];\n\n\t\tif ( bytes === 0 || isNaN( bytes ) ) {\n\t\t\treturn bytesInput;\n\t\t}\n\n\t\tlet i;\n\t\tfor ( i = 0; bytes >= 1024; bytes /= 1024 ) {\n\t\t\ti++;\n\t\t}\n\t\t// Maintain one decimal for KiB and above, but don't\n\t\t// add \".0\" for bytes.\n\t\treturn bytes.toFixed( i > 0 ? 1 : 0 ) + units[ i ];\n\t}\n\n\t/**\n\t * Return a map of all dependency relationships between loaded modules.\n\t *\n\t * @return {Object} Maps module names to objects. Each sub-object has\n\t *  two properties, 'requires' and 'requiredBy'.\n\t * @memberof mediawiki.inspect\n\t * @method mediawiki.inspect.getDependencyGraph\n\t */\n\tinspect.getDependencyGraph = function () {\n\t\tconst modules = inspect.getLoadedModules(),\n\t\t\tgraph = {};\n\n\t\tmodules.forEach( ( moduleName ) => {\n\t\t\tconst dependencies = mw.loader.moduleRegistry[ moduleName ].dependencies || [];\n\n\t\t\tif ( !hasOwn.call( graph, moduleName ) ) {\n\t\t\t\tgraph[ moduleName ] = { requiredBy: [] };\n\t\t\t}\n\t\t\tgraph[ moduleName ].requires = dependencies;\n\n\t\t\tdependencies.forEach( ( depName ) => {\n\t\t\t\tif ( !hasOwn.call( graph, depName ) ) {\n\t\t\t\t\tgraph[ depName ] = { requiredBy: [] };\n\t\t\t\t}\n\t\t\t\tgraph[ depName ].requiredBy.push( moduleName );\n\t\t\t} );\n\t\t} );\n\t\treturn graph;\n\t};\n\n\t/**\n\t * Calculate the byte size of a ResourceLoader module.\n\t *\n\t * @param {string} moduleName The name of the module\n\t * @return {number|null} Module size in bytes or null\n\t * @memberof mediawiki.inspect\n\t * @method mediawiki.inspect.getModuleSize\n\t */\n\tinspect.getModuleSize = function ( moduleName ) {\n\t\t// We typically receive them from the server through batches from load.php,\n\t\t// or embedded as inline scripts (handled in PHP by ResourceLoader::makeModuleResponse\n\t\t// and ResourceLoader\\ClientHtml respectively).\n\t\t//\n\t\t// The module declarator function is stored by mw.loader.implement(), allowing easy\n\t\t// computation of the exact size.\n\t\tconst module = mw.loader.moduleRegistry[ moduleName ];\n\n\t\tif ( module.state !== 'ready' ) {\n\t\t\treturn null;\n\t\t}\n\t\tif ( !module.declarator ) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn byteLength( module.declarator.toString() );\n\t};\n\n\t/**\n\t * Given CSS source, count both the total number of selectors it\n\t * contains and the number which match some element in the current\n\t * document.\n\t *\n\t * @param {string} css CSS source\n\t * @return {Object} Selector counts\n\t * @return {number} return.selectors Total number of selectors\n\t * @return {number} return.matched Number of matched selectors\n\t * @memberof mediawiki.inspect\n\t * @method mediawiki.inspect.auditSelectors\n\t */\n\tinspect.auditSelectors = function ( css ) {\n\t\tconst selectors = { total: 0, matched: 0 },\n\t\t\tstyle = document.createElement( 'style' );\n\n\t\tstyle.textContent = css;\n\t\tdocument.body.appendChild( style );\n\t\tconst cssRules = style.sheet.cssRules;\n\t\tfor ( const index in cssRules ) {\n\t\t\tconst rule = cssRules[ index ];\n\t\t\tselectors.total++;\n\t\t\t// document.querySelector() on prefixed pseudo-elements can throw exceptions\n\t\t\t// in Firefox and Safari. Ignore these exceptions.\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=149160\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=1204880\n\t\t\ttry {\n\t\t\t\tif ( document.querySelector( rule.selectorText ) !== null ) {\n\t\t\t\t\tselectors.matched++;\n\t\t\t\t}\n\t\t\t} catch ( e ) {}\n\t\t}\n\t\tdocument.body.removeChild( style );\n\t\treturn selectors;\n\t};\n\n\t/**\n\t * Get a list of all loaded ResourceLoader modules.\n\t *\n\t * @return {Array} List of module names\n\t * @memberof mediawiki.inspect\n\t * @method mediawiki.inspect.getLoadedModules\n\t */\n\tinspect.getLoadedModules = function () {\n\t\treturn mw.loader.getModuleNames().filter( ( module ) => mw.loader.getState( module ) === 'ready' );\n\t};\n\n\t/**\n\t * Print tabular data to the console using console.table.\n\t *\n\t * @param {Array} data Tabular data represented as an array of objects\n\t *  with common properties.\n\t * @memberof mediawiki.inspect\n\t * @method mediawiki.inspect.dumpTable\n\t */\n\tinspect.dumpTable = console.table;\n\n\t/**\n\t * Generate and print reports.\n\t *\n\t * When invoked without arguments, prints all available reports.\n\t *\n\t * @param {...string} [reports] One or more of \"size\", \"css\", \"store\", or \"time\".\n\t * @memberof mediawiki.inspect\n\t * @method mediawiki.inspect.runReports\n\t */\n\tinspect.runReports = function () {\n\t\tconst reports = arguments.length > 0 ?\n\t\t\tArray.prototype.slice.call( arguments ) :\n\t\t\tObject.keys( inspect.reports );\n\n\t\treports.forEach( ( name ) => {\n\t\t\tif ( console.group ) {\n\t\t\t\tconsole.group( 'mw.inspect ' + name + ' report' );\n\t\t\t} else {\n\t\t\t\tconsole.log( 'mw.inspect ' + name + ' report' );\n\t\t\t}\n\t\t\tinspect.dumpTable( inspect.reports[ name ]() );\n\t\t\tif ( console.group ) {\n\t\t\t\tconsole.groupEnd( 'mw.inspect ' + name + ' report' );\n\t\t\t}\n\t\t} );\n\t};\n\n\t/**\n\t * Perform a string search across the JavaScript and CSS source code\n\t * of all loaded modules and return an array of the names of the\n\t * modules that matched.\n\t *\n\t * @param {string|RegExp} pattern String or regexp to match.\n\t * @return {Array} Array of the names of modules that matched.\n\t * @memberof mediawiki.inspect\n\t * @method mediawiki.inspect.grep\n\t */\n\tinspect.grep = function ( pattern ) {\n\t\tif ( typeof pattern.test !== 'function' ) {\n\n\t\t\tpattern = new RegExp( mw.util.escapeRegExp( pattern ), 'g' );\n\t\t}\n\n\t\treturn inspect.getLoadedModules().filter( ( moduleName ) => {\n\t\t\tconst module = mw.loader.moduleRegistry[ moduleName ];\n\n\t\t\t// Grep module's JavaScript\n\t\t\tif ( typeof module.script === 'function' && pattern.test( module.script.toString() ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Grep module's CSS\n\t\t\tif (\n\t\t\t\t$.isPlainObject( module.style ) && Array.isArray( module.style.css ) &&\n\t\t\t\tpattern.test( module.style.css.join( '' ) )\n\t\t\t) {\n\t\t\t\t// Module's CSS source matches\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} );\n\t};\n\n\t/**\n\t * @private\n\t * @class mw.inspect.reports\n\t * @singleton\n\t */\n\tinspect.reports = {\n\t\t/**\n\t\t * Generate a breakdown of all loaded modules and their size in\n\t\t * kibibytes. Modules are ordered from largest to smallest.\n\t\t *\n\t\t * @return {Object[]} Size reports\n\t\t */\n\t\tsize: function () {\n\t\t\t// Map each module to a descriptor object.\n\t\t\tconst modules = inspect.getLoadedModules().map( ( module ) => ( {\n\t\t\t\tname: module,\n\t\t\t\tsize: inspect.getModuleSize( module )\n\t\t\t} ) );\n\n\t\t\t// Sort module descriptors by size, largest first.\n\t\t\tsortByProperty( modules, 'size', true );\n\n\t\t\t// Convert size to human-readable string.\n\t\t\tmodules.forEach( ( module ) => {\n\t\t\t\tmodule.sizeInBytes = module.size;\n\t\t\t\tmodule.size = humanSize( module.size );\n\t\t\t} );\n\n\t\t\treturn modules;\n\t\t},\n\n\t\t/**\n\t\t * For each module with styles, count the number of selectors, and\n\t\t * count how many match against some element currently in the DOM.\n\t\t *\n\t\t * @return {Object[]} CSS reports\n\t\t */\n\t\tcss: function () {\n\t\t\tconst modules = [];\n\n\t\t\tinspect.getLoadedModules().forEach( ( name ) => {\n\t\t\t\tconst module = mw.loader.moduleRegistry[ name ];\n\n\t\t\t\tlet css;\n\t\t\t\ttry {\n\t\t\t\t\tcss = module.style.css.join();\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\t// skip\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst stats = inspect.auditSelectors( css );\n\t\t\t\tmodules.push( {\n\t\t\t\t\tmodule: name,\n\t\t\t\t\tallSelectors: stats.total,\n\t\t\t\t\tmatchedSelectors: stats.matched,\n\t\t\t\t\tpercentMatched: stats.total !== 0 ?\n\t\t\t\t\t\t( stats.matched / stats.total * 100 ).toFixed( 2 ) + '%' : null\n\t\t\t\t} );\n\t\t\t} );\n\t\t\tsortByProperty( modules, 'allSelectors', true );\n\t\t\treturn modules;\n\t\t},\n\n\t\t/**\n\t\t * Report stats on mw.loader.store: the number of localStorage\n\t\t * cache hits and misses, the number of items purged from the\n\t\t * cache, and the total size of the module blob in localStorage.\n\t\t *\n\t\t * @return {Object[]} Store stats\n\t\t */\n\t\tstore: function () {\n\t\t\tconst stats = { enabled: mw.loader.store.enabled };\n\t\t\tif ( stats.enabled ) {\n\t\t\t\tObject.assign( stats, mw.loader.store.stats );\n\t\t\t\ttry {\n\t\t\t\t\tconst raw = localStorage.getItem( mw.loader.store.key );\n\t\t\t\t\tstats.totalSizeInBytes = byteLength( raw );\n\t\t\t\t\tstats.totalSize = humanSize( byteLength( raw ) );\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\t\t\treturn [ stats ];\n\t\t},\n\n\t\t/**\n\t\t * Generate a breakdown of all loaded modules and their time\n\t\t * spent during initialisation (measured in milliseconds).\n\t\t *\n\t\t * This timing data is collected by mw.loader.profiler.\n\t\t *\n\t\t * @return {Object[]} Table rows\n\t\t */\n\t\ttime: function () {\n\t\t\tif ( !mw.loader.profiler ) {\n\t\t\t\tmw.log.warn( 'mw.inspect: The time report requires $wgResourceLoaderEnableJSProfiler.' );\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tconst modules = inspect.getLoadedModules()\n\t\t\t\t.map( ( moduleName ) => mw.loader.profiler.getProfile( moduleName ) )\n\t\t\t\t.filter(\n\t\t\t\t\t// Exclude modules that reached \"ready\" state without involvement from mw.loader.\n\t\t\t\t\t// This is primarily styles-only as loaded via <link rel=\"stylesheet\">.\n\t\t\t\t\t( perf ) => perf !== null\n\t\t\t\t);\n\n\t\t\t// Sort by total time spent, highest first.\n\t\t\tsortByProperty( modules, 'total', true );\n\n\t\t\t// Add human-readable strings\n\t\t\tmodules.forEach( ( module ) => {\n\t\t\t\tmodule.totalInMs = module.total;\n\t\t\t\tmodule.total = module.totalInMs.toLocaleString() + ' ms';\n\t\t\t} );\n\n\t\t\treturn modules;\n\t\t}\n\t};\n\n\tif ( mw.config.get( 'debug' ) ) {\n\t\tmw.log( 'mw.inspect: reports are not available in debug mode.' );\n\t}\n\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.jqueryMsg/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.jqueryMsg/mediawiki.jqueryMsg.js","messages":[{"ruleId":"jsdoc/require-returns","severity":1,"message":"Found more than one @return declaration.","line":142,"column":1,"nodeType":"Block","endLine":154,"endColumn":4},{"ruleId":"jsdoc/require-returns-check","severity":1,"message":"Found more than one @return declaration.","line":142,"column":1,"nodeType":"Block","endLine":154,"endColumn":4}],"suppressedMessages":[{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\[.","line":477,"column":49,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":477,"endColumn":50,"suggestions":[{"messageId":"removeEscape","fix":{"range":[14308,14309],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[14308,14308],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\[.","line":478,"column":59,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":478,"endColumn":60,"suggestions":[{"messageId":"removeEscape","fix":{"range":[14380,14381],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[14380,14380],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\[.","line":479,"column":61,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":479,"endColumn":62,"suggestions":[{"messageId":"removeEscape","fix":{"range":[14454,14455],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[14454,14454],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-map-util","severity":2,"message":"Prefer Array#map to $.map","line":931,"column":22,"nodeType":"CallExpression","endLine":931,"endColumn":85,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-misleading-character-class","severity":2,"message":"Unexpected combined character in character class.","line":962,"column":25,"nodeType":"NewExpression","messageId":"combiningClass","endLine":970,"endColumn":2,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-map-util","severity":2,"message":"Prefer Array#map to $.map","line":1261,"column":11,"nodeType":"CallExpression","endLine":1261,"endColumn":37,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/*!\n* Experimental advanced wikitext parser-emitter.\n* See: https://www.mediawiki.org/wiki/Extension:UploadWizard/MessageParser for docs\n*\n* @author neilk@wikimedia.org\n* @author mflaschen@wikimedia.org\n*/\n/**\n * @typedef {string|string[]} module:mediawiki.jqueryMsg~Replacements\n * @ignore\n */\n/**\n * @callback {Function} module:mediawiki.jqueryMsg~MessageFormatterFunction\n * @param {Array<module:mediawiki.jqueryMsg~Replacements>} replacements Optional variable replacements (variadically or an array).\n *   This is a mixed array of strings or arrays of string. This is equivalent to Array<string|string[]> but cannot be documented until the\n *   jsdoc theme has been patched (T354716).\n * @return {jQuery} Rendered HTML.\n * @ignore\n */\n\n/**\n * @callback {Function} MessageFormatterFunctionGenerator\n * @return {module:mediawiki.jqueryMsg~MessageFormatterFunction}\n * @ignore\n */\n\nconst slice = Array.prototype.slice,\n\tutil = require( 'mediawiki.util' ),\n\tmwString = require( 'mediawiki.String' ),\n\tparserDefaults = {\n\t\t// Magic words and their expansions. Server-side data is added to this below.\n\t\tmagic: {\n\t\t\tPAGENAME: mw.config.get( 'wgPageName' ),\n\t\t\tPAGENAMEE: util.wikiUrlencode( mw.config.get( 'wgPageName' ) ),\n\t\t\tSERVERNAME: mw.config.get( 'wgServerName' ),\n\t\t\tCONTENTLANGUAGE: mw.config.get( 'wgContentLanguage' )\n\t\t},\n\t\t// Whitelist for allowed HTML elements in wikitext.\n\t\t// Self-closing tags are not currently supported.\n\t\t// Filled in with server-side data below\n\t\tallowedHtmlElements: [],\n\t\t// Key tag name, value allowed attributes for that tag.\n\t\t// See Sanitizer::setupAttributeWhitelist\n\t\tallowedHtmlCommonAttributes: [\n\t\t\t// HTML\n\t\t\t'id',\n\t\t\t'class',\n\t\t\t'style',\n\t\t\t'lang',\n\t\t\t'dir',\n\t\t\t'title',\n\n\t\t\t// WAI-ARIA\n\t\t\t'role'\n\t\t],\n\n\t\t// Attributes allowed for specific elements.\n\t\t// Key is element name in lower case\n\t\t// Value is array of allowed attributes for that element\n\t\tallowedHtmlAttributesByElement: {},\n\t\tmessages: mw.messages,\n\t\tlanguage: mw.language,\n\n\t\t// Same meaning as in mediawiki.js.\n\t\t//\n\t\t// Only 'text', 'parse', and 'escaped' are supported, and the\n\t\t// actual escaping for 'escaped' is done by other code (generally\n\t\t// through mediawiki.js).\n\t\t//\n\t\t// However, note that this default only\n\t\t// applies to direct calls to jqueryMsg. The default for mediawiki.js itself\n\t\t// is 'text', including when it uses jqueryMsg.\n\t\tformat: 'parse'\n\t};\n\n// Add in server-side data (allowedHtmlElements and magic words)\n$.extend( true, parserDefaults, require( './parserDefaults.json' ) );\n\n/**\n * Wrapper around jQuery append that converts all non-objects to TextNode so append will not\n * convert what it detects as an htmlString to an element.\n *\n * If our own HtmlEmitter jQuery object is given, its children will be unwrapped and appended to\n * new parent.\n *\n * Object elements of children (jQuery, HTMLElement, TextNode, etc.) will be left as is.\n *\n * @private\n * @param {jQuery} $parent Parent node wrapped by jQuery\n * @param {Object|string|Array} children What to append, with the same possible types as jQuery\n * @return {jQuery} $parent\n */\nfunction appendWithoutParsing( $parent, children ) {\n\tlet i, len;\n\n\tif ( !Array.isArray( children ) ) {\n\t\tchildren = [ children ];\n\t}\n\n\tfor ( i = 0, len = children.length; i < len; i++ ) {\n\t\tif ( typeof children[ i ] !== 'object' ) {\n\t\t\tchildren[ i ] = document.createTextNode( children[ i ] );\n\t\t}\n\t\tif ( children[ i ] instanceof $ && children[ i ].hasClass( 'mediaWiki_htmlEmitter' ) ) {\n\t\t\tchildren[ i ] = children[ i ].contents();\n\t\t}\n\t}\n\n\treturn $parent.append( children );\n}\n\n/**\n * Decodes the main HTML entities, those encoded by mw.html.escape.\n *\n * @private\n * @param {string} encoded Encoded string\n * @return {string} String with those entities decoded\n */\nfunction decodePrimaryHtmlEntities( encoded ) {\n\treturn encoded\n\t\t.replace( /&#039;/g, '\\'' )\n\t\t.replace( /&quot;/g, '\"' )\n\t\t.replace( /&lt;/g, '<' )\n\t\t.replace( /&gt;/g, '>' )\n\t\t.replace( /&amp;/g, '&' );\n}\n\n/**\n * Turn input into a string.\n *\n * @private\n * @param {string|jQuery} input\n * @return {string} Textual value of input\n */\nfunction textify( input ) {\n\tif ( input instanceof $ ) {\n\t\tinput = input.text();\n\t}\n\treturn String( input );\n}\n\n/**\n * Given parser options, return a function that parses a key and replacements, returning jQuery object\n *\n * Try to parse a key and optional replacements, returning a jQuery object that may be a tree of jQuery nodes.\n * If there was an error parsing, return the key and the error message (wrapped in jQuery). This should put the error right into\n * the interface, without causing the page to halt script execution, and it hopefully should be clearer how to fix it.\n *\n * @private\n * @param {Object} options Parser options\n * @return {Function}\n * @return {Array} return.args First element is the key, replacements may be in array in 2nd element, or remaining elements.\n * @return {jQuery} return.return\n */\nfunction getFailableParserFn( options ) {\n\treturn function ( args ) {\n\t\tconst parser = new Parser( options ),\n\t\t\tkey = args[ 0 ],\n\t\t\targsArray = Array.isArray( args[ 1 ] ) ? args[ 1 ] : slice.call( args, 1 );\n\t\ttry {\n\t\t\treturn parser.parse( key, argsArray );\n\t\t} catch ( e ) {\n\t\t\tconst fallback = parser.settings.messages.get( key );\n\t\t\tmw.log.warn( 'mediawiki.jqueryMsg: ' + key + ': ' + e.message );\n\t\t\tmw.track( 'mediawiki.jqueryMsg.error', {\n\t\t\t\tmessageKey: key,\n\t\t\t\terrorMessage: e.message\n\t\t\t} );\n\t\t\treturn $( '<span>' ).text( fallback );\n\t\t}\n\t};\n}\n\n/**\n * Initialize parser defaults.\n *\n * This is currently used by the QUnit testrunner to change the reference in\n * parserDefaults.messages to the test messages and back.\n *\n * @private\n * @param {Object} data New data to extend parser defaults with\n */\nconst setParserDefaults = function ( data ) {\n\tObject.assign( parserDefaults, data );\n};\n\n/**\n * Get current parser defaults.\n *\n * Primarily used for the unit test. Returns a copy.\n *\n * @private\n * @return {Object}\n */\nconst getParserDefaults = function () {\n\treturn Object.assign( {}, parserDefaults );\n};\n\n/**\n * Returns a function suitable for static use, to construct strings from a message key (and optional replacements).\n *\n * @ignore\n * @param {Object} options parser options\n * @return {module:mediawiki.jqueryMsg~MessageFormatterFunction}\n */\nconst defaultMessageFunction = function ( options ) {\n\tlet failableParserFn, format;\n\n\tif ( options && options.format !== undefined ) {\n\t\tformat = options.format;\n\t} else {\n\t\tformat = parserDefaults.format;\n\t}\n\n\treturn function () {\n\t\tif ( !failableParserFn ) {\n\t\t\tfailableParserFn = getFailableParserFn( options );\n\t\t}\n\t\tconst $result = failableParserFn( arguments );\n\t\tif ( format === 'text' || format === 'escaped' ) {\n\t\t\treturn $result.text();\n\t\t} else {\n\t\t\treturn $result.html();\n\t\t}\n\t};\n};\n/**\n * @type {MessageFormatterFunctionGenerator}\n * @ignore\n */\nlet messageFunction = defaultMessageFunction;\n\n/**\n * @ignore\n * @param {Object} options parser options\n * @return {module:mediawiki.jqueryMsg~MessageFormatterFunction} options\n */\nconst getMessageFunction = function ( options ) {\n\treturn messageFunction( options );\n};\n\n/**\n * Allows tests to override the message function.\n *\n * @ignore\n * @param {MessageFormatterFunctionGenerator} msgFunction\n * @return {Function} that allows you to restore the original message function.\n */\nconst setMessageFunction = function ( msgFunction ) {\n\tmessageFunction = msgFunction;\n\treturn function () {\n\t\tmessageFunction = defaultMessageFunction;\n\t};\n};\n\n/**\n * Returns a jQuery plugin.\n *\n * @ignore\n * @param {Object} [options] Parser options\n * @return {module:mediawiki.jqueryMsg~MessageFormatterFunction}\n */\nconst getPlugin = function ( options ) {\n\tlet failableParserFn;\n\n\treturn function () {\n\t\tif ( !failableParserFn ) {\n\t\t\tfailableParserFn = getFailableParserFn( options );\n\t\t}\n\t\tconst $result = failableParserFn( arguments );\n\t\treturn this.empty().append( $result.contents() );\n\t};\n};\n\n/**\n * The parser itself.\n * Describes an object, whose primary duty is to .parse() message keys.\n *\n * @class\n * @private\n * @param {Object} options\n */\nfunction Parser( options ) {\n\tthis.settings = Object.assign( {}, parserDefaults, options );\n\tthis.settings.onlyCurlyBraceTransform = ( this.settings.format === 'text' || this.settings.format === 'escaped' );\n\tthis.astCache = {};\n\n\tthis.emitter = new HtmlEmitter( this.settings.language, this.settings.magic );\n}\n\nParser.prototype = {\n\t/**\n\t * Where the magic happens.\n\t * Parses a message from the key, and swaps in replacements as necessary, wraps in jQuery\n\t * If an error is thrown, returns original key, and logs the error\n\t *\n\t * @param {string} key Message key.\n\t * @param {Array} replacements Variable replacements for $1, $2... $n\n\t * @return {jQuery}\n\t */\n\tparse: function ( key, replacements ) {\n\t\tconst ast = this.getAst( key, replacements );\n\t\treturn this.emitter.emit( ast, replacements );\n\t},\n\n\t/**\n\t * Fetch the message string associated with a key, return parsed structure. Memoized.\n\t * Note that we pass '⧼' + key + '⧽' back for a missing message here.\n\t *\n\t * @param {string} key\n\t * @param {Array} replacements Variable replacements for $1, $2... $n\n\t * @return {string|Array} string of '⧼key⧽' if message missing, simple string if possible, array of arrays if needs parsing\n\t */\n\tgetAst: function ( key, replacements ) {\n\t\tif ( !Object.prototype.hasOwnProperty.call( this.astCache, key ) ) {\n\t\t\tlet wikiText = this.settings.messages.get( key );\n\t\t\t// Keep this synchronised with Message#parser in mediawiki.base.js\n\t\t\tif (\n\t\t\t\tmw.config.get( 'wgUserLanguage' ) === 'qqx' &&\n\t\t\t\t( !wikiText || wikiText === '(' + key + ')' )\n\t\t\t) {\n\t\t\t\twikiText = '(' + key + '$*)';\n\t\t\t} else if ( typeof wikiText !== 'string' ) {\n\t\t\t\twikiText = '⧼' + key + '⧽';\n\t\t\t}\n\t\t\twikiText = mw.internalDoTransformFormatForQqx( wikiText, replacements );\n\t\t\tthis.astCache[ key ] = this.wikiTextToAst( wikiText );\n\t\t}\n\t\treturn this.astCache[ key ];\n\t},\n\n\t/**\n\t * Parses the input wikiText into an abstract syntax tree, essentially an s-expression.\n\t *\n\t * CAVEAT: This does not parse all wikitext. It could be more efficient, but it's pretty good already.\n\t * n.b. We want to move this functionality to the server. Nothing here is required to be on the client.\n\t *\n\t * @param {string} input Message string wikitext\n\t * @throws Error\n\t * @return {any} abstract syntax tree\n\t */\n\twikiTextToAst: function ( input ) {\n\t\tlet nonWhitespaceExpression = null, expression = null, templateContents = null, paramExpression = null, colon = null;\n\t\tconst settings = this.settings;\n\n\t\t// Indicates current position in input as we parse through it.\n\t\t// Shared among all parsing functions below.\n\t\tlet pos = 0;\n\n\t\t// =========================================================\n\t\t// parsing combinators - could be a library on its own\n\t\t// =========================================================\n\n\t\t/**\n\t\t * Try parsers until one works, if none work return null\n\t\t *\n\t\t * @private\n\t\t * @param {Function[]} ps\n\t\t * @return {Function} that will return {string|null}\n\t\t */\n\t\tfunction choice( ps ) {\n\t\t\treturn function () {\n\t\t\t\tlet i, result;\n\t\t\t\tfor ( i = 0; i < ps.length; i++ ) {\n\t\t\t\t\tresult = ps[ i ]();\n\t\t\t\t\tif ( result !== null ) {\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Try several ps in a row, all must succeed or return null.\n\t\t * This is the only eager one.\n\t\t *\n\t\t * @private\n\t\t * @param {Function[]} ps Each function should return a string or null\n\t\t * @return {string[]|null}\n\t\t */\n\t\tfunction sequence( ps ) {\n\t\t\tconst originalPos = pos,\n\t\t\t\tresult = [];\n\t\t\tfor ( let i = 0; i < ps.length; i++ ) {\n\t\t\t\tconst r = ps[ i ]();\n\t\t\t\tif ( r === null ) {\n\t\t\t\t\tpos = originalPos;\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tresult.push( r );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\n\t\t/**\n\t\t * Run the same parser over and over until it fails.\n\t\t * Must succeed a minimum of n times or return null.\n\t\t *\n\t\t * @private\n\t\t * @param {number} n\n\t\t * @param {Function} p Should return a string or null\n\t\t * @return {Function} that will return {string[]|null}\n\t\t */\n\t\tfunction nOrMore( n, p ) {\n\t\t\treturn function () {\n\t\t\t\tconst originalPos = pos,\n\t\t\t\t\tresult = [];\n\t\t\t\tlet parsed = p();\n\t\t\t\twhile ( parsed !== null ) {\n\t\t\t\t\tresult.push( parsed );\n\t\t\t\t\tparsed = p();\n\t\t\t\t}\n\t\t\t\tif ( result.length < n ) {\n\t\t\t\t\tpos = originalPos;\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Just make parsers out of simpler JS builtin types\n\t\t *\n\t\t * @private\n\t\t * @param {string} s\n\t\t * @return {Function} that will return {string|null}\n\t\t */\n\t\tfunction makeStringParser( s ) {\n\t\t\tconst len = s.length;\n\t\t\treturn function () {\n\t\t\t\tlet result = null;\n\t\t\t\tif ( input.slice( pos, pos + len ) === s ) {\n\t\t\t\t\tresult = s;\n\t\t\t\t\tpos += len;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Makes a regex parser, given a RegExp object.\n\t\t * The regex being passed in should start with a ^ to anchor it to the start\n\t\t * of the string.\n\t\t *\n\t\t * @private\n\t\t * @param {RegExp} regex anchored regex\n\t\t * @return {Function} function to parse input based on the regex\n\t\t */\n\t\tfunction makeRegexParser( regex ) {\n\t\t\treturn function () {\n\t\t\t\tconst matches = input.slice( pos ).match( regex );\n\t\t\t\tif ( matches === null ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tpos += matches[ 0 ].length;\n\t\t\t\treturn matches[ 0 ];\n\t\t\t};\n\t\t}\n\n\t\t// ===================================================================\n\t\t// General patterns above this line -- wikitext specific parsers below\n\t\t// ===================================================================\n\n\t\t// Parsing functions follow. All parsing functions work like this:\n\t\t// They don't accept any arguments.\n\t\t// Instead, they just operate non destructively on the string 'input'\n\t\t// As they can consume parts of the string, they advance the shared variable pos,\n\t\t// and return tokens (or whatever else they want to return).\n\t\t// some things are defined as closures and other things as ordinary functions\n\t\t// converting everything to a closure makes it a lot harder to debug... errors pop up\n\t\t// but some debuggers can't tell you exactly where they come from. Also the mutually\n\t\t// recursive functions seem not to work in all browsers then. (Tested IE6-7, Opera, Safari, FF)\n\t\t// This may be because, to save code, memoization was removed\n\n\t\t/* eslint-disable no-useless-escape */\n\t\tconst regularLiteral = makeRegexParser( /^[^{}\\[\\]$<\\\\]/ );\n\t\tconst regularLiteralWithoutBar = makeRegexParser( /^[^{}\\[\\]$\\\\|]/ );\n\t\tconst regularLiteralWithoutSpace = makeRegexParser( /^[^{}\\[\\]$\\s]/ );\n\t\t/* eslint-enable no-useless-escape */\n\n\t\tconst backslash = makeStringParser( '\\\\' );\n\t\tconst anyCharacter = makeRegexParser( /^./ );\n\t\tfunction escapedLiteral() {\n\t\t\tconst result = sequence( [\n\t\t\t\tbackslash,\n\t\t\t\tanyCharacter\n\t\t\t] );\n\t\t\treturn result === null ? null : result[ 1 ];\n\t\t}\n\t\tconst escapedOrLiteralWithoutSpace = choice( [\n\t\t\tescapedLiteral,\n\t\t\tregularLiteralWithoutSpace\n\t\t] );\n\t\tconst escapedOrLiteralWithoutBar = choice( [\n\t\t\tescapedLiteral,\n\t\t\tregularLiteralWithoutBar\n\t\t] );\n\t\tconst escapedOrRegularLiteral = choice( [\n\t\t\tescapedLiteral,\n\t\t\tregularLiteral\n\t\t] );\n\t\t// Used to define \"literals\" without spaces, in space-delimited situations\n\t\tfunction literalWithoutSpace() {\n\t\t\tconst result = nOrMore( 1, escapedOrLiteralWithoutSpace )();\n\t\t\treturn result === null ? null : result.join( '' );\n\t\t}\n\t\t// Used to define \"literals\" within template parameters. The pipe character is the parameter delimeter, so by default\n\t\t// it is not a literal in the parameter\n\t\tfunction literalWithoutBar() {\n\t\t\tconst result = nOrMore( 1, escapedOrLiteralWithoutBar )();\n\t\t\treturn result === null ? null : result.join( '' );\n\t\t}\n\n\t\tfunction literal() {\n\t\t\tconst result = nOrMore( 1, escapedOrRegularLiteral )();\n\t\t\treturn result === null ? null : result.join( '' );\n\t\t}\n\n\t\tconst asciiAlphabetLiteral = makeRegexParser( /^[A-Za-z]+/ );\n\n\t\tconst whitespace = makeRegexParser( /^\\s+/ );\n\n\t\tconst dollar = makeStringParser( '$' );\n\t\tconst digits = makeRegexParser( /^\\d+/ );\n\t\tfunction replacement() {\n\t\t\tconst result = sequence( [\n\t\t\t\tdollar,\n\t\t\t\tdigits\n\t\t\t] );\n\t\t\tif ( result === null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn [ 'REPLACE', parseInt( result[ 1 ], 10 ) - 1 ];\n\t\t}\n\t\tconst openExtlink = makeStringParser( '[' );\n\t\tconst closeExtlink = makeStringParser( ']' );\n\t\t// this extlink MUST have inner contents, e.g. [foo] not allowed; [foo bar] [foo <i>bar</i>], etc. are allowed\n\t\tfunction extlink() {\n\t\t\tconst parsedResult = sequence( [\n\t\t\t\topenExtlink,\n\t\t\t\tnOrMore( 1, nonWhitespaceExpression ),\n\t\t\t\twhitespace,\n\t\t\t\tnOrMore( 1, expression ),\n\t\t\t\tcloseExtlink\n\t\t\t] );\n\t\t\tif ( parsedResult === null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\t// When the entire link target is a single parameter, we can't use CONCAT, as we allow\n\t\t\t// passing fancy parameters (like a whole jQuery object or a function) to use for the\n\t\t\t// link. Check only if it's a single match, since we can either do CONCAT or not for\n\t\t\t// singles with the same effect.\n\t\t\tconst target = parsedResult[ 1 ].length === 1 ?\n\t\t\t\tparsedResult[ 1 ][ 0 ] :\n\t\t\t\t[ 'CONCAT', ...parsedResult[ 1 ] ];\n\t\t\treturn [\n\t\t\t\t'EXTLINK',\n\t\t\t\ttarget,\n\t\t\t\t[ 'CONCAT', ...parsedResult[ 3 ] ]\n\t\t\t];\n\t\t}\n\t\tconst pipe = makeStringParser( '|' );\n\n\t\tconst openTemplate = makeStringParser( '{{' );\n\t\tconst closeTemplate = makeStringParser( '}}' );\n\t\tfunction template() {\n\t\t\tconst result = sequence( [\n\t\t\t\topenTemplate,\n\t\t\t\ttemplateContents,\n\t\t\t\tcloseTemplate\n\t\t\t] );\n\t\t\treturn result === null ? null : result[ 1 ];\n\t\t}\n\n\t\tfunction templateName() {\n\t\t\t// see $wgLegalTitleChars\n\t\t\t// not allowing : due to the need to catch \"PLURAL:$1\"\n\t\t\tconst templateNameRegex = makeRegexParser( /^#?[ !\"$&'()*,./0-9;=?@A-Z^_`a-z~\\x80-\\xFF+-]+/ );\n\t\t\tconst result = templateNameRegex();\n\t\t\treturn result === null ? null : result.toString();\n\t\t}\n\n\t\tfunction templateParam() {\n\t\t\tconst result = sequence( [\n\t\t\t\tpipe,\n\t\t\t\tnOrMore( 0, paramExpression )\n\t\t\t] );\n\t\t\tif ( result === null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst expr = result[ 1 ];\n\t\t\t// use a CONCAT operator if there are multiple nodes, otherwise return the first node, raw.\n\t\t\treturn expr.length > 1 ? [ 'CONCAT', ...expr ] : expr[ 0 ];\n\t\t}\n\n\t\tfunction templateNameWithParam() {\n\t\t\tconst result = sequence( [\n\t\t\t\ttemplateName,\n\t\t\t\tcolon,\n\t\t\t\tnOrMore( 0, paramExpression )\n\t\t\t] );\n\t\t\tif ( result === null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst expr = result[ 2 ];\n\t\t\t// use a CONCAT operator if there are multiple nodes, otherwise return the first node, raw.\n\t\t\treturn [ result[ 0 ], expr.length > 1 ? [ 'CONCAT', ...expr ] : expr[ 0 ] ];\n\t\t}\n\t\tcolon = makeStringParser( ':' );\n\t\ttemplateContents = choice( [\n\t\t\tfunction () {\n\t\t\t\tconst result = sequence( [\n\t\t\t\t\ttemplateNameWithParam,\n\t\t\t\t\tnOrMore( 0, templateParam )\n\t\t\t\t] );\n\t\t\t\treturn result === null ? null : [ ...result[ 0 ], ...result[ 1 ] ];\n\t\t\t},\n\t\t\tfunction () {\n\t\t\t\tconst result = sequence( [\n\t\t\t\t\ttemplateName,\n\t\t\t\t\tnOrMore( 0, templateParam )\n\t\t\t\t] );\n\t\t\t\tif ( result === null ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn [ result[ 0 ], ...result[ 1 ] ];\n\t\t\t}\n\t\t] );\n\n\t\tfunction pipedWikilink() {\n\t\t\tconst result = sequence( [\n\t\t\t\tnOrMore( 1, paramExpression ),\n\t\t\t\tpipe,\n\t\t\t\tnOrMore( 1, expression )\n\t\t\t] );\n\t\t\treturn result === null ? null : [\n\t\t\t\t[ 'CONCAT', ...result[ 0 ] ],\n\t\t\t\t[ 'CONCAT', ...result[ 2 ] ]\n\t\t\t];\n\t\t}\n\n\t\tfunction unpipedWikilink() {\n\t\t\tconst result = sequence( [\n\t\t\t\tnOrMore( 1, paramExpression )\n\t\t\t] );\n\t\t\treturn result === null ? null : [\n\t\t\t\t[ 'CONCAT', ...result[ 0 ] ]\n\t\t\t];\n\t\t}\n\n\t\tconst wikilinkContents = choice( [\n\t\t\tpipedWikilink,\n\t\t\tunpipedWikilink\n\t\t] );\n\n\t\tconst openWikilink = makeStringParser( '[[' );\n\t\tconst closeWikilink = makeStringParser( ']]' );\n\t\tfunction wikilink() {\n\t\t\tconst parsedResult = sequence( [\n\t\t\t\topenWikilink,\n\t\t\t\twikilinkContents,\n\t\t\t\tcloseWikilink\n\t\t\t] );\n\t\t\treturn parsedResult === null ? null : [ 'WIKILINK', ...parsedResult[ 1 ] ];\n\t\t}\n\n\t\t// TODO: Support data- if appropriate\n\t\tconst doubleQuote = makeStringParser( '\"' );\n\t\tconst htmlDoubleQuoteAttributeValue = makeRegexParser( /^[^\"]*/ );\n\t\tfunction doubleQuotedHtmlAttributeValue() {\n\t\t\tconst parsedResult = sequence( [\n\t\t\t\tdoubleQuote,\n\t\t\t\thtmlDoubleQuoteAttributeValue,\n\t\t\t\tdoubleQuote\n\t\t\t] );\n\t\t\treturn parsedResult === null ? null : parsedResult[ 1 ];\n\t\t}\n\n\t\tconst singleQuote = makeStringParser( '\\'' );\n\t\tconst htmlSingleQuoteAttributeValue = makeRegexParser( /^[^']*/ );\n\t\tfunction singleQuotedHtmlAttributeValue() {\n\t\t\tconst parsedResult = sequence( [\n\t\t\t\tsingleQuote,\n\t\t\t\thtmlSingleQuoteAttributeValue,\n\t\t\t\tsingleQuote\n\t\t\t] );\n\t\t\treturn parsedResult === null ? null : parsedResult[ 1 ];\n\t\t}\n\n\t\tconst htmlAttributeEquals = makeRegexParser( /^\\s*=\\s*/ );\n\t\tfunction htmlAttribute() {\n\t\t\tconst parsedResult = sequence( [\n\t\t\t\twhitespace,\n\t\t\t\tasciiAlphabetLiteral,\n\t\t\t\thtmlAttributeEquals,\n\t\t\t\tchoice( [\n\t\t\t\t\tdoubleQuotedHtmlAttributeValue,\n\t\t\t\t\tsingleQuotedHtmlAttributeValue\n\t\t\t\t] )\n\t\t\t] );\n\t\t\treturn parsedResult === null ? null : [ parsedResult[ 1 ], parsedResult[ 3 ] ];\n\t\t}\n\n\t\t/**\n\t\t * Checks if HTML is allowed\n\t\t *\n\t\t * @param {string} startTagName HTML start tag name\n\t\t * @param {string} endTagName HTML start tag name\n\t\t * @param {Object} attributes array of consecutive key value pairs,\n\t\t *  with index 2 * n being a name and 2 * n + 1 the associated value\n\t\t * @return {boolean} true if this is HTML is allowed, false otherwise\n\t\t * @ignore\n\t\t */\n\t\tfunction isAllowedHtml( startTagName, endTagName, attributes ) {\n\t\t\tstartTagName = startTagName.toLowerCase();\n\t\t\tendTagName = endTagName.toLowerCase();\n\t\t\tif ( startTagName !== endTagName || !settings.allowedHtmlElements.includes( startTagName ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst badStyle = /[\\000-\\010\\013\\016-\\037\\177]|expression|filter\\s*:|accelerator\\s*:|-o-link\\s*:|-o-link-source\\s*:|-o-replace\\s*:|url\\s*\\(|image\\s*\\(|image-set\\s*\\(/i;\n\n\t\t\tlet attributeName;\n\t\t\tfor ( let i = 0, len = attributes.length; i < len; i += 2 ) {\n\t\t\t\tattributeName = attributes[ i ];\n\t\t\t\tif ( !settings.allowedHtmlCommonAttributes.includes( attributeName ) &&\n\t\t\t\t\t!( settings.allowedHtmlAttributesByElement[ startTagName ] || [] ).includes( attributeName ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif ( attributeName === 'style' && attributes[ i + 1 ].search( badStyle ) !== -1 ) {\n\t\t\t\t\tmw.log( 'HTML tag not parsed due to dangerous style attribute' );\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\n\t\tfunction htmlAttributes() {\n\t\t\tconst parsedResult = nOrMore( 0, htmlAttribute )();\n\t\t\t// Un-nest attributes array due to structure of jQueryMsg operations (see emit).\n\t\t\treturn [ 'HTMLATTRIBUTES' ].concat( ...parsedResult );\n\t\t}\n\n\t\tconst openHtmlStartTag = makeStringParser( '<' );\n\t\tconst optionalForwardSlash = makeRegexParser( /^\\/?/ );\n\t\tconst openHtmlEndTag = makeStringParser( '</' );\n\t\tconst closeHtmlTag = makeRegexParser( /^\\s*>/ );\n\t\t// Subset of allowed HTML markup.\n\t\t// Most elements and many attributes allowed on the server are not supported yet.\n\t\tfunction html() {\n\t\t\t// Break into three sequence calls.  That should allow accurate reconstruction of the original HTML, and requiring an exact tag name match.\n\t\t\t// 1. open through closeHtmlTag\n\t\t\t// 2. expression\n\t\t\t// 3. openHtmlEnd through close\n\t\t\t// This will allow recording the positions to reconstruct if HTML is to be treated as text.\n\n\t\t\tconst startOpenTagPos = pos;\n\t\t\tconst parsedOpenTagResult = sequence( [\n\t\t\t\topenHtmlStartTag,\n\t\t\t\tasciiAlphabetLiteral,\n\t\t\t\thtmlAttributes,\n\t\t\t\toptionalForwardSlash,\n\t\t\t\tcloseHtmlTag\n\t\t\t] );\n\n\t\t\tif ( parsedOpenTagResult === null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst endOpenTagPos = pos;\n\t\t\tconst startTagName = parsedOpenTagResult[ 1 ];\n\n\t\t\tconst parsedHtmlContents = nOrMore( 0, expression )();\n\n\t\t\tconst startCloseTagPos = pos;\n\t\t\tconst parsedCloseTagResult = sequence( [\n\t\t\t\topenHtmlEndTag,\n\t\t\t\tasciiAlphabetLiteral,\n\t\t\t\tcloseHtmlTag\n\t\t\t] );\n\n\t\t\tif ( parsedCloseTagResult === null ) {\n\t\t\t\t// Closing tag failed.  Return the start tag and contents.\n\t\t\t\treturn [ 'CONCAT', input.slice( startOpenTagPos, endOpenTagPos ),\n\t\t\t\t\t...parsedHtmlContents ];\n\t\t\t}\n\n\t\t\tconst endCloseTagPos = pos;\n\t\t\tconst endTagName = parsedCloseTagResult[ 1 ];\n\t\t\tconst wrappedAttributes = parsedOpenTagResult[ 2 ];\n\t\t\tconst attributes = wrappedAttributes.slice( 1 );\n\t\t\tif ( isAllowedHtml( startTagName, endTagName, attributes ) ) {\n\t\t\t\treturn [ 'HTMLELEMENT', startTagName, wrappedAttributes,\n\t\t\t\t\t...parsedHtmlContents ];\n\t\t\t}\n\t\t\t// HTML is not allowed, so contents will remain how\n\t\t\t// it was, while HTML markup at this level will be\n\t\t\t// treated as text\n\t\t\t// E.g. assuming script tags are not allowed:\n\t\t\t//\n\t\t\t// <script>[[Foo|bar]]</script>\n\t\t\t//\n\t\t\t// results in '&lt;script&gt;' and '&lt;/script&gt;'\n\t\t\t// (not treated as an HTML tag), surrounding a fully\n\t\t\t// parsed HTML link.\n\t\t\t//\n\t\t\t// Concatenate everything from the tag, flattening the contents.\n\t\t\treturn [ 'CONCAT', input.slice( startOpenTagPos, endOpenTagPos ),\n\t\t\t\t...parsedHtmlContents, input.slice( startCloseTagPos, endCloseTagPos ) ];\n\t\t}\n\n\t\t// <nowiki>...</nowiki> tag. The tags are stripped and the contents are returned unparsed.\n\t\tfunction nowiki() {\n\t\t\tconst parsedResult = sequence( [\n\t\t\t\tmakeStringParser( '<nowiki>' ),\n\t\t\t\t// We use a greedy non-backtracking parser, so we must ensure here that we don't take too much\n\t\t\t\tmakeRegexParser( /^.*?(?=<\\/nowiki>)/ ),\n\t\t\t\tmakeStringParser( '</nowiki>' )\n\t\t\t] );\n\t\t\treturn parsedResult === null ? null : [ 'CONCAT', ...parsedResult[ 1 ] ];\n\t\t}\n\n\t\tnonWhitespaceExpression = choice( [\n\t\t\ttemplate,\n\t\t\twikilink,\n\t\t\textlink,\n\t\t\treplacement,\n\t\t\tliteralWithoutSpace\n\t\t] );\n\t\tparamExpression = choice( [\n\t\t\ttemplate,\n\t\t\twikilink,\n\t\t\textlink,\n\t\t\treplacement,\n\t\t\tliteralWithoutBar\n\t\t] );\n\n\t\texpression = choice( [\n\t\t\ttemplate,\n\t\t\twikilink,\n\t\t\textlink,\n\t\t\treplacement,\n\t\t\tnowiki,\n\t\t\thtml,\n\t\t\tliteral\n\t\t] );\n\n\t\tconst regularLiteralWithSquareBrackets = makeRegexParser( /^[^{}$\\\\]/ );\n\t\tfunction curlyBraceTransformExpressionLiteral() {\n\t\t\tconst result = nOrMore( 1, regularLiteralWithSquareBrackets )();\n\t\t\treturn result === null ? null : result.join( '' );\n\t\t}\n\t\t// Used when only {{-transformation is wanted, for 'text'\n\t\t// or 'escaped' formats\n\t\tconst curlyBraceTransformExpression = choice( [\n\t\t\ttemplate,\n\t\t\treplacement,\n\t\t\tcurlyBraceTransformExpressionLiteral\n\t\t] );\n\n\t\t/**\n\t\t * Starts the parse\n\t\t *\n\t\t * @param {Function} rootExpression Root parse function\n\t\t * @return {Array|null}\n\t\t * @ignore\n\t\t */\n\t\tfunction start( rootExpression ) {\n\t\t\tconst result = nOrMore( 0, rootExpression )();\n\t\t\tif ( result === null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn [ 'CONCAT', ...result ];\n\t\t}\n\t\t// everything above this point is supposed to be stateless/static, but\n\t\t// I am deferring the work of turning it into prototypes & objects. It's quite fast enough\n\t\t// finally let's do some actual work...\n\n\t\tconst res = start( this.settings.onlyCurlyBraceTransform ? curlyBraceTransformExpression : expression );\n\n\t\t/*\n\t\t * For success, the p must have gotten to the end of the input\n\t\t * and returned a non-null.\n\t\t * n.b. This is part of language infrastructure, so we do not throw an internationalizable message.\n\t\t */\n\t\tif ( res === null || pos !== input.length ) {\n\t\t\tthrow new Error( 'Parse error at position ' + pos.toString() + ' in input: ' + input );\n\t\t}\n\t\treturn res;\n\t}\n\n};\n\n/**\n * Class that primarily exists to emit HTML from parser ASTs.\n *\n * @private\n * @class\n * @param {mw.language} language\n * @param {Object.<string,string>} [magic]\n */\nfunction HtmlEmitter( language, magic ) {\n\tthis.language = language;\n\tfor ( const key in ( magic || {} ) ) {\n\t\tconst val = magic[ key ];\n\t\tthis[ key.toLowerCase() ] = function () {\n\t\t\treturn val;\n\t\t};\n\t}\n\n\t/**\n\t * (We put this method definition here, and not in prototype, to make sure it's not overwritten by any magic.)\n\t * Walk entire node structure, applying replacements and template functions when appropriate\n\t *\n\t * @param {any} node Abstract syntax tree (top node or subnode)\n\t * @param {Array} replacements for $1, $2, ... $n\n\t * @return {any} single-string node or array of nodes suitable for jQuery appending\n\t */\n\tthis.emit = ( node, replacements ) => {\n\t\tswitch ( typeof node ) {\n\t\t\tcase 'string':\n\t\t\tcase 'number':\n\t\t\t\treturn node;\n\n\t\t\t// typeof returns object for arrays\n\t\t\tcase 'object': {\n\t\t\t\t// node is an array of nodes\n\t\t\t\t// eslint-disable-next-line no-jquery/no-map-util\n\t\t\t\tconst subnodes = $.map( node.slice( 1 ), ( n ) => this.emit( n, replacements ) );\n\t\t\t\tconst operation = node[ 0 ].toLowerCase();\n\t\t\t\tif ( typeof this[ operation ] === 'function' ) {\n\t\t\t\t\treturn this[ operation ]( subnodes, replacements );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error( 'Unknown operation \"' + operation + '\"' );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase 'undefined':\n\t\t\t\t// Parsing the empty string (as an entire expression, or as a paramExpression in a template) results in undefined\n\t\t\t\t// Perhaps a more clever parser can detect this, and return the empty string? Or is that useful information?\n\t\t\t\t// The logical thing is probably to return the empty string here when we encounter undefined.\n\t\t\t\treturn '';\n\n\t\t\tdefault:\n\t\t\t\tthrow new Error( 'Unexpected type in AST: ' + typeof node );\n\t\t}\n\t};\n}\n\n// BIDI utility function, copied from jquery.i18n.emitter.bidi.js\n//\n// Matches the first strong directionality codepoint:\n// - in group 1 if it is LTR\n// - in group 2 if it is RTL\n// Does not match if there is no strong directionality codepoint.\n//\n// Generated by UnicodeJS (see tools/strongDir) from the UCD; see\n// https://gerrit.wikimedia.org/g/unicodejs .\n// eslint-disable-next-line no-misleading-character-class\nconst strongDirRegExp = new RegExp(\n\t'(?:' +\n\t\t'(' +\n\t\t\t'[\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02b8\\u02bb-\\u02c1\\u02d0\\u02d1\\u02e0-\\u02e4\\u02ee\\u0370-\\u0373\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0482\\u048a-\\u052f\\u0531-\\u0556\\u0559-\\u055f\\u0561-\\u0587\\u0589\\u0903-\\u0939\\u093b\\u093d-\\u0940\\u0949-\\u094c\\u094e-\\u0950\\u0958-\\u0961\\u0964-\\u0980\\u0982\\u0983\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd-\\u09c0\\u09c7\\u09c8\\u09cb\\u09cc\\u09ce\\u09d7\\u09dc\\u09dd\\u09df-\\u09e1\\u09e6-\\u09f1\\u09f4-\\u09fa\\u0a03\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a3e-\\u0a40\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a6f\\u0a72-\\u0a74\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd-\\u0ac0\\u0ac9\\u0acb\\u0acc\\u0ad0\\u0ae0\\u0ae1\\u0ae6-\\u0af0\\u0af9\\u0b02\\u0b03\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b3e\\u0b40\\u0b47\\u0b48\\u0b4b\\u0b4c\\u0b57\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b66-\\u0b77\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe\\u0bbf\\u0bc1\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcc\\u0bd0\\u0bd7\\u0be6-\\u0bf2\\u0c01-\\u0c03\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c41-\\u0c44\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c66-\\u0c6f\\u0c7f\\u0c82\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd-\\u0cc4\\u0cc6-\\u0cc8\\u0cca\\u0ccb\\u0cd5\\u0cd6\\u0cde\\u0ce0\\u0ce1\\u0ce6-\\u0cef\\u0cf1\\u0cf2\\u0d02\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d-\\u0d40\\u0d46-\\u0d48\\u0d4a-\\u0d4c\\u0d4e\\u0d57\\u0d5f-\\u0d61\\u0d66-\\u0d75\\u0d79-\\u0d7f\\u0d82\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dcf-\\u0dd1\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df4\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e4f-\\u0e5b\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00-\\u0f17\\u0f1a-\\u0f34\\u0f36\\u0f38\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f7f\\u0f85\\u0f88-\\u0f8c\\u0fbe-\\u0fc5\\u0fc7-\\u0fcc\\u0fce-\\u0fda\\u1000-\\u102c\\u1031\\u1038\\u103b\\u103c\\u103f-\\u1057\\u105a-\\u105d\\u1061-\\u1070\\u1075-\\u1081\\u1083\\u1084\\u1087-\\u108c\\u108e-\\u109c\\u109e-\\u10c5\\u10c7\\u10cd\\u10d0-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1360-\\u137c\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u167f\\u1681-\\u169a\\u16a0-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1735\\u1736\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17b6\\u17be-\\u17c5\\u17c7\\u17c8\\u17d4-\\u17da\\u17dc\\u17e0-\\u17e9\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1923-\\u1926\\u1929-\\u192b\\u1930\\u1931\\u1933-\\u1938\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a16\\u1a19\\u1a1a\\u1a1e-\\u1a55\\u1a57\\u1a61\\u1a63\\u1a64\\u1a6d-\\u1a72\\u1a80-\\u1a89\\u1a90-\\u1a99\\u1aa0-\\u1aad\\u1b04-\\u1b33\\u1b35\\u1b3b\\u1b3d-\\u1b41\\u1b43-\\u1b4b\\u1b50-\\u1b6a\\u1b74-\\u1b7c\\u1b82-\\u1ba1\\u1ba6\\u1ba7\\u1baa\\u1bae-\\u1be5\\u1be7\\u1bea-\\u1bec\\u1bee\\u1bf2\\u1bf3\\u1bfc-\\u1c2b\\u1c34\\u1c35\\u1c3b-\\u1c49\\u1c4d-\\u1c7f\\u1cc0-\\u1cc7\\u1cd3\\u1ce1\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u200e\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u214f\\u2160-\\u2188\\u2336-\\u237a\\u2395\\u249c-\\u24e9\\u26ac\\u2800-\\u28ff\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d70\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u302e\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u3190-\\u31ba\\u31f0-\\u321c\\u3220-\\u324f\\u3260-\\u327b\\u327f-\\u32b0\\u32c0-\\u32cb\\u32d0-\\u32fe\\u3300-\\u3376\\u337b-\\u33dd\\u33e0-\\u33fe\\u3400-\\u4db5\\u4e00-\\u9fd5\\ua000-\\ua48c\\ua4d0-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66e\\ua680-\\ua69d\\ua6a0-\\ua6ef\\ua6f2-\\ua6f7\\ua722-\\ua787\\ua789-\\ua7ad\\ua7b0-\\ua7b7\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua824\\ua827\\ua830-\\ua837\\ua840-\\ua873\\ua880-\\ua8c3\\ua8ce-\\ua8d9\\ua8f2-\\ua8fd\\ua900-\\ua925\\ua92e-\\ua946\\ua952\\ua953\\ua95f-\\ua97c\\ua983-\\ua9b2\\ua9b4\\ua9b5\\ua9ba\\ua9bb\\ua9bd-\\ua9cd\\ua9cf-\\ua9d9\\ua9de-\\ua9e4\\ua9e6-\\ua9fe\\uaa00-\\uaa28\\uaa2f\\uaa30\\uaa33\\uaa34\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa4d\\uaa50-\\uaa59\\uaa5c-\\uaa7b\\uaa7d-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaaeb\\uaaee-\\uaaf5\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab65\\uab70-\\uabe4\\uabe6\\uabe7\\uabe9-\\uabec\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\ue000-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b]|\\ud800[\\udc0d-\\udc26]|\\ud800[\\udc28-\\udc3a]|\\ud800\\udc3c|\\ud800\\udc3d|\\ud800[\\udc3f-\\udc4d]|\\ud800[\\udc50-\\udc5d]|\\ud800[\\udc80-\\udcfa]|\\ud800\\udd00|\\ud800\\udd02|\\ud800[\\udd07-\\udd33]|\\ud800[\\udd37-\\udd3f]|\\ud800[\\uddd0-\\uddfc]|\\ud800[\\ude80-\\ude9c]|\\ud800[\\udea0-\\uded0]|\\ud800[\\udf00-\\udf23]|\\ud800[\\udf30-\\udf4a]|\\ud800[\\udf50-\\udf75]|\\ud800[\\udf80-\\udf9d]|\\ud800[\\udf9f-\\udfc3]|\\ud800[\\udfc8-\\udfd5]|\\ud801[\\udc00-\\udc9d]|\\ud801[\\udca0-\\udca9]|\\ud801[\\udd00-\\udd27]|\\ud801[\\udd30-\\udd63]|\\ud801\\udd6f|\\ud801[\\ude00-\\udf36]|\\ud801[\\udf40-\\udf55]|\\ud801[\\udf60-\\udf67]|\\ud804\\udc00|\\ud804[\\udc02-\\udc37]|\\ud804[\\udc47-\\udc4d]|\\ud804[\\udc66-\\udc6f]|\\ud804[\\udc82-\\udcb2]|\\ud804\\udcb7|\\ud804\\udcb8|\\ud804[\\udcbb-\\udcc1]|\\ud804[\\udcd0-\\udce8]|\\ud804[\\udcf0-\\udcf9]|\\ud804[\\udd03-\\udd26]|\\ud804\\udd2c|\\ud804[\\udd36-\\udd43]|\\ud804[\\udd50-\\udd72]|\\ud804[\\udd74-\\udd76]|\\ud804[\\udd82-\\uddb5]|\\ud804[\\uddbf-\\uddc9]|\\ud804\\uddcd|\\ud804[\\uddd0-\\udddf]|\\ud804[\\udde1-\\uddf4]|\\ud804[\\ude00-\\ude11]|\\ud804[\\ude13-\\ude2e]|\\ud804\\ude32|\\ud804\\ude33|\\ud804\\ude35|\\ud804[\\ude38-\\ude3d]|\\ud804[\\ude80-\\ude86]|\\ud804\\ude88|\\ud804[\\ude8a-\\ude8d]|\\ud804[\\ude8f-\\ude9d]|\\ud804[\\ude9f-\\udea9]|\\ud804[\\udeb0-\\udede]|\\ud804[\\udee0-\\udee2]|\\ud804[\\udef0-\\udef9]|\\ud804\\udf02|\\ud804\\udf03|\\ud804[\\udf05-\\udf0c]|\\ud804\\udf0f|\\ud804\\udf10|\\ud804[\\udf13-\\udf28]|\\ud804[\\udf2a-\\udf30]|\\ud804\\udf32|\\ud804\\udf33|\\ud804[\\udf35-\\udf39]|\\ud804[\\udf3d-\\udf3f]|\\ud804[\\udf41-\\udf44]|\\ud804\\udf47|\\ud804\\udf48|\\ud804[\\udf4b-\\udf4d]|\\ud804\\udf50|\\ud804\\udf57|\\ud804[\\udf5d-\\udf63]|\\ud805[\\udc80-\\udcb2]|\\ud805\\udcb9|\\ud805[\\udcbb-\\udcbe]|\\ud805\\udcc1|\\ud805[\\udcc4-\\udcc7]|\\ud805[\\udcd0-\\udcd9]|\\ud805[\\udd80-\\uddb1]|\\ud805[\\uddb8-\\uddbb]|\\ud805\\uddbe|\\ud805[\\uddc1-\\udddb]|\\ud805[\\ude00-\\ude32]|\\ud805\\ude3b|\\ud805\\ude3c|\\ud805\\ude3e|\\ud805[\\ude41-\\ude44]|\\ud805[\\ude50-\\ude59]|\\ud805[\\ude80-\\udeaa]|\\ud805\\udeac|\\ud805\\udeae|\\ud805\\udeaf|\\ud805\\udeb6|\\ud805[\\udec0-\\udec9]|\\ud805[\\udf00-\\udf19]|\\ud805\\udf20|\\ud805\\udf21|\\ud805\\udf26|\\ud805[\\udf30-\\udf3f]|\\ud806[\\udca0-\\udcf2]|\\ud806\\udcff|\\ud806[\\udec0-\\udef8]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e]|\\ud809[\\udc70-\\udc74]|\\ud809[\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38]|\\ud81a[\\ude40-\\ude5e]|\\ud81a[\\ude60-\\ude69]|\\ud81a\\ude6e|\\ud81a\\ude6f|\\ud81a[\\uded0-\\udeed]|\\ud81a\\udef5|\\ud81a[\\udf00-\\udf2f]|\\ud81a[\\udf37-\\udf45]|\\ud81a[\\udf50-\\udf59]|\\ud81a[\\udf5b-\\udf61]|\\ud81a[\\udf63-\\udf77]|\\ud81a[\\udf7d-\\udf8f]|\\ud81b[\\udf00-\\udf44]|\\ud81b[\\udf50-\\udf7e]|\\ud81b[\\udf93-\\udf9f]|\\ud82c\\udc00|\\ud82c\\udc01|\\ud82f[\\udc00-\\udc6a]|\\ud82f[\\udc70-\\udc7c]|\\ud82f[\\udc80-\\udc88]|\\ud82f[\\udc90-\\udc99]|\\ud82f\\udc9c|\\ud82f\\udc9f|\\ud834[\\udc00-\\udcf5]|\\ud834[\\udd00-\\udd26]|\\ud834[\\udd29-\\udd66]|\\ud834[\\udd6a-\\udd72]|\\ud834\\udd83|\\ud834\\udd84|\\ud834[\\udd8c-\\udda9]|\\ud834[\\uddae-\\udde8]|\\ud834[\\udf60-\\udf71]|\\ud835[\\udc00-\\udc54]|\\ud835[\\udc56-\\udc9c]|\\ud835\\udc9e|\\ud835\\udc9f|\\ud835\\udca2|\\ud835\\udca5|\\ud835\\udca6|\\ud835[\\udca9-\\udcac]|\\ud835[\\udcae-\\udcb9]|\\ud835\\udcbb|\\ud835[\\udcbd-\\udcc3]|\\ud835[\\udcc5-\\udd05]|\\ud835[\\udd07-\\udd0a]|\\ud835[\\udd0d-\\udd14]|\\ud835[\\udd16-\\udd1c]|\\ud835[\\udd1e-\\udd39]|\\ud835[\\udd3b-\\udd3e]|\\ud835[\\udd40-\\udd44]|\\ud835\\udd46|\\ud835[\\udd4a-\\udd50]|\\ud835[\\udd52-\\udea5]|\\ud835[\\udea8-\\udeda]|\\ud835[\\udedc-\\udf14]|\\ud835[\\udf16-\\udf4e]|\\ud835[\\udf50-\\udf88]|\\ud835[\\udf8a-\\udfc2]|\\ud835[\\udfc4-\\udfcb]|\\ud836[\\udc00-\\uddff]|\\ud836[\\ude37-\\ude3a]|\\ud836[\\ude6d-\\ude74]|\\ud836[\\ude76-\\ude83]|\\ud836[\\ude85-\\ude8b]|\\ud83c[\\udd10-\\udd2e]|\\ud83c[\\udd30-\\udd69]|\\ud83c[\\udd70-\\udd9a]|\\ud83c[\\udde6-\\ude02]|\\ud83c[\\ude10-\\ude3a]|\\ud83c[\\ude40-\\ude48]|\\ud83c\\ude50|\\ud83c\\ude51|[\\ud840-\\ud868][\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6]|\\ud869[\\udf00-\\udfff]|[\\ud86a-\\ud86c][\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34]|\\ud86d[\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d]|\\ud86e[\\udc20-\\udfff]|[\\ud86f-\\ud872][\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1]|\\ud87e[\\udc00-\\ude1d]|[\\udb80-\\udbbe][\\udc00-\\udfff]|\\udbbf[\\udc00-\\udffd]|[\\udbc0-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udffd]' +\n\t\t')|(' +\n\t\t\t'[\\u0590\\u05be\\u05c0\\u05c3\\u05c6\\u05c8-\\u05ff\\u07c0-\\u07ea\\u07f4\\u07f5\\u07fa-\\u0815\\u081a\\u0824\\u0828\\u082e-\\u0858\\u085c-\\u089f\\u200f\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb4f\\u0608\\u060b\\u060d\\u061b-\\u064a\\u066d-\\u066f\\u0671-\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u0710\\u0712-\\u072f\\u074b-\\u07a5\\u07b1-\\u07bf\\u08a0-\\u08e2\\ufb50-\\ufd3d\\ufd40-\\ufdcf\\ufdf0-\\ufdfc\\ufdfe\\ufdff\\ufe70-\\ufefe]|\\ud802[\\udc00-\\udd1e]|\\ud802[\\udd20-\\ude00]|\\ud802\\ude04|\\ud802[\\ude07-\\ude0b]|\\ud802[\\ude10-\\ude37]|\\ud802[\\ude3b-\\ude3e]|\\ud802[\\ude40-\\udee4]|\\ud802[\\udee7-\\udf38]|\\ud802[\\udf40-\\udfff]|\\ud803[\\udc00-\\ude5f]|\\ud803[\\ude7f-\\udfff]|\\ud83a[\\udc00-\\udccf]|\\ud83a[\\udcd7-\\udfff]|\\ud83b[\\udc00-\\uddff]|\\ud83b[\\udf00-\\udfff]|\\ud83b[\\udf00-\\udfff]|\\ud83b[\\udf00-\\udfff]|\\ud83b[\\udf00-\\udfff]|\\ud83b[\\udf00-\\udfff]|\\ud83b[\\udf00-\\udfff]|\\ud83b[\\udf00-\\udfff]|\\ud83b[\\udf00-\\udfff]|\\ud83b[\\udf00-\\udfff]|\\ud83b[\\udf00-\\udfff]|\\ud83b[\\udf00-\\udfff]|\\ud83b[\\udf00-\\udfff]|\\ud83b[\\udf00-\\udfff]|\\ud83b[\\ude00-\\udeef]|\\ud83b[\\udef2-\\udeff]' +\n\t\t')' +\n\t')'\n);\n\n/**\n * Gets directionality of the first strongly directional codepoint\n *\n * This is the rule the BIDI algorithm uses to determine the directionality of\n * paragraphs ( http://unicode.org/reports/tr9/#The_Paragraph_Level ) and\n * FSI isolates ( http://unicode.org/reports/tr9/#Explicit_Directional_Isolates ).\n *\n * TODO: Does not handle BIDI control characters inside the text.\n * TODO: Does not handle unallocated characters.\n *\n * @ignore\n * @param {string} text The text from which to extract initial directionality.\n * @return {string|null} Directionality (either 'ltr' or 'rtl')\n */\nfunction strongDirFromContent( text ) {\n\tconst m = text.match( strongDirRegExp );\n\tif ( !m ) {\n\t\treturn null;\n\t}\n\tif ( m[ 2 ] === undefined ) {\n\t\treturn 'ltr';\n\t}\n\treturn 'rtl';\n}\n\n// For everything in input that follows double-open-curly braces, there should be an equivalent parser\n// function. For instance {{PLURAL ... }} will be processed by 'plural'.\n// If you have 'magic words' then configure the parser to have them upon creation.\n//\n// An emitter method takes the parent node, the array of subnodes and the array of replacements (the values that $1, $2... should translate to).\n// Note: all such functions must be pure, with the exception of referring to other pure functions via this.language (convertPlural and so on)\nHtmlEmitter.prototype = {\n\t/**\n\t * Parsing has been applied depth-first we can assume that all nodes here are single nodes\n\t * Must return a single node to parents -- a jQuery with synthetic span\n\t * However, unwrap any other synthetic spans in our children and pass them upwards\n\t *\n\t * @param {any[]} nodes Some single nodes, some arrays of nodes\n\t * @return {jQuery}\n\t */\n\tconcat: function ( nodes ) {\n\t\tconst $span = $( '<span>' ).addClass( 'mediaWiki_htmlEmitter' );\n\t\t// Use Array.from since mixed parameter.\n\t\tArray.from( nodes ).forEach( ( node ) => {\n\t\t\t// Let jQuery append nodes, arrays of nodes and jQuery objects\n\t\t\t// other things (strings, numbers, ..) are appended as text nodes (not as HTML strings)\n\t\t\tappendWithoutParsing( $span, node );\n\t\t} );\n\t\treturn $span;\n\t},\n\n\t/**\n\t * Return escaped replacement of correct index, or string if unavailable.\n\t * Note that we expect the parsed parameter to be zero-based. i.e. $1 should have become [ 0 ].\n\t * if the specified parameter is not found return the same string\n\t * (e.g. \"$99\" -> parameter 98 -> not found -> return \"$99\" )\n\t *\n\t * If the replacement at the index is an object, then a special property\n\t * is is added to it (if it does not exist already).\n\t * If the special property was already set, then we try to clone (instead of append)\n\t * the replacement object. This allows allow using a jQuery or HTMLElement object\n\t * multiple times within a single interface message.\n\t *\n\t * TODO: Throw error if nodes.length > 1 ?\n\t *\n\t * @param {Array} nodes List of one element, integer, n >= 0\n\t * @param {Array} replacements List of at least n strings\n\t * @return {string|jQuery} replacement\n\t */\n\treplace: function ( nodes, replacements ) {\n\t\tconst index = parseInt( nodes[ 0 ], 10 );\n\n\t\tif ( index < replacements.length ) {\n\t\t\tif ( typeof replacements[ index ] === 'object' ) {\n\t\t\t\t// Only actually clone on second use\n\t\t\t\tif ( !replacements[ index ].mwJQueryMsgHasAlreadyBeenUsedAsAReplacement ) {\n\t\t\t\t\t// Add our special property to the foreign object\n\t\t\t\t\t// in the least invasive way\n\t\t\t\t\tObject.defineProperty(\n\t\t\t\t\t\treplacements[ index ],\n\t\t\t\t\t\t'mwJQueryMsgHasAlreadyBeenUsedAsAReplacement',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: true,\n\t\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\t\twritable: false\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\treturn replacements[ index ];\n\t\t\t\t}\n\t\t\t\tif ( typeof replacements[ index ].clone === 'function' ) {\n\t\t\t\t\t// if it is a jQuery object, use jQuery's clone method\n\t\t\t\t\treturn replacements[ index ].clone( true );\n\t\t\t\t}\n\t\t\t\tif ( typeof replacements[ index ].cloneNode === 'function' ) {\n\t\t\t\t\t// if it is a Node, then use the native cloning functionality\n\t\t\t\t\treturn replacements[ index ].cloneNode( true );\n\t\t\t\t}\n\t\t\t\treturn replacements[ index ];\n\t\t\t}\n\t\t\treturn replacements[ index ];\n\t\t} else {\n\t\t\t// index not found, fallback to displaying variable\n\t\t\treturn '$' + ( index + 1 );\n\t\t}\n\t},\n\n\t/**\n\t * Transform wiki-link\n\t *\n\t * TODO:\n\t * It only handles basic cases, either no pipe, or a pipe with an explicit\n\t * anchor.\n\t *\n\t * It does not attempt to handle features like the pipe trick.\n\t * However, the pipe trick should usually not be present in wikitext retrieved\n\t * from the server, since the replacement is done at save time.\n\t * It may, though, if the wikitext appears in extension-controlled content.\n\t *\n\t * @param {string[]} nodes\n\t * @return {jQuery}\n\t */\n\twikilink: function ( nodes ) {\n\t\tlet page = textify( nodes[ 0 ] );\n\t\t// Strip leading ':', which is used to suppress special behavior in wikitext links,\n\t\t// e.g. [[:Category:Foo]] or [[:File:Foo.jpg]]\n\t\tif ( page.startsWith( ':' ) ) {\n\t\t\tpage = page.slice( 1 );\n\t\t}\n\t\tconst title = new mw.Title( page );\n\n\t\tlet anchor;\n\t\tif ( nodes.length === 1 ) {\n\t\t\t// [[Some Page]] or [[Namespace:Some Page]]\n\t\t\tanchor = page;\n\t\t} else {\n\t\t\t// [[Some Page|anchor text]] or [[Namespace:Some Page|anchor]]\n\t\t\tanchor = nodes[ 1 ];\n\t\t}\n\n\t\tconst $el = $( '<a>' ).attr( {\n\t\t\ttitle: title.getPrefixedText() || null,\n\t\t\thref: title.getUrl()\n\t\t} );\n\t\treturn appendWithoutParsing( $el, anchor );\n\t},\n\n\t/**\n\t * Converts array of HTML element key value pairs to object\n\t *\n\t * @param {Array} nodes Array of consecutive key value pairs, with index 2 * n being a\n\t *  name and 2 * n + 1 the associated value\n\t * @return {Object} Object mapping attribute name to attribute value\n\t */\n\thtmlattributes: function ( nodes ) {\n\t\tconst mapping = {};\n\t\tfor ( let i = 0, len = nodes.length; i < len; i += 2 ) {\n\t\t\tmapping[ nodes[ i ] ] = decodePrimaryHtmlEntities( nodes[ i + 1 ] );\n\t\t}\n\t\treturn mapping;\n\t},\n\n\t/**\n\t * Handles an (already-validated) HTML element.\n\t *\n\t * @param {Array} nodes Nodes to process when creating element\n\t * @return {jQuery}\n\t */\n\thtmlelement: function ( nodes ) {\n\t\tconst tagName = nodes.shift();\n\t\tconst attributes = nodes.shift();\n\t\tconst contents = nodes;\n\t\tconst $element = $( document.createElement( tagName ) ).attr( attributes );\n\t\treturn appendWithoutParsing( $element, contents );\n\t},\n\n\t/**\n\t * Transform parsed structure into external link.\n\t *\n\t * The \"href\" can be:\n\t * - a jQuery object, treat it as \"enclosing\" the link text.\n\t * - a function, treat it as the click handler.\n\t * - a string, or our HtmlEmitter jQuery object, treat it as a URI after stringifying.\n\t *\n\t * TODO: throw an error if nodes.length > 2 ?\n\t *\n\t * @param {Array} nodes List of two elements, {jQuery|Function|String} and {string}\n\t * @return {jQuery}\n\t */\n\textlink: function ( nodes ) {\n\t\tconst arg = nodes[ 0 ],\n\t\t\tcontents = nodes[ 1 ];\n\t\tlet $el;\n\t\tif ( arg instanceof $ && !arg.hasClass( 'mediaWiki_htmlEmitter' ) ) {\n\t\t\t$el = arg;\n\t\t} else {\n\t\t\t$el = $( '<a>' );\n\t\t\tif ( typeof arg === 'function' ) {\n\t\t\t\t$el.attr( {\n\t\t\t\t\trole: 'button',\n\t\t\t\t\ttabindex: 0\n\t\t\t\t} ).on( 'click keypress', function ( e ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\te.type === 'click' ||\n\t\t\t\t\t\te.type === 'keypress' && e.which === 13\n\t\t\t\t\t) {\n\t\t\t\t\t\targ.call( this, e );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tconst target = textify( arg );\n\n\t\t\t\tif ( target.search( new RegExp( '^(/|' + mw.config.get( 'wgUrlProtocols' ) + ')' ) ) !== -1 ) {\n\t\t\t\t\t$el.attr( 'href', target );\n\t\t\t\t\tif ( target.search( '^' + mw.config.get( 'wgArticlePath' ).replace( /\\$1/g, '.+?' ) + '$' ) === -1 ) {\n\t\t\t\t\t\t$el.addClass( 'external' );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmw.log( 'External link in message had illegal target ' + target );\n\t\t\t\t\treturn appendWithoutParsing(\n\t\t\t\t\t\t$( '<span>' ),\n\t\t\t\t\t\t[ '[' + target + ' ' ].concat( contents ).concat( ']' )\n\t\t\t\t\t).contents();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn appendWithoutParsing( $el.empty(), contents );\n\t},\n\n\t/**\n\t * Transform formal syntax\n\t *\n\t * @param {string[]} nodes List of nodes\n\t * @return {string|jQuery} selected (in)formal form according to the current language\n\t */\n\t'#formal': function ( nodes ) {\n\t\tconst formalityIndex = this.language.getData(\n\t\t\tmw.config.get( 'wgUserLanguage' ),\n\t\t\t'formalityIndex'\n\t\t);\n\n\t\tif ( nodes.length === 0 ) {\n\t\t\treturn '';\n\t\t} else if ( nodes.length === 1 ) {\n\t\t\treturn nodes[ 0 ];\n\t\t}\n\n\t\treturn nodes[ formalityIndex ];\n\t},\n\n\t/**\n\t * Transform parsed structure into pluralization\n\t * n.b. The first node may be a non-integer (for instance, a string representing an Arabic number).\n\t * So convert it back with the current language's convertNumber.\n\t *\n\t * @param {Array} nodes List of nodes, [ {string|number}, {string}, {string} ... ]\n\t * @return {string|jQuery} selected pluralized form according to current language\n\t */\n\tplural: function ( nodes ) {\n\t\tconst explicitPluralForms = {};\n\n\t\tconst count = parseFloat( this.language.convertNumber( textify( nodes[ 0 ] ), true ) );\n\t\tlet forms = nodes.slice( 1 );\n\t\tfor ( let formIndex = 0; formIndex < forms.length; formIndex++ ) {\n\t\t\tconst form = forms[ formIndex ];\n\n\t\t\tif ( form instanceof $ && form.hasClass( 'mediaWiki_htmlEmitter' ) ) {\n\t\t\t\t// This is a nested node, may be an explicit plural form like 5=[$2 linktext]\n\t\t\t\tconst firstChild = form.contents().get( 0 );\n\t\t\t\tif ( firstChild && firstChild.nodeType === Node.TEXT_NODE ) {\n\t\t\t\t\tconst firstChildText = firstChild.textContent;\n\t\t\t\t\tif ( /^\\d+=/.test( firstChildText ) ) {\n\t\t\t\t\t\tconst explicitPluralFormNumber = parseInt( firstChildText.split( /=/ )[ 0 ], 10 );\n\t\t\t\t\t\t// Use the digit part as key and rest of first text node and\n\t\t\t\t\t\t// rest of child nodes as value.\n\t\t\t\t\t\tfirstChild.textContent = firstChildText.slice( firstChildText.indexOf( '=' ) + 1 );\n\t\t\t\t\t\texplicitPluralForms[ explicitPluralFormNumber ] = form;\n\t\t\t\t\t\tforms[ formIndex ] = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if ( /^\\d+=/.test( form ) ) {\n\t\t\t\t// Simple explicit plural forms like 12=a dozen\n\t\t\t\tconst explicitPluralFormNumber = parseInt( form.split( /=/ )[ 0 ], 10 );\n\t\t\t\texplicitPluralForms[ explicitPluralFormNumber ] = form.slice( form.indexOf( '=' ) + 1 );\n\t\t\t\tforms[ formIndex ] = undefined;\n\t\t\t}\n\t\t}\n\n\t\t// Remove explicit plural forms from the forms. They were set undefined in the above loop.\n\t\t// eslint-disable-next-line no-jquery/no-map-util\n\t\tforms = $.map( forms, ( f ) => f );\n\n\t\treturn this.language.convertPlural( count, forms, explicitPluralForms );\n\t},\n\n\t/**\n\t * Transform parsed structure according to gender.\n\t *\n\t * The first node must be one of:\n\t * - the mw.user object (or a compatible one)\n\t * - an empty string - indicating the current user, same effect as passing the mw.user object\n\t * - a gender string ('male', 'female' or 'unknown')\n\t *\n\t * @example\n\t * {{gender:[ mw.user object | '' | 'male' | 'female' | 'unknown' ] | masculine form | feminine form | neutral form}}\n\t *\n\t * @param {Array} nodes List of nodes, [ {string|mw.user}, {string}, {string}, {string} ]\n\t * @return {string|jQuery} Selected gender form according to current language\n\t */\n\tgender: function ( nodes ) {\n\t\tconst forms = nodes.slice( 1 );\n\n\t\tlet maybeUser = nodes[ 0 ];\n\t\tif ( maybeUser === '' ) {\n\t\t\tmaybeUser = mw.user;\n\t\t}\n\n\t\tlet gender;\n\t\t// If we are passed a mw.user-like object, check their gender.\n\t\t// Otherwise, assume the gender string itself was passed .\n\t\tif ( maybeUser && maybeUser.options instanceof mw.Map ) {\n\t\t\tgender = maybeUser.options.get( 'gender' );\n\t\t} else {\n\t\t\tgender = textify( maybeUser );\n\t\t}\n\n\t\treturn this.language.gender( gender, forms );\n\t},\n\n\t/**\n\t * Wraps argument with unicode control characters for directionality safety\n\t *\n\t * Identical to the implementation in jquery.i18n.emitter.bidi.js\n\t *\n\t * This solves the problem where directionality-neutral characters at the edge of\n\t * the argument string get interpreted with the wrong directionality from the\n\t * enclosing context, giving renderings that look corrupted like \"(Ben_(WMF\".\n\t *\n\t * The wrapping is LRE...PDF or RLE...PDF, depending on the detected\n\t * directionality of the argument string, using the BIDI algorithm's own \"First\n\t * strong directional codepoint\" rule. Essentially, this works round the fact that\n\t * there is no embedding equivalent of U+2068 FSI (isolation with heuristic\n\t * direction inference). The latter is cleaner but still not widely supported.\n\t *\n\t * @param {string[]} nodes The text nodes from which to take the first item.\n\t * @return {string} Wrapped String of content as needed.\n\t */\n\tbidi: function ( nodes ) {\n\t\tconst dir = strongDirFromContent( nodes[ 0 ] );\n\t\tif ( dir === 'ltr' ) {\n\t\t\t// Wrap in LEFT-TO-RIGHT EMBEDDING ... POP DIRECTIONAL FORMATTING\n\t\t\treturn '\\u202A' + nodes[ 0 ] + '\\u202C';\n\t\t}\n\t\tif ( dir === 'rtl' ) {\n\t\t\t// Wrap in RIGHT-TO-LEFT EMBEDDING ... POP DIRECTIONAL FORMATTING\n\t\t\treturn '\\u202B' + nodes[ 0 ] + '\\u202C';\n\t\t}\n\t\t// No strong directionality: do not wrap\n\t\treturn nodes[ 0 ];\n\t},\n\n\t/**\n\t * Transform parsed structure into grammar conversion.\n\t * Invoked by putting `{{grammar:form|word}}` in a message\n\t *\n\t * @param {Array} nodes List of nodes [{Grammar case eg: genitive}, {string word}]\n\t * @return {string|jQuery} selected grammatical form according to current language\n\t */\n\tgrammar: function ( nodes ) {\n\t\tconst form = nodes[ 0 ],\n\t\t\tword = nodes[ 1 ];\n\t\t// These could be jQuery objects (passed as message parameters),\n\t\t// in which case we can't transform them (like rawParams() in PHP).\n\t\tif ( typeof form === 'string' && typeof word === 'string' ) {\n\t\t\treturn this.language.convertGrammar( word, form );\n\t\t}\n\t\treturn word;\n\t},\n\n\t/**\n\t * Transform parsed structure into a int: (interface language) message include\n\t * Invoked by putting `{{int:othermessage}}` into a message\n\t *\n\t * TODO Syntax in the included message is not parsed, this seems like a bug?\n\t *\n\t * @param {Array} nodes List of nodes\n\t * @return {string} Other message\n\t */\n\tint: function ( nodes ) {\n\t\tconst msg = textify( nodes[ 0 ] );\n\t\treturn getMessageFunction()( mwString.lcFirst( msg ) );\n\t},\n\n\t/**\n\t * Get localized namespace name from canonical name or namespace number.\n\t * Invoked by putting `{{ns:foo}}` into a message\n\t *\n\t * @param {Array} nodes List of nodes\n\t * @return {string} Localized namespace name\n\t */\n\tns: function ( nodes ) {\n\t\tlet ns = textify( nodes[ 0 ] ).trim();\n\t\tif ( !/^\\d+$/.test( ns ) ) {\n\t\t\tns = mw.config.get( 'wgNamespaceIds' )[ ns.replace( / /g, '_' ).toLowerCase() ];\n\t\t}\n\t\tns = mw.config.get( 'wgFormattedNamespaces' )[ ns ];\n\t\treturn ns || '';\n\t},\n\n\t/**\n\t * Takes an unformatted number (arab, no group separators and . as decimal separator)\n\t * and outputs it in the localized digit script and formatted with decimal\n\t * separator, according to the current language.\n\t *\n\t * @param {Array} nodes List of nodes\n\t * @return {number|string|jQuery} Formatted number\n\t */\n\tformatnum: function ( nodes ) {\n\t\tconst isInteger = !!nodes[ 1 ] && nodes[ 1 ] === 'R',\n\t\t\tnumber = nodes[ 0 ];\n\n\t\t// These could be jQuery objects (passed as message parameters),\n\t\t// in which case we can't transform them (like rawParams() in PHP).\n\t\tif ( typeof number === 'string' || typeof number === 'number' ) {\n\t\t\treturn this.language.convertNumber( number, isInteger );\n\t\t}\n\t\treturn number;\n\t},\n\n\t/**\n\t * Takes a pagename and optional URL queries and returns a full URL to that\n\t * page (with URL queries).\n\t *\n\t * @param {Array} nodes List of nodes\n\t * @return {string} A URL string\n\t */\n\tfullurl: function ( nodes ) {\n\t\tconst targetPage = textify( nodes[ 0 ] ),\n\t\t\tqueryObject = {};\n\t\tlet queryStrings = nodes[ 1 ];\n\n\t\tif ( queryStrings ) {\n\t\t\tqueryStrings = textify( queryStrings );\n\t\t\tqueryStrings = new URLSearchParams( queryStrings );\n\t\t\tfor ( const [ key, value ] of queryStrings.entries() ) {\n\t\t\t\tqueryObject[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\treturn mw.config.get( 'wgServer' ) + util.getUrl( targetPage, queryObject );\n\t},\n\n\t/**\n\t * Lowercase text\n\t *\n\t * @param {Array} nodes List of nodes\n\t * @return {string} The given text, all in lowercase\n\t */\n\tlc: function ( nodes ) {\n\t\treturn textify( nodes[ 0 ] ).toLowerCase();\n\t},\n\n\t/**\n\t * Uppercase text\n\t *\n\t * @param {Array} nodes List of nodes\n\t * @return {string} The given text, all in uppercase\n\t */\n\tuc: function ( nodes ) {\n\t\treturn textify( nodes[ 0 ] ).toUpperCase();\n\t},\n\n\t/**\n\t * Lowercase first letter of input, leaving the rest unchanged\n\t *\n\t * @param {Array} nodes List of nodes\n\t * @return {string} The given text, with the first character in lowercase\n\t */\n\tlcfirst: function ( nodes ) {\n\t\tconst text = textify( nodes[ 0 ] );\n\t\treturn mwString.lcFirst( text );\n\t},\n\n\t/**\n\t * Uppercase first letter of input, leaving the rest unchanged\n\t *\n\t * @param {Array} nodes List of nodes\n\t * @return {string} The given text, with the first character in uppercase\n\t */\n\tucfirst: function ( nodes ) {\n\t\tconst text = textify( nodes[ 0 ] );\n\t\treturn mwString.ucFirst( text );\n\t}\n};\n\n/**\n * Provides a {@link jQuery} plugin that parses messages.\n *\n * @module mediawiki.jqueryMsg\n */\n/**\n * Parses the message in the message key, doing replacements optionally, and appends the nodes to\n * the current selector. Bindings to passed-in jquery elements are preserved. Functions become click handlers for [$1 linktext] links.\n *\n * To use this {@link jQuery} plugin, load the `mediawiki.jqueryMsg` module with {@link mw.loader}.\n *\n * @memberof module:mediawiki.jqueryMsg\n * @param {string} message key\n * @param {...string[]} arguments\n * @example\n * mw.loader.using('mediawiki.jqueryMsg' ).then(() => {\n *        var $userlink = $( '<a>' ).click( function () { alert( \"hello!!\" ) } );\n *        $( 'p#headline' ).msg( 'hello-user', $userlink );\n * } );\n *\n * // N.B. replacements are variadic arguments or an array in second parameter. In other words:\n * somefunction( a, b, c, d )\n * // is equivalent to\n * somefunction( a, [b, c, d] )\n *\n * // Note: We append to 'this', which in a jQuery plugin context will be the selected elements.\n */\n$.fn.msg = getPlugin();\n\n// Replace the default message parser with jqueryMsg\nconst oldParser = mw.Message.prototype.parser;\nmw.Message.prototype.parser = function ( format ) {\n\t// Fall back to mw.msg's simple parser where possible\n\tif (\n\t\t// Plain text output always uses the simple parser\n\t\tformat === 'plain' ||\n\t\t(\n\t\t\t// jqueryMsg parser is needed for messages containing wikitext\n\t\t\t!/\\{\\{|[<>[&]/.test( this.map.get( this.key ) ) &&\n\t\t\t// jqueryMsg parser is needed when jQuery objects or DOM nodes are passed in as parameters\n\t\t\t!this.parameters.some( ( param ) => param instanceof $ || ( param && param.nodeType !== undefined ) )\n\t\t)\n\t) {\n\t\treturn oldParser.call( this, format );\n\t}\n\n\tif ( !Object.prototype.hasOwnProperty.call( this.map, format ) ) {\n\t\tthis.map[ format ] = getMessageFunction( {\n\t\t\tmessages: this.map,\n\t\t\t// For format 'escaped', escaping part is handled by mediawiki.js\n\t\t\tformat: format\n\t\t} );\n\t}\n\treturn this.map[ format ]( this.key, this.parameters );\n};\n\n/**\n * Parse the message to DOM nodes, rather than HTML string like {@link mw.Message#parse}.\n *\n * This method is only available when jqueryMsg is loaded.\n *\n * @example\n * const msg = mw.message( 'key' );\n * mw.loader.using(`mediawiki.jqueryMsg`).then(() => {\n *   if ( msg.isParseable() ) {\n *     const $node = msg.parseDom();\n *     $node.appendTo('body');\n *   }\n * })\n *\n * @since 1.27\n * @method parseDom\n * @memberof mw.Message.prototype\n * @return {jQuery}\n */\nmw.Message.prototype.parseDom = ( function () {\n\tlet failableParserFn;\n\n\treturn function () {\n\t\tif ( !failableParserFn ) {\n\t\t\tfailableParserFn = getFailableParserFn();\n\t\t}\n\t\tconst $result = failableParserFn( [ this.key, this.parameters ] );\n\t\treturn $result.contents();\n\t};\n}() );\n\n/**\n * Check whether the message contains only syntax supported by jqueryMsg.\n *\n * This method is only available when jqueryMsg is loaded.\n *\n * @example\n * const msg = mw.message( 'key' );\n * mw.loader.using(`mediawiki.jqueryMsg`).then(() => {\n *   if ( msg.isParseable() ) {\n *     ...\n *   }\n * })\n *\n * @since 1.41\n * @method isParseable\n * @memberof mw.Message.prototype\n * @return {boolean}\n */\nmw.Message.prototype.isParseable = function () {\n\tconst parser = new Parser();\n\ttry {\n\t\tparser.parse( this.key, this.parameters );\n\t\treturn true;\n\t} catch ( e ) {\n\t\treturn false;\n\t}\n};\n\n/**\n * Can be deleted when MobileFrontend is updated.\n * https://phabricator.wikimedia.org/T354540\n *\n * @private\n */\nmw.jqueryMsg = {\n\tParser\n};\nmw.log.deprecate( mw, 'jqueryMsg', mw.jqueryMsg, 'mw.jqueryMsg is a @private library.' );\n// Expose for testing purposes only (not a stable API).\nmodule.exports = {\n\ttest: {\n\t\tgetMessageFunction,\n\t\tsetMessageFunction,\n\t\tgetParserDefaults,\n\t\tsetParserDefaults,\n\t\tParser\n\t}\n};\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.jqueryMsg/parserDefaults.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language.months/months.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'Months' is undefined.","line":44,"column":1,"nodeType":"Block","endLine":44,"endColumn":1}],"suppressedMessages":[{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":28,"column":10,"nodeType":"CallExpression","endLine":28,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/*\n * Transfer of month names from messages into mw.language.\n *\n * Loading this module also ensures the availability of appropriate messages via mw.msg.\n */\n( function () {\n\tconst\n\t\tmonthMessages = [\n\t\t\t'january', 'february', 'march', 'april',\n\t\t\t'may_long', 'june', 'july', 'august',\n\t\t\t'september', 'october', 'november', 'december'\n\t\t],\n\t\tmonthGenMessages = [\n\t\t\t'january-gen', 'february-gen', 'march-gen', 'april-gen',\n\t\t\t'may-gen', 'june-gen', 'july-gen', 'august-gen',\n\t\t\t'september-gen', 'october-gen', 'november-gen', 'december-gen'\n\t\t],\n\t\tmonthAbbrevMessages = [\n\t\t\t'jan', 'feb', 'mar', 'apr',\n\t\t\t'may', 'jun', 'jul', 'aug',\n\t\t\t'sep', 'oct', 'nov', 'dec'\n\t\t];\n\n\t// Function suitable for passing to Array.prototype.map\n\t// Can't use mw.msg directly because Array.prototype.map passes element index as second argument\n\tfunction mwMsgMapper( key ) {\n\t\t// eslint-disable-next-line mediawiki/msg-doc\n\t\treturn mw.msg( key );\n\t}\n\n\t/**\n\t * @typedef {Object} mw.language~Months\n\t * @property {Array} names Month names (in nominative case in languages which have the\n\t *   distinction), zero-indexed\n\t * @property {Array} genitive Month names in genitive case, zero-indexed\n\t * @property {Array} abbrev Three-letter-long abbreviated month names, zero-indexed\n\t * @property {Object} key Object with three keys like the above, containing zero-indexed arrays\n\t *   of message keys for appropriate messages which can be passed to mw.msg\n\t */\n\n\t/**\n\t * Information about month names in current UI language.\n\t *\n\t * @type {Months}\n\t */\n\tmw.language.months = {\n\t\tkeys: {\n\t\t\tnames: monthMessages,\n\t\t\tgenitive: monthGenMessages,\n\t\t\tabbrev: monthAbbrevMessages\n\t\t},\n\t\tnames: monthMessages.map( mwMsgMapper ),\n\t\tgenitive: monthGenMessages.map( mwMsgMapper ),\n\t\tabbrev: monthAbbrevMessages.map( mwMsgMapper )\n\t};\n\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language.names/names.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language.specialCharacters/specialCharacters.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language.specialCharacters/specialcharacters.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/languages/bs.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/languages/dsb.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/languages/fi.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/languages/ga.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/languages/hsb.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/languages/hu.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/languages/hy.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/languages/la.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/languages/os.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/languages/sl.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/mediawiki.language.fallback.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/mediawiki.language.init.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/mediawiki.language.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.language/mediawiki.language.numbers.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.libs.pluralruleparser/export.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.messagePoster/MessagePoster.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.messagePoster/WikitextMessagePoster.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.messagePoster/factory.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-curate/edittags.js","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'placeholder_text_multiple' is not in camel case.","line":15,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":15,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'no_results_text' is not in camel case.","line":16,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":16,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-curate/patrol.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-curate/rollback.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-ooui/action.delete.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-ooui/special.changecredentials.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-ooui/special.import.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-ooui/special.movePage.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-ooui/special.mute.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-ooui/special.pageLanguage.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-ooui/special.revisionDelete.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-ooui/special.undelete.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-ooui/special.undelete.loadMoreRevisions.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-pref/dblClickEdit.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.misc-authed-pref/rightClickEdit.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.notification.convertmessagebox.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: (require(\"mediawiki.notification.convertmessagebox\"))","line":13,"column":1,"nodeType":"Block","endLine":13,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * Exposes a method for converting a messagebox to a notification.\n *\n * @module mediawiki.notification.convertmessagebox\n */\n\n/**\n * Convert a messagebox to a notification.\n *\n * @example\n * const convertmessagebox = require( 'mediawiki.notification.convertmessagebox' );\n *\n * @method (require(\"mediawiki.notification.convertmessagebox\"))\n * @param {Object} [options] Options\n * @param {mw.Message} [options.msg] Message key (must be loaded already)\n */\nmodule.exports = function ( options ) {\n\tconst $successBox = $( '.mw-notify-success' ),\n\t\t$warningBox = $( '.mw-notify-warning' ),\n\t\t$errorBox = $( '.mw-notify-error' );\n\n\t// If there is a message box and javascript is enabled, use a slick notification instead!\n\tlet $msgBox, type;\n\tif ( $successBox.length ) {\n\t\t$msgBox = $successBox;\n\t\ttype = 'info';\n\t} else if ( $warningBox.length ) {\n\t\t$msgBox = $warningBox;\n\t\ttype = 'warn';\n\t} else if ( $errorBox.length ) {\n\t\t$msgBox = $errorBox;\n\t\ttype = 'error';\n\t} else {\n\t\treturn;\n\t}\n\n\tconst autoHide = $msgBox.attr( 'data-mw-autohide' ) === 'true';\n\n\t// If the msg param is given, use it, otherwise use the text of the successbox\n\tconst msg = options && options.msg || $msgBox.text();\n\t$msgBox.detach();\n\n\tlet notif = mw.notification.notify( msg, { autoHide: autoHide, type: type } );\n\tif ( !autoHide ) {\n\t\t// 'change' event not reliable!\n\t\t$( document ).one( 'keydown mousedown', () => {\n\t\t\tif ( notif ) {\n\t\t\t\tnotif.close();\n\t\t\t\tnotif = null;\n\t\t\t}\n\t\t} );\n\t}\n};\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.notification/notification.js","messages":[],"suppressedMessages":[{"ruleId":"mediawiki/class-doc","severity":2,"message":"All possible CSS classes should be documented. See https://w.wiki/PS2 for details.","line":40,"column":5,"nodeType":"CallExpression","endLine":40,"endColumn":67,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mediawiki/class-doc","severity":2,"message":"All possible CSS classes should be documented. See https://w.wiki/PS2 for details.","line":68,"column":4,"nodeType":"CallExpression","endLine":68,"endColumn":45,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-slide","severity":2,"message":"Prefer CSS transitions to .slideUp","line":262,"column":6,"nodeType":"CallExpression","endLine":264,"endColumn":9,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.page.gallery.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.page.gallery.slideshow.js","messages":[],"suppressedMessages":[{"ruleId":"no-new","severity":2,"message":"Do not use 'new' for side effects.","line":494,"column":4,"nodeType":"ExpressionStatement","messageId":"noNewStatement","endLine":494,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.page.image.pagination.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.page.media.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.page.preview.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'wikipage.tableOfContents'","line":416,"column":1,"nodeType":"Block","endLine":416,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-jquery/no-map-util","severity":2,"message":"Prefer Array#map to $.map","line":53,"column":16,"nodeType":"CallExpression","endLine":57,"endColumn":15,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mediawiki/class-doc","severity":2,"message":"All possible CSS classes should be documented. See https://w.wiki/PS2 for details.","line":300,"column":11,"nodeType":"CallExpression","endLine":301,"endColumn":65,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"( function () {\n\tconst api = new mw.Api();\n\tconst util = require( 'mediawiki.util' );\n\n\t/**\n\t * Show the edit summary.\n\t *\n\t * @private\n\t * @param {jQuery} $formNode\n\t * @param {Object} response\n\t */\n\tfunction showEditSummary( $formNode, response ) {\n\t\tconst $summaryPreview = $formNode.find( '.mw-summary-preview' ).empty();\n\t\tconst parse = response.parse;\n\n\t\tif ( !parse || !parse.parsedsummary ) {\n\t\t\treturn;\n\t\t}\n\n\t\t$summaryPreview.append(\n\t\t\tmw.message( 'summary-preview' ).parse(),\n\t\t\t' ',\n\t\t\t$( '<span>' ).addClass( 'comment' ).html( parenthesesWrap( parse.parsedsummary ) )\n\t\t);\n\t}\n\n\t/**\n\t * Wrap a string in parentheses.\n\t *\n\t * @private\n\t * @param {string} str\n\t * @return {string}\n\t */\n\tfunction parenthesesWrap( str ) {\n\t\tif ( str === '' ) {\n\t\t\treturn str;\n\t\t}\n\t\t// There is no equivalent to rawParams\n\t\treturn mw.message( 'parentheses' ).escaped()\n\t\t\t// Specify a function as the replacement,\n\t\t\t// so that \"$\" characters in str are not interpreted.\n\t\t\t.replace( '$1', () => str );\n\t}\n\n\t/**\n\t * Show status indicators.\n\t *\n\t * @private\n\t * @param {Array} indicators\n\t */\n\tfunction showIndicators( indicators ) {\n\t\t// eslint-disable-next-line no-jquery/no-map-util\n\t\tindicators = $.map( indicators, ( indicator, name ) => $( '<div>' )\n\t\t\t.addClass( 'mw-indicator' )\n\t\t\t.attr( 'id', mw.util.escapeIdForAttribute( 'mw-indicator-' + name ) )\n\t\t\t.html( indicator )\n\t\t\t.get( 0 ) );\n\t\tif ( indicators.length ) {\n\t\t\tmw.hook( 'wikipage.indicators' ).fire( $( indicators ) );\n\t\t}\n\n\t\t// Add whitespace between the <div>s because\n\t\t// they get displayed with display: inline-block\n\t\tconst newList = [];\n\t\tindicators.forEach( ( indicator ) => {\n\t\t\tnewList.push( indicator, document.createTextNode( '\\n' ) );\n\t\t} );\n\n\t\t$( '.mw-indicators' ).empty().append( newList );\n\t}\n\n\t/**\n\t * Show the templates used.\n\t *\n\t * The formatting here repeats what is done in includes/TemplatesOnThisPageFormatter.php\n\t *\n\t * @private\n\t * @param {Array} templates List of template titles.\n\t */\n\tfunction showTemplates( templates ) {\n\t\t// The .templatesUsed div can be empty, if no templates are in use.\n\t\t// In that case, we have to create the required structure.\n\t\tconst $parent = $( '.templatesUsed' );\n\n\t\t// Find or add the explanation text (the toggler for collapsing).\n\t\tlet $explanation = $parent.find( '.mw-templatesUsedExplanation p' );\n\t\tif ( $explanation.length === 0 ) {\n\t\t\t$explanation = $( '<p>' );\n\t\t\t$parent.append( $( '<div>' )\n\t\t\t\t.addClass( 'mw-templatesUsedExplanation' )\n\t\t\t\t.append( $explanation ) );\n\t\t}\n\n\t\t// Find or add the list. The makeCollapsible() method is called on this\n\t\t// in resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.js\n\t\tlet $list = $parent.find( 'ul' );\n\t\tif ( $list.length === 0 ) {\n\t\t\t$list = $( '<ul>' ).addClass( [ 'mw-editfooter-list', 'mw-collapsible', 'mw-made-collapsible' ] );\n\t\t\t$parent.append( $list );\n\t\t}\n\n\t\tif ( templates.length === 0 ) {\n\t\t\t$explanation.msg( 'templatesusedpreview', 0 );\n\t\t\t$list.empty();\n\t\t\treturn;\n\t\t}\n\n\t\t// Fetch info about all templates, batched because API is limited to 50 at a time.\n\t\t$parent.addClass( 'mw-preview-loading-elements-loading' );\n\t\tconst batchSize = 50;\n\t\tconst requests = [];\n\t\tfor ( let batch = 0; batch < templates.length; batch += batchSize ) {\n\t\t\t// Build a list of template names for this batch.\n\t\t\tconst titles = templates\n\t\t\t\t.slice( batch, batch + batchSize )\n\t\t\t\t.map( ( template ) => template.title );\n\t\t\trequests.push( api.post( {\n\t\t\t\taction: 'query',\n\t\t\t\tformat: 'json',\n\t\t\t\tformatversion: 2,\n\t\t\t\ttitles: titles,\n\t\t\t\tprop: 'info',\n\t\t\t\t// @todo Do we need inlinkcontext here?\n\t\t\t\tinprop: 'linkclasses|protection',\n\t\t\t\tintestactions: 'edit'\n\t\t\t} ) );\n\t\t}\n\t\t$.when( ...requests ).done( function () {\n\t\t\tconst templatesAllInfo = [];\n\t\t\t// For the first batch, empty the list in preparation for either adding new items or not needing to.\n\t\t\tfor ( let r = 0; r < arguments.length; r++ ) {\n\t\t\t\t// Response is either the whole argument, or the 0th element of it.\n\t\t\t\tconst response = arguments[ r ][ 0 ] || arguments[ r ];\n\t\t\t\tconst templatesInfo = ( response.query && response.query.pages ) || [];\n\t\t\t\ttemplatesInfo.forEach( ( ti ) => {\n\t\t\t\t\ttemplatesAllInfo.push( {\n\t\t\t\t\t\ttitle: mw.Title.newFromText( ti.title ),\n\t\t\t\t\t\tapiData: ti\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\t\t\t// Sort alphabetically.\n\t\t\ttemplatesAllInfo.sort( ( t1, t2 ) => {\n\t\t\t\t// Compare titles with the same rules of Title::compare() in PHP.\n\t\t\t\tif ( t1.title.getNamespaceId() !== t2.title.getNamespaceId() ) {\n\t\t\t\t\treturn t1.title.getNamespaceId() - t2.title.getNamespaceId();\n\t\t\t\t} else {\n\t\t\t\t\treturn t1.title.getMain() === t2.title.getMain() ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\tt1.title.getMain() < t2.title.getMain() ? -1 : 1;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Add new template list, and update the list header.\n\t\t\tconst $listNew = $( '<ul>' );\n\t\t\taddItemToTemplateListPromise( $listNew, templatesAllInfo, 0 )\n\t\t\t\t.then( () => {\n\t\t\t\t\t$list.html( $listNew.html() );\n\t\t\t\t} );\n\t\t\t$explanation.msg( 'templatesusedpreview', templatesAllInfo.length );\n\t\t} ).always( () => {\n\t\t\t$parent.removeClass( 'mw-preview-loading-elements-loading' );\n\t\t} );\n\t}\n\n\t/**\n\t * Recursive function to add a template link to the list of templates in use.\n\t * This is useful because addItemToTemplateList() might need to make extra API requests to fetch\n\t * messages, but we don't want to send parallel requests for these (because they're often the\n\t * for the same messages).\n\t *\n\t * @private\n\t * @param {jQuery} $list The `<ul>` to add the item to.\n\t * @param {Object} templatesInfo All templates' info, sorted by namespace and title.\n\t * @param {number} templateIndex The current item in templatesInfo (0-indexed).\n\t * @return {jQuery.Promise}\n\t */\n\tfunction addItemToTemplateListPromise( $list, templatesInfo, templateIndex ) {\n\t\treturn addItemToTemplateList( $list, templatesInfo[ templateIndex ] ).then( () => {\n\t\t\tif ( templatesInfo[ templateIndex + 1 ] !== undefined ) {\n\t\t\t\treturn addItemToTemplateListPromise( $list, templatesInfo, templateIndex + 1 );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Create list item with relevant links for the given template, and add it to the $list.\n\t *\n\t * @private\n\t * @param {jQuery} $list The `<ul>` to add the item to.\n\t * @param {Object} template Template info with which to construct the `<li>`.\n\t * @return {jQuery.Promise}\n\t */\n\tfunction addItemToTemplateList( $list, template ) {\n\t\tconst editable = template.apiData.ns >= 0;\n\t\tconst canEdit = editable && template.apiData.actions.edit !== undefined;\n\t\tconst linkClasses = template.apiData.linkclasses || [];\n\t\tif ( template.apiData.missing !== undefined && template.apiData.known === undefined ) {\n\t\t\tlinkClasses.push( 'new' );\n\t\t}\n\t\tconst $baseLink = $( '<a>' )\n\t\t\t// Additional CSS classes (e.g. link colors) used for links to this template.\n\t\t\t// The following classes might be used here:\n\t\t\t// * new\n\t\t\t// * mw-redirect\n\t\t\t// * any added by the GetLinkColours hook\n\t\t\t.addClass( linkClasses );\n\t\tconst $link = $baseLink.clone()\n\t\t\t.attr( 'href', template.title.getUrl() )\n\t\t\t.text( template.title.getPrefixedText() );\n\n\t\tif ( editable ) {\n\t\t\tconst $editLink = $baseLink.clone()\n\t\t\t\t.attr( 'href', template.title.getUrl( { action: 'edit' } ) )\n\t\t\t\t.append( mw.msg( canEdit ? 'editlink' : 'viewsourcelink' ) );\n\n\t\t\tconst wordSep = mw.message( 'word-separator' ).escaped();\n\t\t\treturn getRestrictionsText( template.apiData.protection || [] )\n\t\t\t\t.then( ( restrictionsList ) => {\n\t\t\t\t\t// restrictionsList is a comma-separated parentheses-wrapped localized list of restriction level names.\n\t\t\t\t\tconst editLinkParens = parenthesesWrap( $editLink[ 0 ].outerHTML );\n\t\t\t\t\tconst $li = $( '<li>' ).append( $link, wordSep, editLinkParens, wordSep, restrictionsList );\n\t\t\t\t\t$list.append( $li );\n\t\t\t\t} );\n\t\t} else {\n\t\t\t$list.append( $( '<li>' ).append( $link ) );\n\t\t\treturn $.Deferred().resolve( '' );\n\t\t}\n\t}\n\n\t/**\n\t * Get a localized string listing the restriction levels for a template.\n\t *\n\t * This should match the logic from TemplatesOnThisPageFormatter::getRestrictionsText().\n\t *\n\t * @private\n\t * @param {Array} restrictions Set of protection info objects from the inprop=protection API.\n\t * @return {jQuery.Promise}\n\t */\n\tfunction getRestrictionsText( restrictions ) {\n\t\tlet msg = '';\n\t\tif ( !restrictions ) {\n\t\t\treturn $.Deferred().resolve( msg );\n\t\t}\n\n\t\t// Record other restriction levels, in case it's protected for others.\n\t\tconst restrictionLevels = [];\n\t\trestrictions.forEach( ( r ) => {\n\t\t\tif ( r.type !== 'edit' ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( r.level === 'sysop' ) {\n\t\t\t\tmsg = mw.msg( 'template-protected' );\n\t\t\t} else if ( r.level === 'autoconfirmed' ) {\n\t\t\t\tmsg = mw.msg( 'template-semiprotected' );\n\t\t\t} else {\n\t\t\t\trestrictionLevels.push( r.level );\n\t\t\t}\n\t\t} );\n\n\t\t// If sysop or autoconfirmed, use that.\n\t\tif ( msg !== '' ) {\n\t\t\treturn $.Deferred().resolve( msg );\n\t\t}\n\n\t\t// Otherwise, if the edit restriction isn't one of the backwards-compatible ones,\n\t\t// use the (possibly custom) restriction-level-* messages.\n\t\tconst msgs = [];\n\t\trestrictionLevels.forEach( ( level ) => {\n\t\t\tmsgs.push( 'restriction-level-' + level );\n\t\t} );\n\t\tif ( msgs.length === 0 ) {\n\t\t\treturn $.Deferred().resolve( '' );\n\t\t}\n\n\t\t// Custom restriction levels don't have their messages loaded, so we have to do that.\n\t\treturn api.loadMessagesIfMissing( msgs ).then( () => {\n\t\t\tconst localizedMessages = msgs.map(\n\t\t\t\t// Messages that can be used here include:\n\t\t\t\t// * restriction-level-sysop\n\t\t\t\t// * restriction-level-autoconfirmed\n\t\t\t\t( m ) => mw.message( m ).parse()\n\t\t\t);\n\t\t\t// There's no commaList in JS, so just join with commas (doesn't handle the last item).\n\t\t\treturn parenthesesWrap( localizedMessages.join( mw.msg( 'comma-separator' ) ) );\n\t\t} );\n\t}\n\n\t/**\n\t * Show the language links (Vector-specific).\n\t * TODO: Doesn't work in vector-2022 (maybe it doesn't need to?)\n\t *\n\t * @private\n\t * @param {Array} langLinks\n\t */\n\tfunction showLanguageLinks( langLinks ) {\n\t\tconst newList = langLinks.map( ( langLink ) => {\n\t\t\tconst bcp47 = mw.language.bcp47( langLink.lang );\n\t\t\t// eslint-disable-next-line mediawiki/class-doc\n\t\t\treturn $( '<li>' )\n\t\t\t\t.addClass( 'interlanguage-link interwiki-' + langLink.lang )\n\t\t\t\t.append( $( '<a>' )\n\t\t\t\t\t.attr( {\n\t\t\t\t\t\thref: langLink.url,\n\t\t\t\t\t\ttitle: langLink.title + ' - ' + langLink.langname,\n\t\t\t\t\t\tlang: bcp47,\n\t\t\t\t\t\threflang: bcp47\n\t\t\t\t\t} )\n\t\t\t\t\t.text( langLink.autonym )\n\t\t\t\t);\n\t\t} );\n\t\tconst $list = $( '#p-lang ul' ),\n\t\t\t$parent = $list.parent();\n\t\t$list.detach().empty().append( newList ).prependTo( $parent );\n\t}\n\n\t/**\n\t * Parse preview response and show a warning at the top of the preview.\n\t *\n\t * @private\n\t * @param {Object} config\n\t * @param {Object} response\n\t */\n\tfunction showPreviewNotes( config, response ) {\n\t\tconst arrow = $( document.body ).css( 'direction' ) === 'rtl' ? '←' : '→';\n\t\tconst $previewHeader = $( '<div>' )\n\t\t\t.addClass( 'previewnote' )\n\t\t\t.append( $( '<h2>' )\n\t\t\t\t.attr( 'id', 'mw-previewheader' )\n\t\t\t\t// TemplateSandbox will insert an HTML string here.\n\t\t\t\t.append( config.previewHeader )\n\t\t\t);\n\n\t\tconst warningContentElement = $( '<div>' )\n\t\t\t.append(\n\t\t\t\t// TemplateSandbox will insert a jQuery here.\n\t\t\t\tconfig.previewNote,\n\t\t\t\t' ',\n\t\t\t\t$( '<span>' )\n\t\t\t\t\t.addClass( 'mw-continue-editing' )\n\t\t\t\t\t.append( $( '<a>' )\n\t\t\t\t\t\t.attr( 'href', '#' + config.$formNode.attr( 'id' ) )\n\t\t\t\t\t\t.text( arrow + ' ' + mw.msg( 'continue-editing' ) )\n\t\t\t\t\t),\n\t\t\t\tresponse.parse.parsewarningshtml.map( ( warning ) => $( '<p>' ).append( warning ) )\n\t\t\t)[ 0 ];\n\t\tconst warningMessageElement = util.messageBox(\n\t\t\twarningContentElement,\n\t\t\t'warning'\n\t\t);\n\t\t$previewHeader.append( warningMessageElement );\n\t\tconfig.$previewNode.prepend( $previewHeader );\n\t}\n\n\t/**\n\t * Show an error message in place of a preview.\n\t *\n\t * @private\n\t * @param {Object} config\n\t * @param {jQuery} $message\n\t */\n\tfunction showError( config, $message ) {\n\t\tconst errorContentElement = $( '<div>' )\n\t\t\t.append(\n\t\t\t\t$( '<strong>' ).text( mw.msg( 'previewerrortext' ) ),\n\t\t\t\t$message\n\t\t\t)[ 0 ];\n\t\tconst errorMessageElement = util.messageBox( errorContentElement, 'error' );\n\t\terrorMessageElement.classList.add( 'mw-page-preview-error' );\n\t\tconfig.$previewNode.hide().before( errorMessageElement );\n\t\tif ( config.$diffNode ) {\n\t\t\tconfig.$diffNode.hide();\n\t\t}\n\t}\n\n\t/**\n\t * Update the various bits of the page based on the response.\n\t *\n\t * @private\n\t * @param {Object} config\n\t * @param {Object} response\n\t */\n\tfunction handleParseResponse( config, response ) {\n\t\tlet $content;\n\n\t\t// Js config variables and modules.\n\t\tif ( response.parse.jsconfigvars ) {\n\t\t\tmw.config.set( response.parse.jsconfigvars );\n\t\t}\n\t\tif ( response.parse.modules ) {\n\t\t\tmw.loader.load( response.parse.modules.concat(\n\t\t\t\tresponse.parse.modulestyles\n\t\t\t) );\n\t\t}\n\n\t\t// Indicators.\n\t\tshowIndicators( response.parse.indicators );\n\n\t\t// Display title.\n\t\tif ( response.parse.displaytitle ) {\n\t\t\t$( '#firstHeadingTitle' ).html( response.parse.displaytitle );\n\t\t}\n\n\t\t// Categories.\n\t\tif ( response.parse.categorieshtml ) {\n\t\t\t$content = $( $.parseHTML( response.parse.categorieshtml ) );\n\t\t\tmw.hook( 'wikipage.categories' ).fire( $content );\n\t\t\t$( '.catlinks[data-mw=\"interface\"]' ).replaceWith( $content );\n\t\t}\n\n\t\t// Table of contents.\n\t\tif ( response.parse.sections ) {\n\t\t\t/**\n\t\t\t * Fired when dynamic changes have been made to the table of contents.\n\t\t\t *\n\t\t\t * @event ~'wikipage.tableOfContents'\n\t\t\t * @memberof Hooks\n\t\t\t * @param {Object[]} sections Metadata about each section, as returned by\n\t\t\t *   [API:Parse]{@link https://www.mediawiki.org/wiki/Special:MyLanguage/API:Parsing_wikitext}.\n\t\t\t */\n\t\t\tmw.hook( 'wikipage.tableOfContents' ).fire(\n\t\t\t\tresponse.parse.hidetoc ? [] : response.parse.sections\n\t\t\t);\n\t\t}\n\n\t\t// Templates.\n\t\tif ( response.parse.templates ) {\n\t\t\tshowTemplates( response.parse.templates );\n\t\t}\n\n\t\t// Limit report.\n\t\tif ( response.parse.limitreporthtml ) {\n\t\t\t$( '.limitreport' ).html( response.parse.limitreporthtml )\n\t\t\t\t.find( '.mw-collapsible' ).makeCollapsible();\n\t\t}\n\n\t\t// Language links.\n\t\tif ( response.parse.langlinks && mw.config.get( 'skin' ) === 'vector' ) {\n\t\t\tshowLanguageLinks( response.parse.langlinks );\n\t\t}\n\n\t\tif ( !response.parse.text ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove any previous preview\n\t\tconfig.$previewNode.children( '.mw-parser-output' ).remove();\n\t\t// Remove preview note, if present (added by Live Preview, etc.).\n\t\tconfig.$previewNode.find( '.previewnote' ).remove();\n\n\t\tif ( config.isLivePreview ) {\n\t\t\tshowPreviewNotes( config, response );\n\t\t}\n\n\t\t$content = $( $.parseHTML( response.parse.text ) );\n\n\t\tconfig.$previewNode.append( $content ).show();\n\n\t\tmw.hook( 'wikipage.content' ).fire( $content );\n\t}\n\n\t/**\n\t * Get the unresolved promise of the preview request.\n\t *\n\t * @private\n\t * @param {Object} config\n\t * @param {string|number} section\n\t * @return {jQuery.Promise}\n\t */\n\tfunction getParseRequest( config, section ) {\n\t\tconst params = {\n\t\t\tformatversion: 2,\n\t\t\taction: 'parse',\n\t\t\tsummary: config.summary,\n\t\t\tprop: ''\n\t\t};\n\t\tparams[ config.titleParam ] = config.title;\n\n\t\tif ( !config.showDiff ) {\n\t\t\tparams[ config.textParam ] = config.$textareaNode.textSelection( 'getContents' );\n\t\t\tObject.assign( params, {\n\t\t\t\tprop: 'text|indicators|displaytitle|modules|jsconfigvars|categorieshtml|sections|templates|langlinks|limitreporthtml|parsewarningshtml',\n\t\t\t\tpst: true,\n\t\t\t\tpreview: true,\n\t\t\t\tsectionpreview: section !== '',\n\t\t\t\tdisableeditsection: true,\n\t\t\t\tuseskin: mw.config.get( 'skin' ),\n\t\t\t\tuselang: mw.config.get( 'wgUserLanguage' )\n\t\t\t} );\n\t\t\tif ( mw.config.get( 'wgUserVariant' ) ) {\n\t\t\t\tparams.variant = mw.config.get( 'wgUserVariant' );\n\t\t\t}\n\t\t}\n\t\tif ( section === 'new' ) {\n\t\t\tparams.section = 'new';\n\t\t\tparams.sectiontitle = params.summary;\n\t\t\tdelete params.summary;\n\t\t}\n\n\t\tObject.assign( params, config.parseParams );\n\n\t\treturn api.post( params, { headers: { 'Promise-Non-Write-API-Action': 'true' } } );\n\t}\n\n\t/**\n\t * Get the required <table> structure for displaying diffs.\n\t *\n\t * @return {jQuery}\n\t */\n\tfunction getDiffTable() {\n\t\treturn $( '<table>' ).addClass( 'diff' ).append(\n\t\t\t$( '<col>' ).addClass( 'diff-marker' ),\n\t\t\t$( '<col>' ).addClass( 'diff-content' ),\n\t\t\t$( '<col>' ).addClass( 'diff-marker' ),\n\t\t\t$( '<col>' ).addClass( 'diff-content' ),\n\t\t\t$( '<thead>' ).append(\n\t\t\t\t$( '<tr>' ).addClass( 'diff-title' ).append(\n\t\t\t\t\t$( '<td>' )\n\t\t\t\t\t\t.attr( 'colspan', 2 )\n\t\t\t\t\t\t.addClass( 'diff-otitle diff-side-deleted' )\n\t\t\t\t\t\t.text( mw.msg( 'currentrev' ) ),\n\t\t\t\t\t$( '<td>' )\n\t\t\t\t\t\t.attr( 'colspan', 2 )\n\t\t\t\t\t\t.addClass( 'diff-ntitle diff-side-added' )\n\t\t\t\t\t\t.text( mw.msg( 'yourtext' ) )\n\t\t\t\t)\n\t\t\t),\n\t\t\t$( '<tbody>' )\n\t\t);\n\t}\n\n\t/**\n\t * Show the diff from the response.\n\t *\n\t * @private\n\t * @param {Object} config\n\t * @param {Object} response\n\t */\n\tfunction handleDiffResponse( config, response ) {\n\t\tconst $table = getDiffTable();\n\t\tconfig.$diffNode\n\t\t\t.hide()\n\t\t\t.empty()\n\t\t\t.append( $table );\n\n\t\tconst diff = response.compare.bodies;\n\t\tif ( diff.main ) {\n\t\t\t$table.find( 'tbody' ).html( diff.main );\n\t\t\tmw.hook( 'wikipage.diff' ).fire( $table );\n\t\t} else {\n\t\t\t// The diff is empty.\n\t\t\tconst $tableCell = $( '<td>' )\n\t\t\t\t.attr( 'colspan', 4 )\n\t\t\t\t.addClass( 'diff-notice' )\n\t\t\t\t.append(\n\t\t\t\t\t$( '<div>' )\n\t\t\t\t\t\t.addClass( 'mw-diff-empty' )\n\t\t\t\t\t\t.text( mw.msg( 'diff-empty' ) )\n\t\t\t\t);\n\t\t\t$table.find( 'tbody' )\n\t\t\t\t.empty()\n\t\t\t\t.append(\n\t\t\t\t\t$( '<tr>' ).append( $tableCell )\n\t\t\t\t);\n\t\t}\n\t\tconfig.$diffNode.show();\n\t}\n\n\t/**\n\t * Get the unresolved promise of the diff request.\n\t *\n\t * @private\n\t * @param {Object} config\n\t * @param {string|number} section\n\t * @param {boolean} pageExists\n\t * @return {jQuery.Promise}\n\t */\n\tfunction getDiffRequest( config, section, pageExists ) {\n\t\tlet contents = config.$textareaNode.textSelection( 'getContents' ),\n\t\t\tsectionTitle = config.summary;\n\n\t\tif ( section === 'new' ) {\n\t\t\t// T293930: Hack to show live diff for new section creation.\n\n\t\t\t// We concatenate the section heading with the edit box text and pass it to\n\t\t\t// the diff API as the full input text. This is roughly what the server-side\n\t\t\t// does when difference is requested for section edit.\n\t\t\t// The heading is always prepended, we do not bother with editing old rev\n\t\t\t// at this point (`?action=edit&oldid=xxx&section=new`) -- which will require\n\t\t\t// mid-text insertion of the section -- because creation of new section is only\n\t\t\t// possible on latest revision.\n\n\t\t\t// The section heading text is unconditionally wrapped in <h2> heading and\n\t\t\t// ends with double newlines, except when it's empty. This is for parity with the\n\t\t\t// server-side rendering of the same case.\n\t\t\tsectionTitle = sectionTitle === '' ? '' : '== ' + sectionTitle + ' ==\\n\\n';\n\n\t\t\t// Prepend section heading to section text.\n\t\t\tcontents = sectionTitle + contents;\n\t\t}\n\n\t\tconst params = {\n\t\t\taction: 'compare',\n\t\t\tfromtitle: config.title,\n\t\t\ttotitle: config.title,\n\t\t\ttoslots: 'main',\n\t\t\t// Remove trailing whitespace for consistency with EditPage diffs.\n\t\t\t// TODO trimEnd() when we can use that.\n\t\t\t'totext-main': contents.replace( /\\s+$/, '' ),\n\t\t\t'tocontentmodel-main': mw.config.get( 'wgPageContentModel' ),\n\t\t\ttopst: true,\n\t\t\tslots: 'main',\n\t\t\tuselang: mw.config.get( 'wgUserLanguage' )\n\t\t};\n\t\tif ( mw.config.get( 'wgUserVariant' ) ) {\n\t\t\tparams.variant = mw.config.get( 'wgUserVariant' );\n\t\t}\n\t\tif ( section ) {\n\t\t\tparams[ 'tosection-main' ] = section;\n\t\t}\n\t\tif ( !pageExists ) {\n\t\t\tparams.fromslots = 'main';\n\t\t\tparams[ 'fromcontentmodel-main' ] = mw.config.get( 'wgPageContentModel' );\n\t\t\tparams[ 'fromtext-main' ] = '';\n\t\t}\n\t\treturn api.post( params );\n\t}\n\n\t/**\n\t * Get the selectors of elements that should be grayed out while the preview is being generated.\n\t *\n\t * @memberof module:mediawiki.page.preview\n\t * @return {string[]}\n\t * @stable\n\t */\n\tfunction getLoadingSelectors() {\n\t\treturn [\n\t\t\t// Main\n\t\t\t'.mw-indicators',\n\t\t\t'#firstHeading',\n\t\t\t'#wikiPreview',\n\t\t\t'#wikiDiff',\n\t\t\t'#catlinks',\n\t\t\t'#p-lang',\n\t\t\t// Editing-related\n\t\t\t'.templatesUsed',\n\t\t\t'.limitreport',\n\t\t\t'.mw-summary-preview',\n\t\t\t'.hiddencats'\n\t\t];\n\t}\n\n\t/**\n\t * Fetch and display a preview of the current editing area.\n\t *\n\t * @memberof module:mediawiki.page.preview\n\t * @param {Object} config Configuration options.\n\t * @param {jQuery} [config.$previewNode=$( '#wikiPreview' )] Where the preview should be displayed.\n\t * @param {jQuery} [config.$diffNode=$( '#wikiDiff' )] Where diffs should be displayed (if showDiff is set).\n\t * @param {jQuery} [config.$formNode=$( '#editform' )] The form node.\n\t * @param {jQuery} [config.$textareaNode=$( '#wpTextbox1' )] The edit form's textarea.\n\t * @param {jQuery} [config.$spinnerNode=$( '.mw-spinner-preview' )] The loading indicator. This will\n\t *   be shown/hidden accordingly while waiting for the XMLHttpRequest to complete.\n\t *   Ignored if it doesn't exist in the document and `createSpinner` is false.\n\t * @param {string} [config.summary=null] The edit summary. If no value is given, the summary is\n\t *   fetched from `$( '#wpSummaryWidget' )`.\n\t * @param {boolean} [config.showDiff=false] Shows a diff in the preview area instead of the content.\n\t * @param {boolean} [config.isLivePreview=false] Instructs the module to replicate the\n\t *   server-side preview as much as possible. Specifically:\n\t *   - Before initiating the preview, some alerts and error messages at the top of the page will\n\t *     be removed, and the browser will scroll to the preview.\n\t *   - After finishing the preview, a reminder that it's only a preview, or an error message in\n\t *     case a request has failed, will be shown at the top of the preview.\n\t * @param {Node|Node[]|jQuery|string} [config.previewHeader=null] Content of `<h2>` element at\n\t *   the top of the preview notes. Required if `isLivePreview` is true.\n\t * @param {Node|Node[]|jQuery|string} [config.previewNote=null] Main text of the first preview\n\t *   note. Required if `isLivePreview` is true.\n\t * @param {string} [config.title=mw.config.get( 'wgPageName' )] The title of the page being previewed.\n\t * @param {string} [config.titleParam='title'] Name of the parse API parameter to pass `title` to.\n\t * @param {string} [config.textParam='text'] Name of the parse API parameter to pass the content\n\t *   of `$textareaNode` to. Ignored if `showDiff` is true.\n\t * @param {Object} [config.parseParams=null] Additional parse API parameters. This can override\n\t *   any parameter set by the module.\n\t * @param {module:mediawiki.page.preview~responseHandler} [config.responseHandler=null] Callback\n\t *   to run right after the API responses are received. This allows the config and response\n\t *   objects to be modified before the preview is shown.\n\t * @param {boolean} [config.createSpinner=false] Creates `$spinnerNode` and inserts it before\n\t *   `$previewNode` if one doesn't already exist and the module `jquery.spinner` is loaded.\n\t * @param {string[]} [config.loadingSelectors=getLoadingSelectors()] An array of query selectors\n\t *   (i.e. '#catlinks') that should be grayed out while the preview is being generated.\n\t * @return {jQuery.Promise|undefined} jQuery.Promise or `undefined` if no `$textareaNode` was provided in the config.\n\t * @fires Hooks~'wikipage.categories'\n\t * @fires Hooks~'wikipage.content'\n\t * @fires Hooks~'wikipage.diff'\n\t * @fires Hooks~'wikipage.indicators'\n\t * @fires Hooks~'wikipage.tableOfContents'\n\t * @stable\n\t */\n\tfunction doPreview( config ) {\n\t\tconfig = Object.assign( {\n\t\t\t$previewNode: $( '#wikiPreview' ),\n\t\t\t$diffNode: $( '#wikiDiff' ),\n\t\t\t$formNode: $( '#editform' ),\n\t\t\t$textareaNode: $( '#wpTextbox1' ),\n\t\t\t$spinnerNode: $( '.mw-spinner-preview' ),\n\t\t\tsummary: null,\n\t\t\tshowDiff: false,\n\t\t\tisLivePreview: false,\n\t\t\tpreviewHeader: null,\n\t\t\tpreviewNote: null,\n\t\t\ttitle: mw.config.get( 'wgPageName' ),\n\t\t\ttitleParam: 'title',\n\t\t\ttextParam: 'text',\n\t\t\tparseParams: null,\n\t\t\tresponseHandler: null,\n\t\t\tcreateSpinner: false,\n\t\t\tloadingSelectors: getLoadingSelectors()\n\t\t}, config );\n\n\t\tconst section = config.$formNode.find( '[name=\"wpSection\"]' ).val();\n\n\t\tif ( !config.$textareaNode || config.$textareaNode.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fetch edit summary, if not already given.\n\t\tif ( !config.summary ) {\n\t\t\tconst $summaryWidget = $( '#wpSummaryWidget' );\n\t\t\tif ( $summaryWidget.length ) {\n\t\t\t\tconfig.summary = OO.ui.infuse( $summaryWidget ).getValue();\n\t\t\t}\n\t\t}\n\n\t\tif ( config.isLivePreview ) {\n\t\t\t// Not shown during normal preview, to be removed if present\n\t\t\t$( '.mw-newarticletext, .mw-page-preview-error' ).remove();\n\n\t\t\t// Show #wikiPreview if it's hidden to be able to scroll to it.\n\t\t\t// (If it is hidden, it's also empty, so nothing changes in the rendering.)\n\t\t\tconfig.$previewNode.show();\n\n\t\t\t// Jump to where the preview will appear\n\t\t\tconfig.$previewNode[ 0 ].scrollIntoView();\n\t\t}\n\n\t\t// Show or create the spinner if possible.\n\t\tif ( config.$spinnerNode && config.$spinnerNode.length ) {\n\t\t\tconfig.$spinnerNode.show();\n\t\t} else if ( config.createSpinner ) {\n\t\t\tif ( mw.loader.getState( 'jquery.spinner' ) === 'ready' ) {\n\t\t\t\tconfig.$spinnerNode = $.createSpinner( {\n\t\t\t\t\tsize: 'large',\n\t\t\t\t\ttype: 'block'\n\t\t\t\t} )\n\t\t\t\t\t.addClass( 'mw-spinner-preview' )\n\t\t\t\t\t.insertBefore( config.$previewNode );\n\t\t\t} else {\n\t\t\t\tmw.log.warn( 'createSpinner requires the module jquery.spinner' );\n\t\t\t}\n\t\t}\n\n\t\t// Gray out the 'copy elements' while we wait for a response.\n\t\tconst $loadingElements = $( config.loadingSelectors.join( ',' ) );\n\t\t$loadingElements.addClass( [ 'mw-preview-loading-elements', 'mw-preview-loading-elements-loading' ] );\n\n\t\t// Acquire a temporary user username before previewing or diffing, so that signatures and\n\t\t// user-related magic words display the temp user instead of IP user in the preview. (T331397)\n\t\tconst tempUserNamePromise = mw.user.acquireTempUserName();\n\n\t\tlet diffRequest;\n\n\t\tconst parseRequest = tempUserNamePromise.then( () => getParseRequest( config, section ) );\n\n\t\tif ( config.showDiff ) {\n\t\t\tconfig.$previewNode.hide();\n\n\t\t\t// Add the diff node if it doesn't exist (directly after the preview node).\n\t\t\tif ( config.$diffNode.length === 0 && config.$previewNode.length > 0 ) {\n\t\t\t\tconst rtlDir = $( '#wpTextbox1' ).attr( 'dir' ) === 'rtl';\n\t\t\t\tconst alignStart = rtlDir ? 'right' : 'left';\n\t\t\t\tconfig.$diffNode = $( '<div>' )\n\t\t\t\t\t.attr( 'id', 'wikiDiff' )\n\t\t\t\t\t// The following classes are used here:\n\t\t\t\t\t// * diff-editfont-monospace\n\t\t\t\t\t// * diff-editfont-sans-serif\n\t\t\t\t\t// * diff-editfont-serif\n\t\t\t\t\t.addClass( 'diff-editfont-' + mw.user.options.get( 'editfont' ) )\n\t\t\t\t\t// The following classes are used here:\n\t\t\t\t\t// * diff-contentalign-left\n\t\t\t\t\t// * diff-contentalign-right\n\t\t\t\t\t.addClass( 'diff-contentalign-' + alignStart );\n\t\t\t\tconfig.$previewNode.after( config.$diffNode );\n\t\t\t}\n\n\t\t\t// Hide the table of contents, in case it was previously shown after previewing.\n\t\t\tmw.hook( 'wikipage.tableOfContents' ).fire( [] );\n\n\t\t\t// The compare API returns an error if the title doesn't exist and fromtext is not\n\t\t\t// specified. So we have to account for the possibility that the page was created or\n\t\t\t// deleted after the user started editing. Luckily the parse API returns pageid so we\n\t\t\t// can wait for that.\n\t\t\t// TODO: Show \"Warning: This page was deleted after you started editing!\"?\n\t\t\tdiffRequest = parseRequest.then( ( parseResponse ) => getDiffRequest( config, section, parseResponse.parse.pageid !== 0 ) );\n\n\t\t} else if ( config.$diffNode ) {\n\t\t\tconfig.$diffNode.hide();\n\t\t}\n\n\t\treturn $.when( parseRequest, diffRequest )\n\t\t\t.done( ( parseResponse, diffResponse ) => {\n\t\t\t\tif ( config.responseHandler ) {\n\t\t\t\t\t/**\n\t\t\t\t\t * @callback module:mediawiki.page.preview~responseHandler\n\t\t\t\t\t * @param {Object} config Options for live preview API\n\t\t\t\t\t * @param {Object} parseResponse Parse API response\n\t\t\t\t\t * @param {Object} [diffResponse] Compare API response\n\t\t\t\t\t */\n\t\t\t\t\tif ( config.showDiff ) {\n\t\t\t\t\t\tconfig.responseHandler( config, parseResponse[ 0 ], diffResponse[ 0 ] );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconfig.responseHandler( config, parseResponse[ 0 ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tshowEditSummary( config.$formNode, parseResponse[ 0 ] );\n\n\t\t\t\tif ( config.showDiff ) {\n\t\t\t\t\thandleDiffResponse( config, diffResponse[ 0 ] );\n\t\t\t\t} else {\n\t\t\t\t\thandleParseResponse( config, parseResponse[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\tmw.hook( 'wikipage.editform' ).fire( config.$formNode );\n\t\t\t} )\n\t\t\t.fail( ( _code, result ) => {\n\t\t\t\tif ( config.isLivePreview ) {\n\t\t\t\t\t// This just shows the error for whatever request failed first\n\t\t\t\t\tshowError( config, api.getErrorMessage( result ) );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.always( () => {\n\t\t\t\tif ( config.$spinnerNode && config.$spinnerNode.length ) {\n\t\t\t\t\tconfig.$spinnerNode.hide();\n\t\t\t\t}\n\t\t\t\t$loadingElements.removeClass( 'mw-preview-loading-elements-loading' );\n\t\t\t} );\n\t}\n\n\t/**\n\t * Fetch and display a preview of the current editing area.\n\t *\n\t * @example\n\t * var preview = require( 'mediawiki.page.preview' );\n\t * preview.doPreview();\n\t *\n\t * @exports mediawiki.page.preview\n\t */\n\tmodule.exports = {\n\t\tdoPreview: doPreview,\n\t\tgetLoadingSelectors: getLoadingSelectors\n\t};\n\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.page.ready/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.page.ready/checkboxHack.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.page.ready/checkboxShift.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.page.ready/ready.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'wikipage.indicators'","line":96,"column":1,"nodeType":"Block","endLine":96,"endColumn":1},{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'wikipage.content'","line":116,"column":1,"nodeType":"Block","endLine":116,"endColumn":1},{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'wikipage.categories'","line":137,"column":1,"nodeType":"Block","endLine":137,"endColumn":1},{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'wikipage.diff'","line":153,"column":1,"nodeType":"Block","endLine":153,"endColumn":1},{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'skin.logout'","line":184,"column":1,"nodeType":"Block","endLine":184,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"const checkboxShift = require( './checkboxShift.js' );\nconst config = require( './config.json' );\nconst teleportTarget = require( './teleportTarget.js' );\n\n// Break out of framesets\nif ( mw.config.get( 'wgBreakFrames' ) ) {\n\t// Note: In IE < 9 strict comparison to window is non-standard (the standard didn't exist yet)\n\t// it works only comparing to window.self or window.window (https://stackoverflow.com/q/4850978/319266)\n\tif ( window.top !== window.self ) {\n\t\t// Un-trap us from framesets\n\t\twindow.top.location.href = location.href;\n\t}\n}\n\nmw.hook( 'wikipage.content' ).add( ( $content ) => {\n\tconst modules = [];\n\n\tlet $collapsible;\n\tif ( config.collapsible ) {\n\t\t$collapsible = $content.find( '.mw-collapsible' );\n\t\tif ( $collapsible.length ) {\n\t\t\tmodules.push( 'jquery.makeCollapsible' );\n\t\t}\n\t}\n\n\tlet $sortable;\n\tif ( config.sortable ) {\n\t\t$sortable = $content.find( 'table.sortable' );\n\t\tif ( $sortable.length ) {\n\t\t\tmodules.push( 'jquery.tablesorter' );\n\t\t}\n\t}\n\n\tif ( modules.length ) {\n\t\t// Both modules are preloaded by Skin::getDefaultModules()\n\t\tmw.loader.using( modules ).then( () => {\n\t\t\t// For tables that are both sortable and collapsible,\n\t\t\t// it must be made sortable first and collapsible second.\n\t\t\t// This is because jquery.tablesorter stumbles on the\n\t\t\t// elements inserted by jquery.makeCollapsible (T64878)\n\t\t\tif ( $sortable && $sortable.length ) {\n\t\t\t\t$sortable.tablesorter();\n\t\t\t}\n\t\t\tif ( $collapsible && $collapsible.length ) {\n\t\t\t\t$collapsible.makeCollapsible();\n\t\t\t}\n\t\t} );\n\t}\n\tif ( $content[ 0 ] && $content[ 0 ].isConnected === false ) {\n\t\tmw.log.warn( 'wikipage.content hook should not be fired on unattached content' );\n\t}\n\n\tcheckboxShift( $content.find( 'input[type=\"checkbox\"]:not(.noshiftselect)' ) );\n} );\n\n// Add toolbox portlet to toggle all collapsibles if there are any\nrequire( './toggleAllCollapsibles.js' );\n\n// Handle elements outside the wikipage content\n$( () => {\n\t/**\n\t * There is a bug on iPad and maybe other browsers where if initial-scale is not set\n\t * the page cannot be zoomed. If the initial-scale is set on the server side, this will result\n\t * in an unwanted zoom on mobile devices. To avoid this we check innerWidth and set the\n\t * initial-scale on the client where needed. The width must be synced with the value in\n\t * Skin::initPage.\n\t * More information on this bug in [[phab:T311795]].\n\t *\n\t * @ignore\n\t */\n\tfunction fixViewportForTabletDevices() {\n\t\tconst $viewport = $( 'meta[name=viewport]' );\n\t\tconst content = $viewport.attr( 'content' );\n\t\tconst scale = window.outerWidth / window.innerWidth;\n\t\t// This adjustment is limited to tablet devices. It must be a non-zero value to work.\n\t\t// (these values correspond to @min-width-breakpoint-tablet and @min-width-breakpoint-desktop\n\t\t// See https://doc.wikimedia.org/codex/main/design-tokens/breakpoint.html\n\t\tif ( window.innerWidth >= 640 && window.innerWidth < 1120 &&\n\t\t\tcontent && !content.includes( 'initial-scale' )\n\t\t) {\n\t\t\t// Note:\n\t\t\t// - The `width` value must be equal to @min-width-breakpoint-desktop above\n\t\t\t// - If `initial-scale` value is 1 the font-size adjust feature will not work on iPad\n\t\t\t$viewport.attr( 'content', 'width=1120,initial-scale=' + scale );\n\t\t}\n\t}\n\n\t// Add accesskey hints to the tooltips\n\t$( '[accesskey]' ).updateTooltipAccessKeys();\n\n\tconst node = document.querySelector( '.mw-indicators' );\n\tif ( node && node.children.length ) {\n\t\t/**\n\t\t * Fired when a page's status indicators are being added to the DOM.\n\t\t *\n\t\t * @event ~'wikipage.indicators'\n\t\t * @memberof Hooks\n\t\t * @param {jQuery} $content jQuery object with the elements of the indicators\n\t\t * @see https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Page_status_indicators\n\t\t */\n\t\tmw.hook( 'wikipage.indicators' ).fire( $( node.children ) );\n\t}\n\n\tconst $content = $( '#mw-content-text' );\n\t// Avoid unusable events, and the errors they cause, for custom skins that\n\t// do not display any content (T259577).\n\tif ( $content.length ) {\n\t\t/**\n\t\t * Fired when wiki content has been added to the DOM.\n\t\t *\n\t\t * This should only be fired after $content has been attached.\n\t\t *\n\t\t * This includes the ready event on a page load (including post-edit loads)\n\t\t * and when content has been previewed with LivePreview.\n\t\t *\n\t\t * @event ~'wikipage.content'\n\t\t * @memberof Hooks\n\t\t * @param {jQuery} $content The most appropriate element containing the content,\n\t\t *   such as #mw-content-text (regular content root) or #wikiPreview (live preview\n\t\t *   root)\n\t\t */\n\t\tmw.hook( 'wikipage.content' ).fire( $content );\n\t}\n\n\tlet $nodes = $( '.catlinks[data-mw=\"interface\"]' );\n\tif ( $nodes.length ) {\n\t\t/**\n\t\t * Fired when categories are being added to the DOM.\n\t\t *\n\t\t * It is encouraged to fire it before the main DOM is changed (when $content\n\t\t * is still detached).  However, this order is not defined either way, so you\n\t\t * should only rely on $content itself.\n\t\t *\n\t\t * This includes the ready event on a page load (including post-edit loads)\n\t\t * and when content has been previewed with LivePreview.\n\t\t *\n\t\t * @event ~'wikipage.categories'\n\t\t * @memberof Hooks\n\t\t * @param {jQuery} $content The most appropriate element containing the content,\n\t\t *   such as .catlinks\n\t\t */\n\t\tmw.hook( 'wikipage.categories' ).fire( $nodes );\n\t}\n\n\t$nodes = $( 'table.diff[data-mw=\"interface\"]' );\n\tif ( $nodes.length ) {\n\t\t/**\n\t\t * Fired when the diff is added to a page containing a diff.\n\t\t *\n\t\t * Similar to the {@link Hooks~'wikipage.content' wikipage.content hook}\n\t\t * $diff may still be detached when the hook is fired.\n\t\t *\n\t\t * @event ~'wikipage.diff'\n\t\t * @memberof Hooks\n\t\t * @param {jQuery} $diff The root element of the MediaWiki diff (`table.diff`).\n\t\t */\n\t\tmw.hook( 'wikipage.diff' ).fire( $nodes.eq( 0 ) );\n\t}\n\n\t$( '#t-print a' ).on( 'click', ( e ) => {\n\t\twindow.print();\n\t\te.preventDefault();\n\t} );\n\n\tconst $permanentLink = $( '#t-permalink a' );\n\tfunction updatePermanentLinkHash() {\n\t\tif ( mw.util.getTargetFromFragment() ) {\n\t\t\t$permanentLink[ 0 ].hash = location.hash;\n\t\t} else {\n\t\t\t$permanentLink[ 0 ].hash = '';\n\t\t}\n\t}\n\tif ( $permanentLink.length ) {\n\t\t$( window ).on( 'hashchange', updatePermanentLinkHash );\n\t\tupdatePermanentLinkHash();\n\t}\n\n\t/**\n\t * Fired when a trusted UI element to perform a logout has been activated.\n\t *\n\t * This will end the user session, and either redirect to the given URL\n\t * on success, or queue an error message via {@link mw.notification}.\n\t *\n\t * @event ~'skin.logout'\n\t * @memberof Hooks\n\t * @param {string} href Full URL\n\t */\n\tconst LOGOUT_EVENT = 'skin.logout';\n\tfunction logoutViaPost( href ) {\n\t\tmw.notify(\n\t\t\tmw.message( 'logging-out-notify' ),\n\t\t\t{ tag: 'logout', autoHide: false }\n\t\t);\n\t\tconst api = new mw.Api();\n\t\tif ( mw.user.isTemp() ) {\n\t\t\t// Indicate to the success page that the user was previously a temporary account, so that the success\n\t\t\t// message can be customised appropriately.\n\t\t\tconst url = new URL( href );\n\t\t\turl.searchParams.append( 'wasTempUser', 1 );\n\t\t\thref = url;\n\t\t}\n\t\t// Allow hooks to extend data that is sent along with the logout request.\n\t\tapi.prepareExtensibleApiRequest( 'extendLogout' ).then( ( params ) => {\n\t\t\t// Include any additional params set by implementations of the extendLogout hook\n\t\t\tconst logoutParams = Object.assign( {}, params, { action: 'logout' } );\n\t\t\tapi.postWithToken( 'csrf', logoutParams ).then(\n\t\t\t\t() => {\n\t\t\t\t\tlocation.href = href;\n\t\t\t\t},\n\t\t\t\t( err, data ) => {\n\t\t\t\t\tmw.notify(\n\t\t\t\t\t\tapi.getErrorMessage( data ),\n\t\t\t\t\t\t{ type: 'error', tag: 'logout', autoHide: false }\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\t} );\n\t}\n\n\t// Turn logout to a POST action\n\tmw.hook( LOGOUT_EVENT ).add( logoutViaPost );\n\t$( config.selectorLogoutLink ).on( 'click', function ( e ) {\n\t\tmw.hook( LOGOUT_EVENT ).fire( this.href );\n\t\te.preventDefault();\n\t} );\n\tfixViewportForTabletDevices();\n\n\tteleportTarget.attach();\n} );\n\n/**\n * @private\n * @param {HTMLElement} element\n * @return {boolean} Whether the element is a search input.\n */\nfunction isSearchInput( element ) {\n\treturn element.id === 'searchInput' ||\n\t\telement.classList.contains( 'mw-searchInput' );\n}\n\n/**\n * Load a given module when a search input is focused.\n *\n * @memberof module:mediawiki.page.ready\n * @param {string} moduleName Name of a module\n */\nfunction loadSearchModule( moduleName ) {\n\tfunction requestSearchModule() {\n\t\tmw.loader.using( moduleName );\n\t}\n\n\t// Load the module once a search input is focussed.\n\tfunction eventListener( e ) {\n\t\tif ( e.target && e.target.nodeType === 1 && isSearchInput( e.target ) ) {\n\t\t\trequestSearchModule();\n\n\t\t\tdocument.removeEventListener( 'focusin', eventListener );\n\t\t}\n\t}\n\n\t// Load the module now if the search input is already focused,\n\t// because the user started typing before the JavaScript arrived.\n\tif ( document.activeElement && isSearchInput( document.activeElement ) ) {\n\t\trequestSearchModule();\n\t\treturn;\n\t}\n\n\tdocument.addEventListener( 'focusin', eventListener );\n}\n\n// Skins may decide to disable this behaviour or use an alternative module.\nif ( config.search ) {\n\tloadSearchModule( config.searchModule );\n}\n\ntry {\n\t// Load the post-edit notification module if a notification has been scheduled.\n\t// Use `sessionStorage` directly instead of 'mediawiki.storage' to minimize dependencies.\n\tif ( sessionStorage.getItem( 'mw-PostEdit' + mw.config.get( 'wgPageName' ) ) ) {\n\t\tmw.loader.load( 'mediawiki.action.view.postEdit' );\n\t}\n} catch ( err ) {}\n\n/**\n * @exports mediawiki.page.ready\n */\nmodule.exports = {\n\tloadSearchModule,\n\t/** @type {module:mediawiki.page.ready.CheckboxHack} */\n\tcheckboxHack: require( './checkboxHack.js' ),\n\t/**\n\t * A container for displaying elements that overlay the page, such as dialogs.\n\t *\n\t * @type {HTMLElement}\n\t */\n\tteleportTarget: teleportTarget.target\n};\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.page.ready/teleportTarget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.page.ready/toggleAllCollapsibles.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.page.watch.ajax/watch-ajax.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'wikipage.watchlistChange'","line":128,"column":1,"nodeType":"Block","endLine":128,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":332,"column":9,"nodeType":"CallExpression","endLine":332,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"( function () {\n\t// The name of the page to watch or unwatch\n\tconst pageTitle = mw.config.get( 'wgRelevantPageName' ),\n\t\tisWatchlistExpiryEnabled = require( './config.json' ).WatchlistExpiry,\n\t\t// Use Object.create( null ) instead of {} to get an Object without predefined properties.\n\t\t// This avoids problems if the title is 'hasOwnPropery' or similar. Bug: T342137\n\t\twatchstarsByTitle = Object.create( null );\n\n\t/**\n\t * Update the link text, link href attribute and (if applicable) \"loading\" class.\n\t *\n\t * @param {jQuery} $link Anchor tag of (un)watch link\n\t * @param {string} action One of 'watch', 'unwatch'\n\t * @param {string} [state='idle'] 'idle' or 'loading'. Default is 'idle'\n\t * @param {string} [expiry='infinity'] The expiry date if a page is being watched temporarily.\n\t * @private\n\t */\n\tfunction updateWatchLinkAttributes( $link, action, state, expiry ) {\n\t\t// A valid but empty jQuery object shouldn't throw a TypeError\n\t\tif ( !$link.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\texpiry = expiry || 'infinity';\n\n\t\t// Invalid actions shouldn't silently turn the page in an unrecoverable state\n\t\tif ( action !== 'watch' && action !== 'unwatch' ) {\n\t\t\tthrow new Error( 'Invalid action' );\n\t\t}\n\n\t\tconst otherAction = action === 'watch' ? 'unwatch' : 'watch';\n\t\tconst $li = $link.closest( 'li' );\n\n\t\tif ( state !== 'loading' ) {\n\t\t\t// jQuery event, @deprecated in 1.38\n\t\t\t// Trigger a 'watchpage' event for this List item.\n\t\t\t// NB: A expiry of 'infinity' is cast to null here, but not above\n\t\t\t$li.trigger( 'watchpage.mw', [ otherAction, mw.util.isInfinity( expiry ) ? null : expiry ] );\n\t\t}\n\n\t\tlet tooltipAction = action;\n\t\tlet daysLeftExpiry = null;\n\t\tlet watchExpiry = null;\n\t\t// Checking to see what if the expiry is set or indefinite to display the correct message\n\t\tif ( isWatchlistExpiryEnabled && action === 'unwatch' ) {\n\t\t\tif ( mw.util.isInfinity( expiry ) ) {\n\t\t\t\t// Resolves to tooltip-ca-unwatch message\n\t\t\t\ttooltipAction = 'unwatch';\n\t\t\t} else {\n\t\t\t\tconst expiryDate = new Date( expiry );\n\t\t\t\tconst currentDate = new Date();\n\t\t\t\t// Using the Math.ceil function instead of floor so when, for example, a user selects one week\n\t\t\t\t// the tooltip shows 7 days instead of 6 days (see Phab ticket T253936)\n\t\t\t\tdaysLeftExpiry = Math.ceil( ( expiryDate - currentDate ) / ( 1000 * 60 * 60 * 24 ) );\n\t\t\t\tif ( daysLeftExpiry > 0 ) {\n\t\t\t\t\t// Resolves to tooltip-ca-unwatch-expiring message\n\t\t\t\t\ttooltipAction = 'unwatch-expiring';\n\t\t\t\t} else {\n\t\t\t\t\t// Resolves to tooltip-ca-unwatch-expiring-hours message\n\t\t\t\t\ttooltipAction = 'unwatch-expiring-hours';\n\t\t\t\t}\n\t\t\t\twatchExpiry = expiryDate.toISOString();\n\t\t\t}\n\t\t}\n\n\t\tconst msgKey = state === 'loading' ? action + 'ing' : action;\n\t\t// The following messages can be used here:\n\t\t// * watch\n\t\t// * watching\n\t\t// * unwatch\n\t\t// * unwatching\n\t\tconst msg = mw.msg( msgKey );\n\t\tconst link = $link.get( 0 );\n\t\tif ( link.children.length > 1 && link.lastElementChild.tagName === 'SPAN' ) {\n\t\t\t// Handle updated button markup,\n\t\t\t// where the watchstar contains an icon element and a span element containing the text\n\t\t\tlink.lastElementChild.textContent = msg;\n\t\t} else {\n\t\t\tlink.textContent = msg;\n\t\t}\n\n\t\t$link.toggleClass( 'loading', state === 'loading' )\n\t\t\t// The following messages can be used here:\n\t\t\t// * tooltip-ca-watch\n\t\t\t// * tooltip-ca-unwatch\n\t\t\t// * tooltip-ca-unwatch-expiring\n\t\t\t// * tooltip-ca-unwatch-expiring-hours\n\t\t\t.attr( 'title', mw.msg( 'tooltip-ca-' + tooltipAction, daysLeftExpiry ) )\n\t\t\t.updateTooltipAccessKeys()\n\t\t\t.attr( 'href', mw.util.getUrl( pageTitle, { action: action } ) )\n\t\t\t.attr( 'data-mw-expiry', watchExpiry );\n\n\t\t$li.toggleClass( 'mw-watchlink-temp', expiry !== null && expiry !== 'infinity' );\n\n\t\t// Most common ID style\n\t\tif ( state !== 'loading' && $li.prop( 'id' ) === 'ca-' + otherAction ) {\n\t\t\t$li.prop( 'id', 'ca-' + action );\n\t\t}\n\t}\n\n\t/**\n\t * Notify hooks listeners of the new page watch status\n\t *\n\t * Watchstars should not need to use this hook, as they are updated via\n\t * callback, and automatically kept in sync if a watchstar with the same\n\t * title is changed.\n\t *\n\t * This hook should by used by other interfaces that care if the watch\n\t * status of the page has changed, e.g. an edit form which wants to\n\t * update a 'watch this page' checkbox.\n\t *\n\t * Users which change the watch status of the page without using a\n\t * watchstar (e.g. edit forms again) should use the updatePageWatchStatus\n\t * method to ensure watchstars are updated and this hook is fired.\n\t *\n\t * @param {boolean} isWatched The page is watched\n\t * @param {string} [expiry='infinity'] The expiry date if a page is being watched temporarily.\n\t * @param {string} [expirySelected='infinite'] The expiry length that was just selected from a dropdown, e.g. '1 week'\n\t * @private\n\t */\n\tfunction notifyPageWatchStatus( isWatched, expiry, expirySelected ) {\n\t\texpiry = expiry || 'infinity';\n\t\texpirySelected = expirySelected || 'infinite';\n\n\t\t/**\n\t\t * Fires when the page watch status has changed.\n\t\t *\n\t\t * @event ~'wikipage.watchlistChange'\n\t\t * @memberof Hooks\n\t\t * @param {boolean} isWatched\n\t\t * @param {string} expiry The expiry date if the page is being watched temporarily.\n\t\t * @param {string} expirySelected The expiry length that was selected from a dropdown, e.g. '1 week'\n\t\t * @example\n\t\t * mw.hook( 'wikipage.watchlistChange' ).add( ( isWatched, expiry, expirySelected ) => {\n\t\t *     // Do things\n\t\t * } );\n\t\t */\n\t\tmw.hook( 'wikipage.watchlistChange' ).fire(\n\t\t\tisWatched,\n\t\t\texpiry,\n\t\t\texpirySelected\n\t\t);\n\t}\n\n\t/**\n\t * Update the page watch status.\n\t *\n\t * @memberof module:mediawiki.page.watch.ajax\n\t * @param {boolean} isWatched The page is watched\n\t * @param {string} [expiry='infinity'] The expiry date if a page is being watched temporarily.\n\t * @param {string} [expirySelected='infinite'] The expiry length that was just selected from a dropdown, e.g. '1 week'\n\t * @fires Hooks~'wikipage.watchlistChange'\n\t * @stable\n\t */\n\tfunction updatePageWatchStatus( isWatched, expiry, expirySelected ) {\n\t\t// Update all watchstars associated with the current page\n\t\t( watchstarsByTitle[ pageTitle ] || [] ).forEach( ( w ) => {\n\t\t\tw.update( isWatched, expiry );\n\t\t} );\n\n\t\tnotifyPageWatchStatus( isWatched, expiry, expirySelected );\n\t}\n\n\t/**\n\t * Update the link text, link `href` attribute and (if applicable) \"loading\" class.\n\t *\n\t * For an individual link being set to 'loading', the first\n\t * argument can be a jQuery collection. When updating to an\n\t * \"idle\" state, an {@link mw.Title} object should be passed to that\n\t * all watchstars associated with that title are updated.\n\t *\n\t * @memberof module:mediawiki.page.watch.ajax\n\t * @param {mw.Title|jQuery} titleOrLink Title of watchlinks to update (when state is idle), or an individual watchlink\n\t * @param {string} action One of 'watch', 'unwatch'\n\t * @param {string} [state=\"idle\"] 'idle' or 'loading'. Default is 'idle'\n\t * @param {string} [expiry='infinity'] The expiry date if a page is being watched temporarily.\n\t * @param {string} [expirySelected='infinite'] The expiry length that was just selected from a dropdown, e.g. '1 week'\n\t * @fires Hooks~'wikipage.watchlistChange'\n\t * @stable\n\t */\n\tfunction updateWatchLink( titleOrLink, action, state, expiry, expirySelected ) {\n\t\tif ( titleOrLink instanceof $ ) {\n\t\t\tupdateWatchLinkAttributes( titleOrLink, action, state, expiry );\n\t\t} else {\n\t\t\t// Assumed state is 'idle' when update a group of watchstars by title\n\t\t\tconst isWatched = action === 'unwatch';\n\t\t\tconst normalizedTitle = titleOrLink.getPrefixedDb();\n\t\t\t( watchstarsByTitle[ normalizedTitle ] || [] ).forEach( ( w ) => {\n\t\t\t\tw.update( isWatched, expiry, expirySelected );\n\t\t\t} );\n\t\t\tif ( normalizedTitle === pageTitle ) {\n\t\t\t\tnotifyPageWatchStatus( isWatched, expiry, expirySelected );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * TODO: This should be moved somewhere more accessible.\n\t *\n\t * @param {string} url\n\t * @return {string} The extracted action, defaults to 'view'\n\t * @private\n\t */\n\tfunction mwUriGetAction( url ) {\n\t\t// TODO: Does MediaWiki give action path or query param\n\t\t// precedence? If the former, move this to the bottom\n\t\tconst action = mw.util.getParamValue( 'action', url );\n\t\tif ( action !== null ) {\n\t\t\treturn action;\n\t\t}\n\n\t\tconst actionPaths = mw.config.get( 'wgActionPaths' );\n\t\tfor ( const key in actionPaths ) {\n\t\t\tlet parts = actionPaths[ key ].split( '$1' );\n\t\t\tparts = parts.map( mw.util.escapeRegExp );\n\n\t\t\tconst m = new RegExp( parts.join( '(.+)' ) ).exec( url );\n\t\t\tif ( m && m[ 1 ] ) {\n\t\t\t\treturn key;\n\t\t\t}\n\t\t}\n\n\t\treturn 'view';\n\t}\n\n\t/**\n\t * @private\n\t */\n\tfunction init() {\n\t\tlet $pageWatchLinks = $( '.mw-watchlink a[data-mw=\"interface\"], a.mw-watchlink[data-mw=\"interface\"]' );\n\t\tif ( !$pageWatchLinks.length ) {\n\t\t\t// Fallback to the class-based exclusion method for backwards-compatibility\n\t\t\t$pageWatchLinks = $( '.mw-watchlink a, a.mw-watchlink' );\n\t\t\t// Restrict to core interfaces, ignore user-generated content\n\t\t\t$pageWatchLinks = $pageWatchLinks.filter( ':not( #bodyContent *, #content * )' );\n\t\t}\n\t\tif ( $pageWatchLinks.length ) {\n\t\t\twatchstar( $pageWatchLinks, pageTitle );\n\t\t}\n\t}\n\n\t/**\n\t * Class representing an individual watchstar\n\t *\n\t * @param {jQuery} $link Watch element\n\t * @param {mw.Title} title Title\n\t * @param {module:mediawiki.page.watch.ajax~callback} [callback]\n\t * @private\n\t */\n\tfunction Watchstar( $link, title, callback ) {\n\t\tthis.$link = $link;\n\t\tthis.title = title;\n\t\tthis.callback = callback;\n\t}\n\n\t/**\n\t * Update the watchstar\n\t *\n\t * @param {boolean} isWatched The page is watched\n\t * @param {string} [expiry='infinity'] The expiry date if a page is being watched temporarily.\n\t * @private\n\t */\n\tWatchstar.prototype.update = function ( isWatched, expiry ) {\n\t\texpiry = expiry || 'infinity';\n\t\tupdateWatchLinkAttributes( this.$link, isWatched ? 'unwatch' : 'watch', 'idle', expiry );\n\t\tif ( this.callback ) {\n\t\t\t/**\n\t\t\t * @callback module:mediawiki.page.watch.ajax~callback\n\t\t\t * @param {jQuery} $link The element being manipulated.\n\t\t\t * @param {boolean} isWatched Whether the page is now watched.\n\t\t\t * @param {string} expiry The expiry date if the page is being watched temporarily,\n\t\t\t *   or an 'infinity'-like value (see [mw.util.isIninity()]{@link module:mediawiki.util.isInfinity})\n\t\t\t */\n\t\t\tthis.callback( this.$link, isWatched, expiry );\n\t\t}\n\t};\n\n\t/**\n\t * Bind a given watchstar element to make it interactive.\n\t *\n\t * This is meant to allow binding of watchstars for arbitrary page titles,\n\t * especially if different from the currently viewed page. As such, this function\n\t * will *not* synchronise its state with any \"Watch this page\" checkbox such as\n\t * found on the \"Edit page\" and \"Publish changes\" forms. The caller should either make\n\t * \"current page\" watchstars picked up by init (and not use this function) or sync it manually\n\t * from the callback this function provides.\n\t *\n\t * @memberof module:mediawiki.page.watch.ajax\n\t * @param {jQuery} $links One or more anchor elements that must have an href\n\t *  with a URL containing a `action=watch` or `action=unwatch` query parameter,\n\t *  from which the current state will be learned (e.g. link to unwatch is currently watched)\n\t * @param {string} title Title of page that this watchstar will affect\n\t * @param {module:mediawiki.page.watch.ajax~callback} [callback] Callback to run after the action has been\n\t *  processed and API request completed.\n\t * @stable\n\t */\n\tfunction watchstar( $links, title, callback ) {\n\t\t// Set up the ARIA connection between the watch link and the notification.\n\t\t// This is set outside the click handler so that it's already present when the user clicks.\n\t\tconst notificationId = 'mw-watchlink-notification';\n\t\tconst mwTitle = mw.Title.newFromText( title );\n\n\t\tif ( !mwTitle ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst normalizedTitle = mwTitle.getPrefixedDb();\n\t\twatchstarsByTitle[ normalizedTitle ] = watchstarsByTitle[ normalizedTitle ] || [];\n\n\t\t$links.each( function () {\n\t\t\twatchstarsByTitle[ normalizedTitle ].push(\n\t\t\t\tnew Watchstar( $( this ), mwTitle, callback )\n\t\t\t);\n\t\t} );\n\n\t\t$links.attr( 'aria-controls', notificationId );\n\n\t\t// Add click handler.\n\t\t$links.on( 'click', function ( e ) {\n\t\t\tconst action = mwUriGetAction( this.href );\n\n\t\t\tif ( !mwTitle || ( action !== 'watch' && action !== 'unwatch' ) ) {\n\t\t\t\t// Let native browsing handle the link\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\n\t\t\tconst $link = $( this );\n\n\t\t\t// eslint-disable-next-line no-jquery/no-class-state\n\t\t\tif ( $link.hasClass( 'loading' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdateWatchLinkAttributes( $link, action, 'loading' );\n\n\t\t\t// Preload the notification module for mw.notify\n\t\t\tconst modulesToLoad = [ 'mediawiki.notification' ];\n\n\t\t\t// Preload watchlist expiry widget so it runs in parallel with the api call\n\t\t\tif ( isWatchlistExpiryEnabled ) {\n\t\t\t\tmodulesToLoad.push( 'mediawiki.watchstar.widgets' );\n\t\t\t}\n\n\t\t\tmw.loader.load( modulesToLoad );\n\n\t\t\tconst api = new mw.Api();\n\t\t\tapi[ action ]( title )\n\t\t\t\t.done( ( watchResponse ) => {\n\t\t\t\t\tconst isWatched = watchResponse.watched === true;\n\n\t\t\t\t\tlet message = isWatched ? 'addedwatchtext' : 'removedwatchtext';\n\t\t\t\t\tif ( mwTitle.isTalkPage() ) {\n\t\t\t\t\t\tmessage += '-talk';\n\t\t\t\t\t}\n\n\t\t\t\t\tlet notifyPromise;\n\t\t\t\t\tlet watchlistPopup;\n\t\t\t\t\t// @since 1.35 - pop up notification will be loaded with OOUI\n\t\t\t\t\t// only if Watchlist Expiry is enabled\n\t\t\t\t\tif ( isWatchlistExpiryEnabled ) {\n\t\t\t\t\t\tif ( isWatched ) { // The message should include `infinite` watch period\n\t\t\t\t\t\t\tmessage = mwTitle.isTalkPage() ? 'addedwatchindefinitelytext-talk' : 'addedwatchindefinitelytext';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnotifyPromise = mw.loader.using( 'mediawiki.watchstar.widgets' ).then( ( require ) => {\n\t\t\t\t\t\t\tconst WatchlistExpiryWidget = require( 'mediawiki.watchstar.widgets' );\n\n\t\t\t\t\t\t\tif ( !watchlistPopup ) {\n\t\t\t\t\t\t\t\twatchlistPopup = new WatchlistExpiryWidget(\n\t\t\t\t\t\t\t\t\taction,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tupdateWatchLink,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t// The following messages can be used here:\n\t\t\t\t\t\t\t\t\t\t// * addedwatchindefinitelytext-talk\n\t\t\t\t\t\t\t\t\t\t// * addedwatchindefinitelytext\n\t\t\t\t\t\t\t\t\t\t// * removedwatchtext-talk\n\t\t\t\t\t\t\t\t\t\t// * removedwatchtext\n\t\t\t\t\t\t\t\t\t\tmessage: mw.message( message, mwTitle.getPrefixedText() ).parseDom(),\n\t\t\t\t\t\t\t\t\t\t$link: $link\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tmw.notify( watchlistPopup.$element, {\n\t\t\t\t\t\t\t\ttag: 'watch-self',\n\t\t\t\t\t\t\t\tid: notificationId,\n\t\t\t\t\t\t\t\tautoHideSeconds: 'short'\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// The following messages can be used here:\n\t\t\t\t\t\t// * addedwatchtext-talk\n\t\t\t\t\t\t// * addedwatchtext\n\t\t\t\t\t\t// * removedwatchtext-talk\n\t\t\t\t\t\t// * removedwatchtext\n\t\t\t\t\t\tnotifyPromise = mw.notify(\n\t\t\t\t\t\t\tmw.message( message, mwTitle.getPrefixedText() ).parseDom(), {\n\t\t\t\t\t\t\t\ttag: 'watch-self',\n\t\t\t\t\t\t\t\tid: notificationId\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// The notifications are stored as a promise and the watch link is only updated\n\t\t\t\t\t// once it is resolved. Otherwise, if $wgWatchlistExpiry set, the loading of\n\t\t\t\t\t// OOUI could cause a race condition and the link is updated before the popup\n\t\t\t\t\t// actually is shown. See T263135\n\t\t\t\t\tnotifyPromise.always( () => {\n\t\t\t\t\t\t// Update all watchstars associated with this title\n\t\t\t\t\t\twatchstarsByTitle[ normalizedTitle ].forEach( ( w ) => {\n\t\t\t\t\t\t\tw.update( isWatched );\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t// For the current page, also trigger the hook\n\t\t\t\t\t\tif ( normalizedTitle === pageTitle ) {\n\t\t\t\t\t\t\tnotifyPageWatchStatus( isWatched );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.fail( ( code, data ) => {\n\t\t\t\t\t// Reset link to non-loading mode\n\t\t\t\t\tupdateWatchLinkAttributes( $link, action );\n\n\t\t\t\t\t// Format error message\n\t\t\t\t\tconst $msg = api.getErrorMessage( data );\n\n\t\t\t\t\t// Report to user about the error\n\t\t\t\t\tmw.notify( $msg, {\n\t\t\t\t\t\ttag: 'watch-self',\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\tid: notificationId\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t} );\n\t}\n\n\t$( init );\n\n\t/**\n\t * Animate watch/unwatch links to use asynchronous API requests to\n\t * watch pages, rather than navigating to a different URI.\n\t *\n\t * @example\n\t * var watch = require( 'mediawiki.page.watch.ajax' );\n\t * watch.updateWatchLink(\n\t *     $node,\n\t *     'watch',\n\t *     'loading'\n\t * );\n\t * // When the watch status of the page has been updated:\n\t * watch.updatePageWatchStatus( true );\n\t *\n\t * @exports mediawiki.page.watch.ajax\n\t */\n\tmodule.exports = {\n\t\twatchstar: watchstar,\n\t\tupdateWatchLink: updateWatchLink,\n\t\tupdatePageWatchStatus: updatePageWatchStatus\n\t};\n\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.pager.codex/codexTablePager.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/Controller.js","messages":[{"ruleId":"jsdoc/require-returns","severity":1,"message":"Found more than one @return declaration.","line":330,"column":1,"nodeType":"Block","endLine":341,"endColumn":4},{"ruleId":"jsdoc/require-returns-check","severity":1,"message":"Found more than one @return declaration.","line":330,"column":1,"nodeType":"Block","endLine":341,"endColumn":4},{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'RcFilters.highlight.enable'","line":550,"column":1,"nodeType":"Block","endLine":550,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-jquery/no-is-numeric","severity":1,"message":"Prefer typeof to $.isNumeric","line":939,"column":8,"nodeType":"CallExpression","endLine":939,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"const byteLength = require( 'mediawiki.String' ).byteLength,\n\tUriProcessor = require( './UriProcessor.js' );\n\n/* eslint no-underscore-dangle: \"off\" */\n/**\n * Controller for the filters in Recent Changes.\n *\n * @class Controller\n * @memberof mw.rcfilters\n * @ignore\n * @param {mw.rcfilters.dm.FiltersViewModel} filtersModel Filters view model\n * @param {mw.rcfilters.dm.ChangesListViewModel} changesListModel Changes list view model\n * @param {mw.rcfilters.dm.SavedQueriesModel} savedQueriesModel Saved queries model\n * @param {Object} config Additional configuration\n * @param {string} config.savedQueriesPreferenceName Where to save the saved queries\n * @param {string} config.daysPreferenceName Preference name for the days filter\n * @param {string} config.limitPreferenceName Preference name for the limit filter\n * @param {string} config.collapsedPreferenceName Preference name for collapsing and showing\n *  the active filters area\n * @param {boolean} [config.normalizeTarget] Dictates whether or not to go through the\n *  title normalization to separate title subpage/parts into the target= url\n *  parameter\n */\nconst Controller = function MwRcfiltersController( filtersModel, changesListModel, savedQueriesModel, config ) {\n\tthis.filtersModel = filtersModel;\n\tthis.changesListModel = changesListModel;\n\tthis.savedQueriesModel = savedQueriesModel;\n\tthis.savedQueriesPreferenceName = config.savedQueriesPreferenceName;\n\tthis.daysPreferenceName = config.daysPreferenceName;\n\tthis.limitPreferenceName = config.limitPreferenceName;\n\tthis.collapsedPreferenceName = config.collapsedPreferenceName;\n\tthis.normalizeTarget = !!config.normalizeTarget;\n\n\t// TODO merge dmConfig.json and config.json virtual files, see T256836\n\tthis.pollingRate = require( './dmConfig.json' ).StructuredChangeFiltersLiveUpdatePollingRate;\n\n\tthis.requestCounter = {};\n\tthis.uriProcessor = null;\n\tthis.initialized = false;\n\tthis.wereSavedQueriesSaved = false;\n\n\tthis.prevLoggedItems = [];\n\n\tthis.FILTER_CHANGE = 'filterChange';\n\tthis.SHOW_NEW_CHANGES = 'showNewChanges';\n\tthis.LIVE_UPDATE = 'liveUpdate';\n};\n\n/* Initialization */\nOO.initClass( Controller );\n\n/**\n * Initialize the filter and parameter states\n *\n * @param {Array} filterStructure Filter definition and structure for the model\n * @param {Object} namespaceStructure Namespace definition\n * @param {Object} tagList Tag definition\n * @param {Object} [conditionalViews] Conditional view definition\n */\nController.prototype.initialize = function ( filterStructure, namespaceStructure, tagList, conditionalViews ) {\n\tconst displayConfig = mw.config.get( 'StructuredChangeFiltersDisplayConfig' ),\n\t\tdefaultSavedQueryExists = mw.config.get( 'wgStructuredChangeFiltersDefaultSavedQueryExists' ),\n\t\tviews = $.extend( true, {}, conditionalViews ),\n\t\turl = new URL( location.href );\n\n\t// Prepare views\n\tconst nsAllContents = {\n\t\tname: 'all-contents',\n\t\tlabel: mw.msg( 'rcfilters-allcontents-label' ),\n\t\tdescription: '',\n\t\tidentifiers: [ 'subject' ],\n\t\tcssClass: 'mw-changeslist-ns-subject',\n\t\tsubset: []\n\t};\n\tconst nsAllDiscussions = {\n\t\tname: 'all-discussions',\n\t\tlabel: mw.msg( 'rcfilters-alldiscussions-label' ),\n\t\tdescription: '',\n\t\tidentifiers: [ 'talk' ],\n\t\tcssClass: 'mw-changeslist-ns-talk',\n\t\tsubset: []\n\t};\n\tconst items = [ nsAllContents, nsAllDiscussions ];\n\tfor ( const namespaceID in namespaceStructure ) {\n\t\tconst label = namespaceStructure[ namespaceID ];\n\t\t// Build and clean up the individual namespace items definition\n\t\tconst isTalk = mw.Title.isTalkNamespace( namespaceID ),\n\t\t\tnsFilter = {\n\t\t\t\tname: namespaceID,\n\t\t\t\tlabel: label || mw.msg( 'blanknamespace' ),\n\t\t\t\tdescription: '',\n\t\t\t\tidentifiers: [\n\t\t\t\t\tisTalk ? 'talk' : 'subject'\n\t\t\t\t],\n\t\t\t\tcssClass: 'mw-changeslist-ns-' + namespaceID\n\t\t\t};\n\t\titems.push( nsFilter );\n\t\t( isTalk ? nsAllDiscussions : nsAllContents ).subset.push( { filter: namespaceID } );\n\t}\n\n\tviews.namespaces = {\n\t\ttitle: mw.msg( 'namespaces' ),\n\t\ttrigger: ':',\n\t\tgroups: [ {\n\t\t\t// Group definition (single group)\n\t\t\tname: 'namespace', // parameter name is singular\n\t\t\ttype: 'string_options',\n\t\t\ttitle: mw.msg( 'namespaces' ),\n\t\t\tlabelPrefixKey: {\n\t\t\t\tdefault: 'rcfilters-tag-prefix-namespace',\n\t\t\t\tinverted: 'rcfilters-tag-prefix-namespace-inverted'\n\t\t\t},\n\t\t\tseparator: ';',\n\t\t\tsupportsAll: false,\n\t\t\tfullCoverage: true,\n\t\t\tfilters: items\n\t\t} ]\n\t};\n\tviews.invertNamespaces = {\n\t\tgroups: [\n\t\t\t{\n\t\t\t\t// Should really be called invertNamespacesGroup; legacy name is used so that\n\t\t\t\t// saved queries don't break\n\t\t\t\tname: 'invertGroup',\n\t\t\t\ttype: 'boolean',\n\t\t\t\thidden: true,\n\t\t\t\tfilters: [ {\n\t\t\t\t\tname: 'invert',\n\t\t\t\t\tdefault: '0'\n\t\t\t\t} ]\n\t\t\t} ]\n\t};\n\n\tviews.tags = {\n\t\ttitle: mw.msg( 'rcfilters-view-tags' ),\n\t\ttrigger: '#',\n\t\tgroups: [ {\n\t\t\t// Group definition (single group)\n\t\t\tname: 'tagfilter', // Parameter name\n\t\t\ttype: 'string_options',\n\t\t\ttitle: 'rcfilters-view-tags', // Message key\n\t\t\tlabelPrefixKey: {\n\t\t\t\tdefault: 'rcfilters-tag-prefix-tags',\n\t\t\t\tinverted: 'rcfilters-tag-prefix-tags-inverted'\n\t\t\t},\n\t\t\tseparator: '|',\n\t\t\tsupportsAll: false,\n\t\t\tfullCoverage: false,\n\t\t\tfilters: tagList\n\t\t} ]\n\t};\n\tviews.invertTags = {\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tname: 'invertTagsGroup',\n\t\t\t\ttype: 'boolean',\n\t\t\t\thidden: true,\n\t\t\t\tfilters: [ {\n\t\t\t\t\tname: 'inverttags',\n\t\t\t\t\tdefault: '0'\n\t\t\t\t} ]\n\t\t\t} ]\n\t};\n\n\t// Add parameter range operations\n\tviews.range = {\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tname: 'limit',\n\t\t\t\ttype: 'single_option',\n\t\t\t\ttitle: '', // Because it's a hidden group, this title actually appears nowhere\n\t\t\t\thidden: true,\n\t\t\t\tallowArbitrary: true,\n\t\t\t\t// FIXME: $.isNumeric is deprecated\n\t\t\t\tvalidate: $.isNumeric,\n\t\t\t\trange: {\n\t\t\t\t\tmin: 0, // The server normalizes negative numbers to 0 results\n\t\t\t\t\tmax: 1000\n\t\t\t\t},\n\t\t\t\tsortFunc: function ( a, b ) {\n\t\t\t\t\treturn Number( a.name ) - Number( b.name );\n\t\t\t\t},\n\t\t\t\tdefault: mw.user.options.get( this.limitPreferenceName, displayConfig.limitDefault ),\n\t\t\t\tsticky: true,\n\t\t\t\tfilters: displayConfig.limitArray.map( ( num ) => this._createFilterDataFromNumber( num, num ) )\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'days',\n\t\t\t\ttype: 'single_option',\n\t\t\t\ttitle: '', // Because it's a hidden group, this title actually appears nowhere\n\t\t\t\thidden: true,\n\t\t\t\tallowArbitrary: true,\n\t\t\t\t// FIXME: $.isNumeric is deprecated\n\t\t\t\tvalidate: $.isNumeric,\n\t\t\t\trange: {\n\t\t\t\t\tmin: 0,\n\t\t\t\t\tmax: displayConfig.maxDays\n\t\t\t\t},\n\t\t\t\tsortFunc: function ( a, b ) {\n\t\t\t\t\treturn Number( a.name ) - Number( b.name );\n\t\t\t\t},\n\t\t\t\tnumToLabelFunc: function ( i ) {\n\t\t\t\t\treturn Number( i ) < 1 ?\n\t\t\t\t\t\t( Number( i ) * 24 ).toFixed( 2 ) :\n\t\t\t\t\t\tNumber( i );\n\t\t\t\t},\n\t\t\t\tdefault: mw.user.options.get( this.daysPreferenceName, displayConfig.daysDefault ),\n\t\t\t\tsticky: true,\n\t\t\t\tfilters: [\n\t\t\t\t\t// Hours (1, 2, 6, 12)\n\t\t\t\t\t0.04166, 0.0833, 0.25, 0.5\n\t\t\t\t// Days\n\t\t\t\t].concat( displayConfig.daysArray )\n\t\t\t\t\t.map( ( num ) => this._createFilterDataFromNumber(\n\t\t\t\t\t\tnum,\n\t\t\t\t\t\t// Convert fractions of days to number of hours for the labels\n\t\t\t\t\t\tnum < 1 ? Math.round( num * 24 ) : num\n\t\t\t\t\t) )\n\t\t\t}\n\t\t]\n\t};\n\n\tviews.display = {\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tname: 'display',\n\t\t\t\ttype: 'boolean',\n\t\t\t\ttitle: '', // Because it's a hidden group, this title actually appears nowhere\n\t\t\t\thidden: true,\n\t\t\t\tsticky: true,\n\t\t\t\tfilters: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'enhanced',\n\t\t\t\t\t\tdefault: String( mw.user.options.get( 'usenewrc', 0 ) )\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\t// Before we do anything, we need to see if we require additional items in the\n\t// groups that have 'AllowArbitrary'. For the moment, those are only single_option\n\t// groups; if we ever expand it, this might need further generalization:\n\tfor ( const viewName in views ) {\n\t\tconst viewData = views[ viewName ];\n\t\tviewData.groups.forEach( ( groupData ) => {\n\t\t\tconst extraValues = [];\n\t\t\tif ( groupData.allowArbitrary ) {\n\t\t\t\t// If the value in the URL isn't in the group, add it\n\t\t\t\tif ( url.searchParams.get( groupData.name ) !== null ) {\n\t\t\t\t\textraValues.push( url.searchParams.get( groupData.name ) );\n\t\t\t\t}\n\t\t\t\t// If the default value isn't in the group, add it\n\t\t\t\tif ( groupData.default !== undefined ) {\n\t\t\t\t\textraValues.push( String( groupData.default ) );\n\t\t\t\t}\n\t\t\t\tthis.addNumberValuesToGroup( groupData, extraValues );\n\t\t\t}\n\t\t} );\n\t}\n\n\t// Initialize the model\n\tthis.filtersModel.initializeFilters( filterStructure, views );\n\n\tthis.uriProcessor = new UriProcessor(\n\t\tthis.filtersModel,\n\t\t{ normalizeTarget: this.normalizeTarget }\n\t);\n\n\tlet parsedSavedQueries;\n\tif ( !mw.user.isAnon() ) {\n\t\ttry {\n\t\t\tparsedSavedQueries = JSON.parse( mw.user.options.get( this.savedQueriesPreferenceName ) || '{}' );\n\t\t} catch ( err ) {\n\t\t\tparsedSavedQueries = {};\n\t\t}\n\n\t\t// Initialize saved queries\n\t\tthis.savedQueriesModel.initialize( parsedSavedQueries );\n\t\tif ( this.savedQueriesModel.isConverted() ) {\n\t\t\t// Since we know we converted, we're going to re-save\n\t\t\t// the queries so they are now migrated to the new format\n\t\t\tthis._saveSavedQueries();\n\t\t}\n\t}\n\n\tif ( defaultSavedQueryExists ) {\n\t\t// This came from the server, meaning that we have a default\n\t\t// saved query, but the server could not load it, probably because\n\t\t// it was pre-conversion to the new format.\n\t\t// We need to load this query again\n\t\tthis.applySavedQuery( this.savedQueriesModel.getDefault() );\n\t} else {\n\t\t// There are either recognized parameters in the URL\n\t\t// or there are none, but there is also no default\n\t\t// saved query (so defaults are from the backend)\n\t\t// We want to update the state but not fetch results\n\t\t// again\n\t\tthis.updateStateFromUrl( false );\n\n\t\tconst pieces = this._extractChangesListInfo( $( '#mw-content-text' ) );\n\n\t\t// Update the changes list with the existing data\n\t\t// so it gets processed\n\t\tthis.changesListModel.update(\n\t\t\tpieces.changes,\n\t\t\tpieces.fieldset,\n\t\t\tpieces.noResultsDetails,\n\t\t\ttrue // We're using existing DOM elements\n\t\t);\n\t}\n\n\tthis.initialized = true;\n\tthis.switchView( 'default' );\n\n\tif ( this.pollingRate ) {\n\t\tthis._scheduleLiveUpdate();\n\t}\n};\n\n/**\n * Check if the controller has finished initializing.\n *\n * @return {boolean} Controller is initialized\n */\nController.prototype.isInitialized = function () {\n\treturn this.initialized;\n};\n\n/**\n * Extracts information from the changes list DOM\n *\n * @param {jQuery} $root Root DOM to find children from\n * @param {number} [statusCode] Server response status code\n * @return {Object} Information about changes list\n * @return {Object|string} return.changes Changes list, or 'NO_RESULTS' if there are no results\n *   (either normally or as an error)\n * @return {string} [return.noResultsDetails] 'NO_RESULTS_NORMAL' for a normal 0-result set,\n *   'NO_RESULTS_TIMEOUT' for no results due to a timeout, or omitted for more than 0 results\n * @return {jQuery} return.fieldset Fieldset\n */\nController.prototype._extractChangesListInfo = function ( $root, statusCode ) {\n\tconst $changesListContents = $root.find( '.mw-changeslist' ).first().contents(),\n\t\tareResults = !!$changesListContents.length,\n\t\tcheckForLogout = !areResults && statusCode === 200;\n\n\t// We check if user logged out on different tab/browser or the session has expired.\n\t// 205 status code returned from the server, which indicates that we need to reload the page\n\t// is not usable on WL page, because we get redirected to login page, which gives 200 OK\n\t// status code (if everything else goes well).\n\t// Bug: T177717\n\tif ( checkForLogout && !!$root.find( '#wpName1' ).length ) {\n\t\tlocation.reload( false );\n\t\treturn;\n\t}\n\n\tconst info = {\n\t\tchanges: $changesListContents.length ? $changesListContents : 'NO_RESULTS',\n\t\tfieldset: $root.find( 'fieldset.cloptions' ).first()\n\t};\n\n\tif ( !areResults ) {\n\t\tif ( $root.find( '.mw-changeslist-timeout' ).length ) {\n\t\t\tinfo.noResultsDetails = 'NO_RESULTS_TIMEOUT';\n\t\t} else if ( $root.find( '.mw-changeslist-notargetpage' ).length ) {\n\t\t\tinfo.noResultsDetails = 'NO_RESULTS_NO_TARGET_PAGE';\n\t\t} else if ( $root.find( '.mw-changeslist-invalidtargetpage' ).length ) {\n\t\t\tinfo.noResultsDetails = 'NO_RESULTS_INVALID_TARGET_PAGE';\n\t\t} else {\n\t\t\tinfo.noResultsDetails = 'NO_RESULTS_NORMAL';\n\t\t}\n\t}\n\n\treturn info;\n};\n\n/**\n * Create filter data from a number, for the filters that are numerical value\n *\n * @param {number} num Number\n * @param {number} numForDisplay Number for the label\n * @return {Object} Filter data\n */\nController.prototype._createFilterDataFromNumber = function ( num, numForDisplay ) {\n\treturn {\n\t\tname: String( num ),\n\t\tlabel: mw.language.convertNumber( numForDisplay )\n\t};\n};\n\n/**\n * Add an arbitrary values to groups that allow arbitrary values\n *\n * @param {Object} groupData Group data\n * @param {string|string[]} arbitraryValues An array of arbitrary values to add to the group\n */\nController.prototype.addNumberValuesToGroup = function ( groupData, arbitraryValues ) {\n\tconst normalizeWithinRange = function ( range, val ) {\n\t\tif ( val < range.min ) {\n\t\t\treturn range.min; // Min\n\t\t} else if ( val >= range.max ) {\n\t\t\treturn range.max; // Max\n\t\t}\n\t\treturn val;\n\t};\n\n\tarbitraryValues = Array.isArray( arbitraryValues ) ? arbitraryValues : [ arbitraryValues ];\n\n\t// Normalize the arbitrary values and the default value for a range\n\tif ( groupData.range ) {\n\t\tarbitraryValues = arbitraryValues.map( ( val ) => normalizeWithinRange( groupData.range, val ) );\n\n\t\t// Normalize the default, since that's user defined\n\t\tif ( groupData.default !== undefined ) {\n\t\t\tgroupData.default = String( normalizeWithinRange( groupData.range, groupData.default ) );\n\t\t}\n\t}\n\n\t// This is only true for single_option group\n\t// We assume these are the only groups that will allow for\n\t// arbitrary, since it doesn't make any sense for the other\n\t// groups.\n\tarbitraryValues.forEach( ( val ) => {\n\t\tif (\n\t\t\t// If the group allows for arbitrary data\n\t\t\tgroupData.allowArbitrary &&\n\t\t\t// and it is single_option (or string_options, but we\n\t\t\t// don't have cases of those yet, nor do we plan to)\n\t\t\tgroupData.type === 'single_option' &&\n\t\t\t// and, if there is a validate method and it passes on\n\t\t\t// the data\n\t\t\t( !groupData.validate || groupData.validate( val ) ) &&\n\t\t\t// but if that value isn't already in the definition\n\t\t\t!groupData.filters\n\t\t\t\t.map( ( filterData ) => String( filterData.name ) )\n\t\t\t\t.includes( String( val ) )\n\t\t) {\n\t\t\t// Add the filter information\n\t\t\tgroupData.filters.push( this._createFilterDataFromNumber(\n\t\t\t\tval,\n\t\t\t\tgroupData.numToLabelFunc ?\n\t\t\t\t\tgroupData.numToLabelFunc( val ) :\n\t\t\t\t\tval\n\t\t\t) );\n\n\t\t\t// If there's a sort function set up, re-sort the values\n\t\t\tif ( groupData.sortFunc ) {\n\t\t\t\tgroupData.filters.sort( groupData.sortFunc );\n\t\t\t}\n\t\t}\n\t} );\n};\n\n/**\n * Reset to default filters\n */\nController.prototype.resetToDefaults = function () {\n\tconst params = this._getDefaultParams();\n\tif ( this.applyParamChange( params ) ) {\n\t\t// Only update the changes list if there was a change to actual filters\n\t\tthis.updateChangesList();\n\t} else {\n\t\tthis.uriProcessor.updateURL( params );\n\t}\n};\n\n/**\n * Check whether the default values of the filters are all false.\n *\n * @return {boolean} Defaults are all false\n */\nController.prototype.areDefaultsEmpty = function () {\n\treturn $.isEmptyObject( this._getDefaultParams() );\n};\n\n/**\n * Empty all selected filters\n */\nController.prototype.emptyFilters = function () {\n\tif ( this.applyParamChange( {} ) ) {\n\t\t// Only update the changes list if there was a change to actual filters\n\t\tthis.updateChangesList();\n\t} else {\n\t\tthis.uriProcessor.updateURL();\n\t}\n};\n\n/**\n * Update the selected state of a filter\n *\n * @param {string} filterName Filter name\n * @param {boolean} [isSelected] Filter selected state\n */\nController.prototype.toggleFilterSelect = function ( filterName, isSelected ) {\n\tconst filterItem = this.filtersModel.getItemByName( filterName );\n\n\tif ( !filterItem ) {\n\t\t// If no filter was found, break\n\t\treturn;\n\t}\n\n\tisSelected = isSelected === undefined ? !filterItem.isSelected() : isSelected;\n\n\tif ( filterItem.isSelected() !== isSelected ) {\n\t\tthis.filtersModel.toggleFilterSelected( filterName, isSelected );\n\n\t\tthis.updateChangesList();\n\n\t\t// Check filter interactions\n\t\tthis.filtersModel.reassessFilterInteractions( filterItem );\n\t}\n};\n\n/**\n * Clear both highlight and selection of a filter\n *\n * @param {string} filterName Name of the filter item\n */\nController.prototype.clearFilter = function ( filterName ) {\n\tconst filterItem = this.filtersModel.getItemByName( filterName ),\n\t\tisHighlighted = filterItem.isHighlighted(),\n\t\tisSelected = filterItem.isSelected();\n\n\tif ( isSelected || isHighlighted ) {\n\t\tthis.filtersModel.clearHighlightColor( filterName );\n\t\tthis.filtersModel.toggleFilterSelected( filterName, false );\n\n\t\tif ( isSelected ) {\n\t\t\t// Only update the changes list if the filter changed\n\t\t\t// its selection state. If it only changed its highlight\n\t\t\t// then don't reload\n\t\t\tthis.updateChangesList();\n\t\t}\n\n\t\tthis.filtersModel.reassessFilterInteractions( filterItem );\n\t}\n};\n\n/**\n * Toggle the highlight feature on and off\n */\nController.prototype.toggleHighlight = function () {\n\tthis.filtersModel.toggleHighlight();\n\tthis.uriProcessor.updateURL();\n\n\tif ( this.filtersModel.isHighlightEnabled() ) {\n\t\t/**\n\t\t * Fires when highlight feature is enabled.\n\t\t *\n\t\t * @event ~'RcFilters.highlight.enable'\n\t\t * @memberof Hooks\n\t\t */\n\t\tmw.hook( 'RcFilters.highlight.enable' ).fire();\n\t}\n};\n\n/**\n * Toggle the inverted tags feature on and off\n */\nController.prototype.toggleInvertedTags = function () {\n\tthis.filtersModel.toggleInvertedTags();\n\n\tif (\n\t\tthis.filtersModel.getFiltersByView( 'tags' ).filter(\n\t\t\t( filterItem ) => filterItem.isSelected()\n\t\t).length\n\t) {\n\t\t// Only re-fetch results if there are tags items that are actually selected\n\t\tthis.updateChangesList();\n\t} else {\n\t\tthis.uriProcessor.updateURL();\n\t}\n};\n\n/**\n * Toggle the inverted namespaces feature on and off\n */\nController.prototype.toggleInvertedNamespaces = function () {\n\tthis.filtersModel.toggleInvertedNamespaces();\n\n\tif (\n\t\tthis.filtersModel.getFiltersByView( 'namespaces' ).filter(\n\t\t\t( filterItem ) => filterItem.isSelected()\n\t\t).length\n\t) {\n\t\t// Only re-fetch results if there are namespace items that are actually selected\n\t\tthis.updateChangesList();\n\t} else {\n\t\tthis.uriProcessor.updateURL();\n\t}\n};\n\n/**\n * Set the value of the 'showlinkedto' parameter\n *\n * @param {boolean} value\n */\nController.prototype.setShowLinkedTo = function ( value ) {\n\tconst targetItem = this.filtersModel.getGroup( 'page' ).getItemByParamName( 'target' ),\n\t\tshowLinkedToItem = this.filtersModel.getGroup( 'toOrFrom' ).getItemByParamName( 'showlinkedto' );\n\n\tthis.filtersModel.toggleFilterSelected( showLinkedToItem.getName(), value );\n\tthis.uriProcessor.updateURL();\n\t// reload the results only when target is set\n\tif ( targetItem.getValue() ) {\n\t\tthis.updateChangesList();\n\t}\n};\n\n/**\n * Set the target page\n *\n * @param {string} page\n */\nController.prototype.setTargetPage = function ( page ) {\n\tconst targetItem = this.filtersModel.getGroup( 'page' ).getItemByParamName( 'target' );\n\ttargetItem.setValue( page );\n\tthis.uriProcessor.updateURL();\n\tthis.updateChangesList();\n};\n\n/**\n * Set the highlight color for a filter item\n *\n * @param {string} filterName Name of the filter item\n * @param {string} color Selected color\n */\nController.prototype.setHighlightColor = function ( filterName, color ) {\n\tthis.filtersModel.setHighlightColor( filterName, color );\n\tthis.uriProcessor.updateURL();\n};\n\n/**\n * Clear highlight for a filter item\n *\n * @param {string} filterName Name of the filter item\n */\nController.prototype.clearHighlightColor = function ( filterName ) {\n\tthis.filtersModel.clearHighlightColor( filterName );\n\tthis.uriProcessor.updateURL();\n};\n\n/**\n * Enable or disable live updates.\n *\n * @param {boolean} enable True to enable, false to disable\n */\nController.prototype.toggleLiveUpdate = function ( enable ) {\n\tthis.changesListModel.toggleLiveUpdate( enable );\n\tif ( this.changesListModel.getLiveUpdate() && this.changesListModel.getNewChangesExist() ) {\n\t\tthis.updateChangesList( null, this.LIVE_UPDATE );\n\t}\n};\n\n/**\n * Set a timeout for the next live update.\n *\n * @private\n */\nController.prototype._scheduleLiveUpdate = function () {\n\tsetTimeout( this._doLiveUpdate.bind( this ), this.pollingRate * 1000 );\n};\n\n/**\n * Perform a live update.\n *\n * @private\n */\nController.prototype._doLiveUpdate = function () {\n\tif ( !this._shouldCheckForNewChanges() ) {\n\t\t// skip this turn and check back later\n\t\tthis._scheduleLiveUpdate();\n\t\treturn;\n\t}\n\n\tthis._checkForNewChanges()\n\t\t.then( ( statusCode ) => {\n\t\t\t// no result is 204 with the 'peek' param\n\t\t\t// logged out is 205\n\t\t\tconst newChanges = statusCode === 200;\n\n\t\t\tif ( !this._shouldCheckForNewChanges() ) {\n\t\t\t\t// by the time the response is received,\n\t\t\t\t// it may not be appropriate anymore\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// 205 is the status code returned from server when user's logged in/out\n\t\t\t// status is not matching while fetching live update changes.\n\t\t\t// This works only on Recent Changes page. For WL, look _extractChangesListInfo.\n\t\t\t// Bug: T177717\n\t\t\tif ( statusCode === 205 ) {\n\t\t\t\tlocation.reload( false );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( newChanges ) {\n\t\t\t\tif ( this.changesListModel.getLiveUpdate() ) {\n\t\t\t\t\treturn this.updateChangesList( null, this.LIVE_UPDATE );\n\t\t\t\t} else {\n\t\t\t\t\tthis.changesListModel.setNewChangesExist( true );\n\t\t\t\t}\n\t\t\t}\n\t\t} )\n\t\t.always( this._scheduleLiveUpdate.bind( this ) );\n};\n\n/**\n * @return {boolean} It's appropriate to check for new changes now\n * @private\n */\nController.prototype._shouldCheckForNewChanges = function () {\n\treturn !document.hidden &&\n\t\t!this.filtersModel.hasConflict() &&\n\t\t!this.changesListModel.getNewChangesExist() &&\n\t\t!this.updatingChangesList &&\n\t\tthis.changesListModel.getNextFrom();\n};\n\n/**\n * Check if new changes, newer than those currently shown, are available\n *\n * @return {jQuery.Promise} Promise object that resolves with a bool\n *   specifying if there are new changes or not\n *\n * @private\n */\nController.prototype._checkForNewChanges = function () {\n\tconst params = {\n\t\tlimit: 1,\n\t\tpeek: 1, // bypasses ChangesList specific UI\n\t\tfrom: this.changesListModel.getNextFrom(),\n\t\tisAnon: mw.user.isAnon()\n\t};\n\treturn this._queryChangesList( 'liveUpdate', params ).then(\n\t\t( data ) => data.status\n\t);\n};\n\n/**\n * Show the new changes\n *\n * @return {jQuery.Promise} Promise object that resolves after\n * fetching and showing the new changes\n */\nController.prototype.showNewChanges = function () {\n\treturn this.updateChangesList( null, this.SHOW_NEW_CHANGES );\n};\n\n/**\n * Save the current model state as a saved query\n *\n * @param {string} [label] Label of the saved query\n * @param {boolean} [setAsDefault=false] This query should be set as the default\n */\nController.prototype.saveCurrentQuery = function ( label, setAsDefault ) {\n\t// Add item\n\tthis.savedQueriesModel.addNewQuery(\n\t\tlabel || mw.msg( 'rcfilters-savedqueries-defaultlabel' ),\n\t\tthis.filtersModel.getCurrentParameterState( true ),\n\t\tsetAsDefault\n\t);\n\n\t// Save item\n\tthis._saveSavedQueries();\n};\n\n/**\n * Remove a saved query\n *\n * @param {string} queryID Query id\n */\nController.prototype.removeSavedQuery = function ( queryID ) {\n\tthis.savedQueriesModel.removeQuery( queryID );\n\n\tthis._saveSavedQueries();\n};\n\n/**\n * Rename a saved query\n *\n * @param {string} queryID Query id\n * @param {string} newLabel New label for the query\n */\nController.prototype.renameSavedQuery = function ( queryID, newLabel ) {\n\tconst queryItem = this.savedQueriesModel.getItemByID( queryID );\n\n\tif ( queryItem ) {\n\t\tqueryItem.updateLabel( newLabel );\n\t}\n\tthis._saveSavedQueries();\n};\n\n/**\n * Set a saved query as default\n *\n * @param {string} queryID Query Id. If null is given, default\n *  query is reset.\n */\nController.prototype.setDefaultSavedQuery = function ( queryID ) {\n\tthis.savedQueriesModel.setDefault( queryID );\n\tthis._saveSavedQueries();\n};\n\n/**\n * Load a saved query\n *\n * @param {string} queryID Query id\n */\nController.prototype.applySavedQuery = function ( queryID ) {\n\tconst params = this.savedQueriesModel.getItemParams( queryID );\n\n\tconst currentMatchingQuery = this.findQueryMatchingCurrentState();\n\n\tif (\n\t\tcurrentMatchingQuery &&\n\t\tcurrentMatchingQuery.getID() === queryID\n\t) {\n\t\t// If the query we want to load is the one that is already\n\t\t// loaded, don't reload it\n\t\treturn;\n\t}\n\n\tif ( this.applyParamChange( params ) ) {\n\t\t// Update changes list only if there was a difference in filter selection\n\t\tthis.updateChangesList();\n\t} else {\n\t\tthis.uriProcessor.updateURL( params );\n\t}\n};\n\n/**\n * Check whether the current filter and highlight state exists\n * in the saved queries model.\n *\n * @ignore\n * @return {mw.rcfilters.dm.SavedQueryItemModel} Matching item model\n */\nController.prototype.findQueryMatchingCurrentState = function () {\n\treturn this.savedQueriesModel.findMatchingQuery(\n\t\tthis.filtersModel.getCurrentParameterState( true )\n\t);\n};\n\n/**\n * Save the current state of the saved queries model with all\n * query item representation in the user settings.\n */\nController.prototype._saveSavedQueries = function () {\n\tconst backupPrefName = this.savedQueriesPreferenceName + '-versionbackup',\n\t\tstate = this.savedQueriesModel.getState();\n\n\t// Stringify state\n\tconst stringified = JSON.stringify( state );\n\n\tif ( byteLength( stringified ) > 65535 ) {\n\t\t// Double check, since the preference can only hold that.\n\t\treturn;\n\t}\n\n\tif ( !this.wereSavedQueriesSaved && this.savedQueriesModel.isConverted() ) {\n\t\t// The queries were converted from the previous version\n\t\t// Keep the old string in the [prefname]-versionbackup\n\t\tconst oldPrefValue = mw.user.options.get( this.savedQueriesPreferenceName );\n\n\t\t// Save the old preference in the backup preference\n\t\tnew mw.Api().saveOption( backupPrefName, oldPrefValue );\n\t\t// Update the preference for this session\n\t\tmw.user.options.set( backupPrefName, oldPrefValue );\n\t}\n\n\t// Save the preference\n\tnew mw.Api().saveOption( this.savedQueriesPreferenceName, stringified );\n\t// Update the preference for this session\n\tmw.user.options.set( this.savedQueriesPreferenceName, stringified );\n\n\t// Tag as already saved so we don't do this again\n\tthis.wereSavedQueriesSaved = true;\n};\n\n/**\n * Update sticky preferences with current model state\n */\nController.prototype.updateStickyPreferences = function () {\n\t// Update default sticky values with selected, whether they came from\n\t// the initial defaults or from the URL value that is being normalized\n\tthis.updateDaysDefault( this.filtersModel.getGroup( 'days' ).findSelectedItems()[ 0 ].getParamName() );\n\tthis.updateLimitDefault( this.filtersModel.getGroup( 'limit' ).findSelectedItems()[ 0 ].getParamName() );\n\n\t// TODO: Make these automatic by having the model go over sticky\n\t// items and update their default values automatically\n};\n\n/**\n * Update the limit default value\n *\n * @param {number} newValue New value\n */\nController.prototype.updateLimitDefault = function ( newValue ) {\n\tthis.updateNumericPreference( this.limitPreferenceName, newValue );\n};\n\n/**\n * Update the days default value\n *\n * @param {number} newValue New value\n */\nController.prototype.updateDaysDefault = function ( newValue ) {\n\tthis.updateNumericPreference( this.daysPreferenceName, newValue );\n};\n\n/**\n * Update the group by page default value\n *\n * @param {boolean} newValue New value\n */\nController.prototype.updateGroupByPageDefault = function ( newValue ) {\n\tthis.updateNumericPreference( 'usenewrc', Number( newValue ) );\n};\n\n/**\n * Update the collapsed state value\n *\n * @param {boolean} isCollapsed Filter area is collapsed\n */\nController.prototype.updateCollapsedState = function ( isCollapsed ) {\n\tthis.updateNumericPreference( this.collapsedPreferenceName, Number( isCollapsed ) );\n};\n\n/**\n * Update a numeric preference with a new value\n *\n * @param {string} prefName Preference name\n * @param {number|string} newValue New value\n */\nController.prototype.updateNumericPreference = function ( prefName, newValue ) {\n\t// FIXME: $.isNumeric is deprecated\n\t// eslint-disable-next-line no-jquery/no-is-numeric\n\tif ( !$.isNumeric( newValue ) ) {\n\t\treturn;\n\t}\n\n\tif ( String( mw.user.options.get( prefName ) ) !== String( newValue ) ) {\n\t\t// Save the preference\n\t\tnew mw.Api().saveOption( prefName, newValue );\n\t\t// Update the preference for this session\n\t\tmw.user.options.set( prefName, newValue );\n\t}\n};\n\n/**\n * Synchronize the URL with the current state of the filters\n * without adding a history entry.\n */\nController.prototype.replaceUrl = function () {\n\tthis.uriProcessor.updateURL();\n};\n\n/**\n * Update filter state (selection and highlighting) based\n * on current URL values.\n *\n * @param {boolean} [fetchChangesList=true] Fetch new results into the changes\n *  list based on the updated model.\n */\nController.prototype.updateStateFromUrl = function ( fetchChangesList ) {\n\tfetchChangesList = fetchChangesList === undefined ? true : !!fetchChangesList;\n\n\tthis.uriProcessor.updateModelBasedOnQuery();\n\n\t// Update the sticky preferences, in case we received a value\n\t// from the URL\n\tthis.updateStickyPreferences();\n\n\t// Only update and fetch new results if it is requested\n\tif ( fetchChangesList ) {\n\t\tthis.updateChangesList();\n\t}\n};\n\n/**\n * Update the list of changes and notify the model\n *\n * @param {Object} [params] Extra parameters to add to the API call\n * @param {string} [updateMode='filterChange'] One of 'filterChange', 'liveUpdate', 'showNewChanges', 'markSeen'\n * @return {jQuery.Promise} Promise that is resolved when the update is complete\n */\nController.prototype.updateChangesList = function ( params, updateMode ) {\n\tupdateMode = updateMode === undefined ? this.FILTER_CHANGE : updateMode;\n\n\tif ( updateMode === this.FILTER_CHANGE ) {\n\t\tthis.uriProcessor.updateURL( params );\n\t}\n\tif ( updateMode === this.FILTER_CHANGE || updateMode === this.SHOW_NEW_CHANGES ) {\n\t\tthis.changesListModel.invalidate();\n\t}\n\tthis.changesListModel.setNewChangesExist( false );\n\tthis.updatingChangesList = true;\n\treturn this._fetchChangesList()\n\t\t.then(\n\t\t\t// Success\n\t\t\t( pieces ) => {\n\t\t\t\tconst $changesListContent = pieces.changes,\n\t\t\t\t\t$fieldset = pieces.fieldset;\n\t\t\t\tthis.changesListModel.update(\n\t\t\t\t\t$changesListContent,\n\t\t\t\t\t$fieldset,\n\t\t\t\t\tpieces.noResultsDetails,\n\t\t\t\t\tfalse,\n\t\t\t\t\t// separator between old and new changes\n\t\t\t\t\tupdateMode === this.SHOW_NEW_CHANGES || updateMode === this.LIVE_UPDATE\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Do nothing for failure\n\t\t)\n\t\t.always( () => {\n\t\t\tthis.updatingChangesList = false;\n\t\t} );\n};\n\n/**\n * Get an object representing the default parameter state, whether\n * it is from the model defaults or from the saved queries.\n *\n * @return {Object} Default parameters\n */\nController.prototype._getDefaultParams = function () {\n\tif ( this.savedQueriesModel.getDefault() ) {\n\t\treturn this.savedQueriesModel.getDefaultParams();\n\t} else {\n\t\treturn this.filtersModel.getDefaultParams();\n\t}\n};\n\n/**\n * Query the list of changes from the server for the current filters\n *\n * @param {string} counterId Id for this request. To allow concurrent requests\n *  not to invalidate each other.\n * @param {Object} [params={}] Parameters to add to the query\n *\n * @return {jQuery.Promise} Promise object resolved with { content, status }\n */\nController.prototype._queryChangesList = function ( counterId, params ) {\n\tconst url = this.uriProcessor.getUpdatedUri(),\n\t\tstickyParams = this.filtersModel.getStickyParamsValues();\n\n\tparams = params || {};\n\tparams.action = 'render'; // bypasses MW chrome\n\n\tObject.keys( params ).forEach( ( key ) => url.searchParams.set( key, params[ key ] ) );\n\n\tthis.requestCounter[ counterId ] = this.requestCounter[ counterId ] || 0;\n\tconst requestId = ++this.requestCounter[ counterId ];\n\tconst latestRequest = function () {\n\t\treturn requestId === this.requestCounter[ counterId ];\n\t}.bind( this );\n\n\t// Sticky parameters override the URL params\n\t// this is to make sure that whether we represent\n\t// the sticky params in the URL or not (they may\n\t// be normalized out) the sticky parameters are\n\t// always being sent to the server with their\n\t// current/default values\n\tObject.keys( stickyParams ).forEach( ( key ) => url.searchParams.set( key, stickyParams[ key ] ) );\n\n\treturn $.ajax( url.toString() )\n\t\t.then(\n\t\t\t( content, message, jqXHR ) => {\n\t\t\t\tif ( !latestRequest() ) {\n\t\t\t\t\treturn $.Deferred().reject();\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tcontent: content,\n\t\t\t\t\tstatus: jqXHR.status\n\t\t\t\t};\n\t\t\t},\n\t\t\t// RC returns 404 when there is no results\n\t\t\t( jqXHR ) => {\n\t\t\t\tif ( latestRequest() ) {\n\t\t\t\t\treturn $.Deferred().resolve(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontent: jqXHR.responseText,\n\t\t\t\t\t\t\tstatus: jqXHR.status\n\t\t\t\t\t\t}\n\t\t\t\t\t).promise();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n};\n\n/**\n * Fetch the list of changes from the server for the current filters\n *\n * @return {jQuery.Promise} Promise object that will resolve with the changes list\n *  and the fieldset.\n */\nController.prototype._fetchChangesList = function () {\n\treturn this._queryChangesList( 'updateChangesList' )\n\t\t.then(\n\t\t\t( data ) => {\n\t\t\t\t// Status code 0 is not HTTP status code,\n\t\t\t\t// but is valid value of XMLHttpRequest status.\n\t\t\t\t// It is used for variety of network errors, for example\n\t\t\t\t// when an AJAX call was cancelled before getting the response\n\t\t\t\tif ( data && data.status === 0 ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tchanges: 'NO_RESULTS',\n\t\t\t\t\t\t// We need empty result set, to avoid exceptions because of undefined value\n\t\t\t\t\t\tfieldset: $( [] ),\n\t\t\t\t\t\tnoResultsDetails: 'NO_RESULTS_NETWORK_ERROR'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst $parsed = $( '<div>' ).append( $( $.parseHTML(\n\t\t\t\t\tdata ? data.content : ''\n\t\t\t\t) ) );\n\n\t\t\t\treturn this._extractChangesListInfo( $parsed, data.status );\n\t\t\t}\n\t\t);\n};\n\n/**\n * Apply a change of parameters to the model state, and check whether\n * the new state is different than the old state.\n *\n * @param  {Object} newParamState New parameter state to apply\n * @return {boolean} New applied model state is different than the previous state\n */\nController.prototype.applyParamChange = function ( newParamState ) {\n\tconst before = this.filtersModel.getSelectedState();\n\n\tthis.filtersModel.updateStateFromParams( newParamState );\n\n\tconst after = this.filtersModel.getSelectedState();\n\n\treturn !OO.compare( before, after );\n};\n\n/**\n * Mark all changes as seen on Watchlist\n */\nController.prototype.markAllChangesAsSeen = function () {\n\tconst api = new mw.Api();\n\tapi.postWithToken( 'csrf', {\n\t\tformatversion: 2,\n\t\taction: 'setnotificationtimestamp',\n\t\tentirewatchlist: true\n\t} ).then( () => {\n\t\tthis.updateChangesList( null, 'markSeen' );\n\t} );\n};\n\n/**\n * Set the current search for the system.\n *\n * @param {string} searchQuery Search query, including triggers\n */\nController.prototype.setSearch = function ( searchQuery ) {\n\tthis.filtersModel.setSearch( searchQuery );\n};\n\n/**\n * Switch the view by changing the search query trigger\n * without changing the search term\n *\n * @param  {string} view View to change to\n */\nController.prototype.switchView = function ( view ) {\n\tthis.setSearch(\n\t\tthis.filtersModel.getViewTrigger( view ) +\n\t\tthis.filtersModel.removeViewTriggers( this.filtersModel.getSearch() )\n\t);\n};\n\n/**\n * Reset the search for a specific view. This means we null the search query\n * and replace it with the relevant trigger for the requested view\n *\n * @param  {string} [view='default'] View to change to\n */\nController.prototype.resetSearchForView = function ( view ) {\n\tview = view || 'default';\n\n\tthis.setSearch(\n\t\tthis.filtersModel.getViewTrigger( view )\n\t);\n};\n\nmodule.exports = Controller;\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/HighlightColors.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/UriProcessor.js","messages":[],"suppressedMessages":[{"ruleId":"eqeqeq","severity":2,"message":"Expected '!==' and instead saw '!='.","line":219,"column":27,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":219,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/dm/ChangesListViewModel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/dm/FilterGroup.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":535,"column":4,"nodeType":"CallExpression","endLine":539,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":584,"column":3,"nodeType":"CallExpression","endLine":597,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":602,"column":3,"nodeType":"CallExpression","endLine":607,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":663,"column":3,"nodeType":"CallExpression","endLine":681,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/dm/FilterItem.js","messages":[{"ruleId":"jsdoc/require-returns","severity":1,"message":"Found more than one @return declaration.","line":81,"column":1,"nodeType":"Block","endLine":90,"endColumn":4},{"ruleId":"jsdoc/require-returns-check","severity":1,"message":"Found more than one @return declaration.","line":81,"column":1,"nodeType":"Block","endLine":90,"endColumn":4},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'update' is undefined.","line":335,"column":1,"nodeType":"Block","endLine":335,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'update' is undefined.","line":351,"column":1,"nodeType":"Block","endLine":351,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'update' is undefined.","line":366,"column":1,"nodeType":"Block","endLine":366,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":99,"column":2,"nodeType":"CallExpression","endLine":112,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"const ItemModel = require( './ItemModel.js' );\n\n/**\n * Filter item model.\n *\n * @class mw.rcfilters.dm.FilterItem\n * @ignore\n * @extends mw.rcfilters.dm.ItemModel\n *\n * @param {string} param Filter param name\n * @param {mw.rcfilters.dm.FilterGroup} groupModel Filter group model\n * @param {Object} config Configuration object\n * @param {string[]} [config.excludes=[]] A list of filter names this filter, if\n *  selected, makes inactive.\n * @param {string[]} [config.subset] Defining the names of filters that are a subset of this filter\n * @param {Object} [config.conflicts] Defines the conflicts for this filter\n * @param {boolean} [config.visible=true] The visibility of the group\n */\nconst FilterItem = function MwRcfiltersDmFilterItem( param, groupModel, config ) {\n\tconfig = config || {};\n\n\tthis.groupModel = groupModel;\n\n\t// Parent\n\tFilterItem.super.call( this, param, Object.assign( {\n\t\tnamePrefix: this.groupModel.getNamePrefix()\n\t}, config ) );\n\t// Mixin constructor\n\tOO.EventEmitter.call( this );\n\n\t// Interaction definitions\n\tthis.subset = config.subset || [];\n\tthis.conflicts = config.conflicts || {};\n\tthis.superset = [];\n\tthis.visible = config.visible === undefined ? true : !!config.visible;\n\n\t// Interaction states\n\tthis.included = false;\n\tthis.conflicted = false;\n\tthis.fullyCovered = false;\n};\n\n/* Initialization */\n\nOO.inheritClass( FilterItem, ItemModel );\n\n/* Methods */\n\n/**\n * Return the representation of the state of this item.\n *\n * @return {Object} State of the object\n */\nFilterItem.prototype.getState = function () {\n\treturn {\n\t\tselected: this.isSelected(),\n\t\tincluded: this.isIncluded(),\n\t\tconflicted: this.isConflicted(),\n\t\tfullyCovered: this.isFullyCovered()\n\t};\n};\n\n/**\n * Get the message for the display area for the currently active conflict\n *\n * @return {string} Conflict result message key\n */\nFilterItem.prototype.getCurrentConflictResultMessage = function () {\n\tlet details;\n\n\t// First look in filter's own conflicts\n\tdetails = this.getConflictDetails( this.getOwnConflicts(), 'globalDescription' );\n\tif ( !details.message ) {\n\t\t// Fall back onto conflicts in the group\n\t\tdetails = this.getConflictDetails( this.getGroupModel().getConflicts(), 'globalDescription' );\n\t}\n\n\treturn details.message;\n};\n\n/**\n * Get the details of the active conflict on this filter\n *\n * @private\n * @param {Object} conflicts Conflicts to examine\n * @param {string} [key='contextDescription'] Message key\n * @return {Object} Object with conflict message and conflict items\n * @return {string} return.message Conflict message\n * @return {string[]} return.names Conflicting item labels\n */\nFilterItem.prototype.getConflictDetails = function ( conflicts, key ) {\n\tlet group,\n\t\tconflictMessage = '';\n\tconst itemLabels = [];\n\n\tkey = key || 'contextDescription';\n\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( conflicts, ( filterName, conflict ) => {\n\t\tif ( !conflict.item.isSelected() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !conflictMessage ) {\n\t\t\tconflictMessage = conflict[ key ];\n\t\t\tgroup = conflict.group;\n\t\t}\n\n\t\tif ( group === conflict.group ) {\n\t\t\titemLabels.push( mw.msg( 'quotation-marks', conflict.item.getLabel() ) );\n\t\t}\n\t} );\n\n\treturn {\n\t\tmessage: conflictMessage,\n\t\tnames: itemLabels\n\t};\n\n};\n\n/**\n * @inheritdoc\n */\nFilterItem.prototype.getStateMessage = function () {\n\tlet messageKey, details, superset,\n\t\taffectingItems = [];\n\n\tif ( this.isSelected() ) {\n\t\tif ( this.isConflicted() ) {\n\t\t\t// First look in filter's own conflicts\n\t\t\tdetails = this.getConflictDetails( this.getOwnConflicts() );\n\t\t\tif ( !details.message ) {\n\t\t\t\t// Fall back onto conflicts in the group\n\t\t\t\tdetails = this.getConflictDetails( this.getGroupModel().getConflicts() );\n\t\t\t}\n\n\t\t\tmessageKey = details.message;\n\t\t\taffectingItems = details.names;\n\t\t} else if ( this.isIncluded() && !this.isHighlighted() ) {\n\t\t\t// We only show the 'no effect' full-coverage message\n\t\t\t// if the item is also not highlighted. See T161273\n\t\t\tsuperset = this.getSuperset();\n\t\t\t// For this message we need to collect the affecting superset\n\t\t\taffectingItems = this.getGroupModel().findSelectedItems( this )\n\t\t\t\t.filter( ( item ) => superset.includes( item.getName() ) )\n\t\t\t\t.map( ( item ) => mw.msg( 'quotation-marks', item.getLabel() ) );\n\n\t\t\tmessageKey = 'rcfilters-state-message-subset';\n\t\t} else if ( this.isFullyCovered() && !this.isHighlighted() ) {\n\t\t\taffectingItems = this.getGroupModel().findSelectedItems( this )\n\t\t\t\t.map( ( item ) => mw.msg( 'quotation-marks', item.getLabel() ) );\n\n\t\t\tmessageKey = 'rcfilters-state-message-fullcoverage';\n\t\t}\n\t}\n\n\tif ( messageKey ) {\n\t\t// Build message\n\t\t// The following messages are used here:\n\t\t// * rcfilters-state-message-subset\n\t\t// * rcfilters-state-message-fullcoverage\n\t\t// * conflict.message values...\n\t\treturn mw.msg(\n\t\t\tmessageKey,\n\t\t\tmw.language.listToText( affectingItems ),\n\t\t\taffectingItems.length\n\t\t);\n\t}\n\n\t// Display description\n\treturn this.getDescription();\n};\n\n/**\n * Get the model of the group this filter belongs to\n *\n * @ignore\n * @return {mw.rcfilters.dm.FilterGroup} Filter group model\n */\nFilterItem.prototype.getGroupModel = function () {\n\treturn this.groupModel;\n};\n\n/**\n * Get the group name this filter belongs to\n *\n * @return {string} Filter group name\n */\nFilterItem.prototype.getGroupName = function () {\n\treturn this.groupModel.getName();\n};\n\n/**\n * Get filter subset\n * This is a list of filter names that are defined to be included\n * when this filter is selected.\n *\n * @return {string[]} Filter subset\n */\nFilterItem.prototype.getSubset = function () {\n\treturn this.subset;\n};\n\n/**\n * Get filter superset\n * This is a generated list of filters that define this filter\n * to be included when either of them is selected.\n *\n * @return {string[]} Filter superset\n */\nFilterItem.prototype.getSuperset = function () {\n\treturn this.superset;\n};\n\n/**\n * Check whether the filter is currently in a conflict state\n *\n * @return {boolean} Filter is in conflict state\n */\nFilterItem.prototype.isConflicted = function () {\n\treturn this.conflicted;\n};\n\n/**\n * Check whether the filter is currently in an already included subset\n *\n * @return {boolean} Filter is in an already-included subset\n */\nFilterItem.prototype.isIncluded = function () {\n\treturn this.included;\n};\n\n/**\n * Check whether the filter is currently fully covered\n *\n * @return {boolean} Filter is in fully-covered state\n */\nFilterItem.prototype.isFullyCovered = function () {\n\treturn this.fullyCovered;\n};\n\n/**\n * Get all conflicts associated with this filter or its group\n *\n * Conflict object is set up by filter name keys and conflict\n * definition. For example:\n *\n *  {\n *      filterName: {\n *          filter: filterName,\n *          group: group1,\n *          label: itemLabel,\n *          item: itemModel\n *      }\n *      filterName2: {\n *          filter: filterName2,\n *          group: group2\n *          label: itemLabel2,\n *          item: itemModel2\n *      }\n *  }\n *\n * @return {Object} Filter conflicts\n */\nFilterItem.prototype.getConflicts = function () {\n\treturn Object.assign( {}, this.conflicts, this.getGroupModel().getConflicts() );\n};\n\n/**\n * Get the conflicts associated with this filter\n *\n * @return {Object} Filter conflicts\n */\nFilterItem.prototype.getOwnConflicts = function () {\n\treturn this.conflicts;\n};\n\n/**\n * Set conflicts for this filter. See #getConflicts for the expected\n * structure of the definition.\n *\n * @param {Object} conflicts Conflicts for this filter\n */\nFilterItem.prototype.setConflicts = function ( conflicts ) {\n\tthis.conflicts = conflicts || {};\n};\n\n/**\n * Set filter superset\n *\n * @param {string[]} superset Filter superset\n */\nFilterItem.prototype.setSuperset = function ( superset ) {\n\tthis.superset = superset || [];\n};\n\n/**\n * Set filter subset\n *\n * @param {string[]} subset Filter subset\n */\nFilterItem.prototype.setSubset = function ( subset ) {\n\tthis.subset = subset || [];\n};\n\n/**\n * Check whether a filter exists in the subset list for this filter\n *\n * @param {string} filterName Filter name\n * @return {boolean} Filter name is in the subset list\n */\nFilterItem.prototype.existsInSubset = function ( filterName ) {\n\treturn this.subset.includes( filterName );\n};\n\n/**\n * Check whether this item has a potential conflict with the given item\n *\n * This checks whether the given item is in the list of conflicts of\n * the current item, but makes no judgment about whether the conflict\n * is currently at play (either one of the items may not be selected)\n *\n * @param {mw.rcfilters.dm.FilterItem} filterItem Filter item\n * @return {boolean} This item has a conflict with the given item\n */\nFilterItem.prototype.existsInConflicts = function ( filterItem ) {\n\treturn Object.prototype.hasOwnProperty.call( this.getConflicts(), filterItem.getName() );\n};\n\n/**\n * Set the state of this filter as being conflicted\n * (This means any filters in its conflicts are selected)\n *\n * @param {boolean} [conflicted] Filter is in conflict state\n * @fires update\n */\nFilterItem.prototype.toggleConflicted = function ( conflicted ) {\n\tconflicted = conflicted === undefined ? !this.conflicted : conflicted;\n\n\tif ( this.conflicted !== conflicted ) {\n\t\tthis.conflicted = conflicted;\n\t\tthis.emit( 'update' );\n\t}\n};\n\n/**\n * Set the state of this filter as being already included\n * (This means any filters in its superset are selected)\n *\n * @param {boolean} [included] Filter is included as part of a subset\n * @fires update\n */\nFilterItem.prototype.toggleIncluded = function ( included ) {\n\tincluded = included === undefined ? !this.included : included;\n\n\tif ( this.included !== included ) {\n\t\tthis.included = included;\n\t\tthis.emit( 'update' );\n\t}\n};\n\n/**\n * Toggle the fully covered state of the item\n *\n * @param {boolean} [isFullyCovered] Filter is fully covered\n * @fires update\n */\nFilterItem.prototype.toggleFullyCovered = function ( isFullyCovered ) {\n\tisFullyCovered = isFullyCovered === undefined ? !this.fullycovered : isFullyCovered;\n\n\tif ( this.fullyCovered !== isFullyCovered ) {\n\t\tthis.fullyCovered = isFullyCovered;\n\t\tthis.emit( 'update' );\n\t}\n};\n\n/**\n * Toggle the visibility of this item\n *\n * @param {boolean} [isVisible] Item is visible\n */\nFilterItem.prototype.toggleVisible = function ( isVisible ) {\n\tisVisible = isVisible === undefined ? !this.visible : !!isVisible;\n\n\tif ( this.visible !== isVisible ) {\n\t\tthis.visible = isVisible;\n\t\tthis.emit( 'update' );\n\t}\n};\n\n/**\n * Check whether the item is visible\n *\n * @return {boolean} Item is visible\n */\nFilterItem.prototype.isVisible = function () {\n\treturn this.visible;\n};\n\nmodule.exports = FilterItem;\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/dm/FiltersViewModel.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'searchChange' is undefined.","line":1185,"column":1,"nodeType":"Block","endLine":1185,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":116,"column":3,"nodeType":"CallExpression","endLine":164,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":240,"column":4,"nodeType":"CallExpression","endLine":279,"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":305,"column":29,"nodeType":"CallExpression","endLine":305,"endColumn":49,"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":311,"column":56,"nodeType":"CallExpression","endLine":311,"endColumn":89,"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":313,"column":68,"nodeType":"CallExpression","endLine":313,"endColumn":107,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":327,"column":2,"nodeType":"CallExpression","endLine":363,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":374,"column":2,"nodeType":"CallExpression","endLine":376,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":380,"column":2,"nodeType":"CallExpression","endLine":384,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":388,"column":2,"nodeType":"CallExpression","endLine":405,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":424,"column":2,"nodeType":"CallExpression","endLine":426,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":480,"column":2,"nodeType":"CallExpression","endLine":484,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":575,"column":2,"nodeType":"CallExpression","endLine":579,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":599,"column":2,"nodeType":"CallExpression","endLine":601,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":675,"column":2,"nodeType":"CallExpression","endLine":679,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":693,"column":2,"nodeType":"CallExpression","endLine":702,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":716,"column":2,"nodeType":"CallExpression","endLine":720,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":753,"column":2,"nodeType":"CallExpression","endLine":761,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":789,"column":2,"nodeType":"CallExpression","endLine":799,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":804,"column":2,"nodeType":"CallExpression","endLine":806,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":1107,"column":2,"nodeType":"CallExpression","endLine":1109,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":1145,"column":2,"nodeType":"CallExpression","endLine":1149,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":1199,"column":3,"nodeType":"CallExpression","endLine":1203,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"const FilterGroup = require( './FilterGroup.js' ),\n\tFilterItem = require( './FilterItem.js' ),\n\tutils = require( '../utils.js' );\n\n/**\n * View model for the filters selection and display.\n *\n * @class mw.rcfilters.dm.FiltersViewModel\n * @ignore\n * @mixes OO.EventEmitter\n * @mixes OO.EmitterList\n */\nconst FiltersViewModel = function MwRcfiltersDmFiltersViewModel() {\n\t// Mixin constructor\n\tOO.EventEmitter.call( this );\n\tOO.EmitterList.call( this );\n\n\tthis.groups = {};\n\tthis.defaultParams = {};\n\tthis.highlightEnabled = false;\n\tthis.parameterMap = {};\n\tthis.emptyParameterState = null;\n\n\tthis.views = {};\n\tthis.currentView = 'default';\n\tthis.searchQuery = null;\n\n\t// Events\n\tthis.aggregate( { update: 'filterItemUpdate' } );\n\tthis.connect( this, { filterItemUpdate: [ 'emit', 'itemUpdate' ] } );\n};\n\n/* Initialization */\nOO.initClass( FiltersViewModel );\nOO.mixinClass( FiltersViewModel, OO.EventEmitter );\nOO.mixinClass( FiltersViewModel, OO.EmitterList );\n\n/* Events */\n\n/**\n * Filter list is initialized.\n *\n * @event initialize\n * @ignore\n */\n\n/**\n * Model has been updated.\n *\n * @event update\n * @ignore\n */\n\n/**\n * Filter item has changed.\n *\n * @event itemUpdate\n * @param {mw.rcfilters.dm.FilterItem} item Filter item updated\n * @ignore\n */\n\n/**\n * Highlight feature has been toggled enabled or disabled.\n *\n * @event highlightChange\n * @param {boolean} Highlight feature is enabled\n * @ignore\n */\n\n/* Methods */\n\n/**\n * Re-assess the states of filter items based on the interactions between them\n *\n * @param {mw.rcfilters.dm.FilterItem} [item] Changed item. If not given, the\n *  method will go over the state of all items\n */\nFiltersViewModel.prototype.reassessFilterInteractions = function ( item ) {\n\tconst iterationItems = item !== undefined ? [ item ] : this.getItems();\n\n\titerationItems.forEach( ( checkedItem ) => {\n\t\tconst allCheckedItems = checkedItem.getSubset().concat( [ checkedItem.getName() ] ),\n\t\t\tgroupModel = checkedItem.getGroupModel();\n\n\t\t// Check for subsets (included filters) plus the item itself:\n\t\tallCheckedItems.forEach( ( filterItemName ) => {\n\t\t\tconst itemInSubset = this.getItemByName( filterItemName );\n\n\t\t\titemInSubset.toggleIncluded(\n\t\t\t\t// If any of itemInSubset's supersets are selected, this item\n\t\t\t\t// is included\n\t\t\t\titemInSubset.getSuperset().some( ( supersetName ) => ( this.getItemByName( supersetName ).isSelected() ) )\n\t\t\t);\n\t\t} );\n\n\t\t// Update coverage for the changed group\n\t\tif ( groupModel.isFullCoverage() ) {\n\t\t\tconst allSelected = groupModel.areAllSelected();\n\t\t\tgroupModel.getItems().forEach( ( filterItem ) => {\n\t\t\t\tfilterItem.toggleFullyCovered( allSelected );\n\t\t\t} );\n\t\t}\n\t} );\n\n\t// Check for conflicts\n\t// In this case, we must go over all items, since\n\t// conflicts are bidirectional and depend not only on\n\t// individual items, but also on the selected states of\n\t// the groups they're in.\n\tthis.getItems().forEach( ( filterItem ) => {\n\t\tlet inConflict = false;\n\t\tconst filterItemGroup = filterItem.getGroupModel();\n\n\t\t// For each item, see if that item is still conflicting\n\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t$.each( this.groups, ( groupName, groupModel ) => {\n\t\t\tif ( filterItem.getGroupName() === groupName ) {\n\t\t\t\t// Check inside the group\n\t\t\t\tinConflict = groupModel.areAnySelectedInConflictWith( filterItem );\n\t\t\t} else {\n\t\t\t\t// According to the spec, if two items conflict from two different\n\t\t\t\t// groups, the conflict only lasts if the groups **only have selected\n\t\t\t\t// items that are conflicting**. If a group has selected items that\n\t\t\t\t// are conflicting and non-conflicting, the scope of the result has\n\t\t\t\t// expanded enough to completely remove the conflict.\n\n\t\t\t\t// For example, see two groups with conflicts:\n\t\t\t\t// userExpLevel: [\n\t\t\t\t//   {\n\t\t\t\t//     name: 'experienced',\n\t\t\t\t//     conflicts: [ 'unregistered' ]\n\t\t\t\t//   }\n\t\t\t\t// ],\n\t\t\t\t// registration: [\n\t\t\t\t//   {\n\t\t\t\t//     name: 'registered',\n\t\t\t\t//   },\n\t\t\t\t//   {\n\t\t\t\t//     name: 'unregistered',\n\t\t\t\t//   }\n\t\t\t\t// ]\n\t\t\t\t// If we select 'experienced', then 'unregistered' is in conflict (and vice versa),\n\t\t\t\t// because, inherently, 'experienced' filter only includes registered users, and so\n\t\t\t\t// both filters are in conflict with one another.\n\t\t\t\t// However, the minute we select 'registered', the scope of our results\n\t\t\t\t// has expanded to no longer have a conflict with 'experienced' filter, and\n\t\t\t\t// so the conflict is removed.\n\n\t\t\t\t// In our case, we need to check if the entire group conflicts with\n\t\t\t\t// the entire item's group, so we follow the above spec\n\t\t\t\tinConflict = (\n\t\t\t\t\t// The foreign group is in conflict with this item\n\t\t\t\t\tgroupModel.areAllSelectedInConflictWith( filterItem ) &&\n\t\t\t\t\t// Every selected member of the item's own group is also\n\t\t\t\t\t// in conflict with the other group\n\t\t\t\t\tfilterItemGroup.findSelectedItems().every( ( otherGroupItem ) => groupModel.areAllSelectedInConflictWith( otherGroupItem ) )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// If we're in conflict, this will return 'false' which\n\t\t\t// will break the loop. Otherwise, we're not in conflict\n\t\t\t// and the loop continues\n\t\t\treturn !inConflict;\n\t\t} );\n\n\t\t// Toggle the item state\n\t\tfilterItem.toggleConflicted( inConflict );\n\t} );\n};\n\n/**\n * Get whether the model has any conflict in its items\n *\n * @return {boolean} There is a conflict\n */\nFiltersViewModel.prototype.hasConflict = function () {\n\treturn this.getItems().some( ( filterItem ) => filterItem.isSelected() && filterItem.isConflicted() );\n};\n\n/**\n * Get the first item with a current conflict\n *\n * @ignore\n * @return {mw.rcfilters.dm.FilterItem|undefined} Conflicted item or undefined when not found\n */\nFiltersViewModel.prototype.getFirstConflictedItem = function () {\n\tconst items = this.getItems();\n\tfor ( let i = 0; i < items.length; i++ ) {\n\t\tconst filterItem = items[ i ];\n\t\tif ( filterItem.isSelected() && filterItem.isConflicted() ) {\n\t\t\treturn filterItem;\n\t\t}\n\t}\n};\n\n/**\n * Set filters and preserve a group relationship based on\n * the definition given by an object\n *\n * @param {Array} filterGroups Filters definition\n * @param {Object} [views] Extra views definition\n *  Expected in the following format:\n *  {\n *     namespaces: {\n *       label: 'namespaces', // Message key\n *       trigger: ':',\n *       groups: [\n *         {\n *            // Group info\n *            name: 'namespaces' // Parameter name\n *            title: 'namespaces' // Message key\n *            type: 'string_options',\n *            separator: ';',\n *            labelPrefixKey: { 'default': 'rcfilters-tag-prefix-namespace', inverted: 'rcfilters-tag-prefix-namespace-inverted' },\n *            fullCoverage: true\n *            items: []\n *         }\n *       ]\n *     }\n *  }\n */\nFiltersViewModel.prototype.initializeFilters = function ( filterGroups, views ) {\n\tconst items = [],\n\t\tgroupConflictMap = {},\n\t\tfilterConflictMap = {},\n\t\t/*!\n\t\t * Expand a conflict definition from group name to\n\t\t * the list of all included filters in that group.\n\t\t * We do this so that the direct relationship in the\n\t\t * models are consistently item->items rather than\n\t\t * mixing item->group with item->item.\n\t\t *\n\t\t * @param {Object} obj Conflict definition\n\t\t * @return {Object} Expanded conflict definition\n\t\t */\n\t\texpandConflictDefinitions = ( obj ) => {\n\t\t\tconst result = {};\n\n\t\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t\t$.each( obj, ( key, conflicts ) => {\n\t\t\t\tconst adjustedConflicts = {};\n\n\t\t\t\tconflicts.forEach( ( conflict ) => {\n\t\t\t\t\tlet filter;\n\n\t\t\t\t\tif ( conflict.filter ) {\n\t\t\t\t\t\tconst filterName = this.groups[ conflict.group ].getPrefixedName( conflict.filter );\n\t\t\t\t\t\tfilter = this.getItemByName( filterName );\n\n\t\t\t\t\t\t// Rename\n\t\t\t\t\t\tadjustedConflicts[ filterName ] = Object.assign(\n\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\tconflict,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfilter: filterName,\n\t\t\t\t\t\t\t\titem: filter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// This conflict is for an entire group. Split it up to\n\t\t\t\t\t\t// represent each filter\n\n\t\t\t\t\t\t// Get the relevant group items\n\t\t\t\t\t\tthis.groups[ conflict.group ].getItems().forEach( ( groupItem ) => {\n\t\t\t\t\t\t\t// Rebuild the conflict\n\t\t\t\t\t\t\tadjustedConflicts[ groupItem.getName() ] = Object.assign(\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\tconflict,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tfilter: groupItem.getName(),\n\t\t\t\t\t\t\t\t\titem: groupItem\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tresult[ key ] = adjustedConflicts;\n\t\t\t} );\n\n\t\t\treturn result;\n\t\t};\n\n\t// Reset\n\tthis.clearItems();\n\tthis.groups = {};\n\tthis.views = {};\n\n\t// Clone\n\tfilterGroups = OO.copy( filterGroups );\n\n\t// Normalize definition from the server\n\tfilterGroups.forEach( ( data ) => {\n\t\tlet i;\n\t\t// What's this information needs to be normalized\n\t\tdata.whatsThis = {\n\t\t\tbody: data.whatsThisBody,\n\t\t\theader: data.whatsThisHeader,\n\t\t\tlinkText: data.whatsThisLinkText,\n\t\t\turl: data.whatsThisUrl\n\t\t};\n\n\t\t// Title is a msg-key\n\t\t// eslint-disable-next-line mediawiki/msg-doc\n\t\tdata.title = data.title ? mw.msg( data.title ) : data.name;\n\n\t\t// Filters are given to us with msg-keys, we need\n\t\t// to translate those before we hand them off\n\t\tfor ( i = 0; i < data.filters.length; i++ ) {\n\t\t\t// eslint-disable-next-line mediawiki/msg-doc\n\t\t\tdata.filters[ i ].label = data.filters[ i ].label ? mw.msg( data.filters[ i ].label ) : data.filters[ i ].name;\n\t\t\t// eslint-disable-next-line mediawiki/msg-doc\n\t\t\tdata.filters[ i ].description = data.filters[ i ].description ? mw.msg( data.filters[ i ].description ) : '';\n\t\t}\n\t} );\n\n\t// Collect views\n\tconst allViews = $.extend( true, {\n\t\tdefault: {\n\t\t\ttitle: mw.msg( 'rcfilters-filterlist-title' ),\n\t\t\tgroups: filterGroups\n\t\t}\n\t}, views );\n\n\t// Go over all views\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( allViews, ( viewName, viewData ) => {\n\t\t// Define the view\n\t\tthis.views[ viewName ] = {\n\t\t\tname: viewData.name,\n\t\t\ttitle: viewData.title,\n\t\t\ttrigger: viewData.trigger\n\t\t};\n\n\t\t// Go over groups\n\t\tviewData.groups.forEach( ( groupData ) => {\n\t\t\tconst group = groupData.name;\n\n\t\t\tif ( !this.groups[ group ] ) {\n\t\t\t\tthis.groups[ group ] = new FilterGroup(\n\t\t\t\t\tgroup,\n\t\t\t\t\t$.extend( true, {}, groupData, { view: viewName } )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.groups[ group ].initializeFilters( groupData.filters, groupData.default );\n\t\t\titems.push( ...this.groups[ group ].getItems() );\n\n\t\t\t// Prepare conflicts\n\t\t\tif ( groupData.conflicts ) {\n\t\t\t\t// Group conflicts\n\t\t\t\tgroupConflictMap[ group ] = groupData.conflicts;\n\t\t\t}\n\n\t\t\tgroupData.filters.forEach( ( itemData ) => {\n\t\t\t\tconst filterItem = this.groups[ group ].getItemByParamName( itemData.name );\n\t\t\t\t// Filter conflicts\n\t\t\t\tif ( itemData.conflicts ) {\n\t\t\t\t\tfilterConflictMap[ filterItem.getName() ] = itemData.conflicts;\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t} );\n\n\t// Add item references to the model, for lookup\n\tthis.addItems( items );\n\n\t// Expand conflicts\n\tconst groupConflictResult = expandConflictDefinitions( groupConflictMap );\n\tconst filterConflictResult = expandConflictDefinitions( filterConflictMap );\n\n\t// Set conflicts for groups\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( groupConflictResult, ( group, conflicts ) => {\n\t\tthis.groups[ group ].setConflicts( conflicts );\n\t} );\n\n\t// Set conflicts for items\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( filterConflictResult, ( filterName, conflicts ) => {\n\t\tconst filterItem = this.getItemByName( filterName );\n\t\t// set conflicts for items in the group\n\t\tfilterItem.setConflicts( conflicts );\n\t} );\n\n\t// Create a map between known parameters and their models\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( this.groups, ( group, groupModel ) => {\n\t\tif (\n\t\t\tgroupModel.getType() === 'send_unselected_if_any' ||\n\t\t\tgroupModel.getType() === 'boolean' ||\n\t\t\tgroupModel.getType() === 'any_value'\n\t\t) {\n\t\t\t// Individual filters\n\t\t\tgroupModel.getItems().forEach( ( filterItem ) => {\n\t\t\t\tthis.parameterMap[ filterItem.getParamName() ] = filterItem;\n\t\t\t} );\n\t\t} else if (\n\t\t\tgroupModel.getType() === 'string_options' ||\n\t\t\tgroupModel.getType() === 'single_option'\n\t\t) {\n\t\t\t// Group\n\t\t\tthis.parameterMap[ groupModel.getName() ] = groupModel;\n\t\t}\n\t} );\n\n\tthis.setSearch( '' );\n\n\tthis.updateHighlightedState();\n\n\t// Finish initialization\n\tthis.emit( 'initialize' );\n};\n\n/**\n * Update filter view model state based on a parameter object\n *\n * @param {Object} params Parameters object\n */\nFiltersViewModel.prototype.updateStateFromParams = function ( params ) {\n\t// For arbitrary numeric single_option values make sure the values\n\t// are normalized to fit within the limits\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( this.getFilterGroups(), ( groupName, groupModel ) => {\n\t\tparams[ groupName ] = groupModel.normalizeArbitraryValue( params[ groupName ] );\n\t} );\n\n\t// Update filter values\n\tconst filtersValue = this.getFiltersFromParameters( params );\n\tfor ( const filterName in filtersValue ) {\n\t\tthis.getItemByName( filterName ).setValue( filtersValue[ filterName ] );\n\t}\n\n\t// Update highlight state\n\tthis.getItemsSupportingHighlights().forEach( ( filterItem ) => {\n\t\tconst color = params[ filterItem.getName() + '_color' ];\n\t\tif ( color ) {\n\t\t\tfilterItem.setHighlightColor( color );\n\t\t} else {\n\t\t\tfilterItem.clearHighlightColor();\n\t\t}\n\t} );\n\tthis.updateHighlightedState();\n\n\t// Check all filter interactions\n\tthis.reassessFilterInteractions();\n};\n\n/**\n * Get a representation of an empty (falsey) parameter state\n *\n * @return {Object} Empty parameter state\n */\nFiltersViewModel.prototype.getEmptyParameterState = function () {\n\tif ( !this.emptyParameterState ) {\n\t\tthis.emptyParameterState = $.extend(\n\t\t\ttrue,\n\t\t\t{},\n\t\t\tthis.getParametersFromFilters( {} ),\n\t\t\tthis.getEmptyHighlightParameters()\n\t\t);\n\t}\n\treturn this.emptyParameterState;\n};\n\n/**\n * Get a representation of only the non-falsey parameters\n *\n * @param {Object} [parameters] A given parameter state to minimize. If not given the current\n *  state of the system will be used.\n * @return {Object} Empty parameter state\n */\nFiltersViewModel.prototype.getMinimizedParamRepresentation = function ( parameters ) {\n\tconst result = {};\n\n\tparameters = parameters ? $.extend( true, {}, parameters ) : this.getCurrentParameterState();\n\n\t// Params\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( this.getEmptyParameterState(), ( param, value ) => {\n\t\tif ( parameters[ param ] !== undefined && parameters[ param ] !== value ) {\n\t\t\tresult[ param ] = parameters[ param ];\n\t\t}\n\t} );\n\n\t// Highlights\n\tfor ( const param in this.getEmptyHighlightParameters() ) {\n\t\tif ( parameters[ param ] ) {\n\t\t\t// If a highlight parameter is not undefined and not null\n\t\t\t// add it to the result\n\t\t\tresult[ param ] = parameters[ param ];\n\t\t}\n\t}\n\n\treturn result;\n};\n\n/**\n * Get a representation of the full parameter list, including all base values\n *\n * @return {Object} Full parameter representation\n */\nFiltersViewModel.prototype.getExpandedParamRepresentation = function () {\n\treturn $.extend(\n\t\ttrue,\n\t\t{},\n\t\tthis.getEmptyParameterState(),\n\t\tthis.getCurrentParameterState()\n\t);\n};\n\n/**\n * Get a parameter representation of the current state of the model\n *\n * @param {boolean} [removeStickyParams] Remove sticky filters from final result\n * @return {Object} Parameter representation of the current state of the model\n */\nFiltersViewModel.prototype.getCurrentParameterState = function ( removeStickyParams ) {\n\tlet state = this.getMinimizedParamRepresentation( $.extend(\n\t\ttrue,\n\t\t{},\n\t\tthis.getParametersFromFilters( this.getSelectedState() ),\n\t\tthis.getHighlightParameters()\n\t) );\n\n\tif ( removeStickyParams ) {\n\t\tstate = this.removeStickyParams( state );\n\t}\n\n\treturn state;\n};\n\n/**\n * Delete sticky parameters from given object.\n *\n * @param {Object} paramState Parameter state\n * @return {Object} Parameter state without sticky parameters\n */\nFiltersViewModel.prototype.removeStickyParams = function ( paramState ) {\n\tthis.getStickyParams().forEach( ( paramName ) => {\n\t\tdelete paramState[ paramName ];\n\t} );\n\n\treturn paramState;\n};\n\n/**\n * Turn the highlight feature on or off\n */\nFiltersViewModel.prototype.updateHighlightedState = function () {\n\tthis.toggleHighlight( this.getHighlightedItems().length > 0 );\n};\n\n/**\n * Get the object that defines groups by their name.\n *\n * @return {Object} Filter groups\n */\nFiltersViewModel.prototype.getFilterGroups = function () {\n\treturn this.groups;\n};\n\n/**\n * Get the object that defines groups that match a certain view by their name.\n *\n * @param {string} [view] Requested view. If not given, uses current view\n * @return {Object} Filter groups matching a display group\n */\nFiltersViewModel.prototype.getFilterGroupsByView = function ( view ) {\n\tconst result = {};\n\n\tview = view || this.getCurrentView();\n\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( this.groups, ( groupName, groupModel ) => {\n\t\tif ( groupModel.getView() === view ) {\n\t\t\tresult[ groupName ] = groupModel;\n\t\t}\n\t} );\n\n\treturn result;\n};\n\n/**\n * Get an array of filters matching the given display group.\n *\n * @ignore\n * @param {string} [view] Requested view. If not given, uses current view\n * @return {mw.rcfilters.dm.FilterItem} Filter items matching the group\n */\nFiltersViewModel.prototype.getFiltersByView = function ( view ) {\n\tconst result = [];\n\n\tview = view || this.getCurrentView();\n\n\tconst groups = this.getFilterGroupsByView( view );\n\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( groups, ( groupName, groupModel ) => {\n\t\tresult.push( ...groupModel.getItems() );\n\t} );\n\n\treturn result;\n};\n\n/**\n * Get the trigger for the requested view.\n *\n * @param {string} view View name\n * @return {string} View trigger, if exists\n */\nFiltersViewModel.prototype.getViewTrigger = function ( view ) {\n\treturn ( this.views[ view ] && this.views[ view ].trigger ) || '';\n};\n\n/**\n * Get the value of a specific parameter\n *\n * @param {string} name Parameter name\n * @return {number|string} Parameter value\n */\nFiltersViewModel.prototype.getParamValue = function ( name ) {\n\treturn this.parameters[ name ];\n};\n\n/**\n * Get the current selected state of the filters\n *\n * @param {boolean} [onlySelected] return an object containing only the filters with a value\n * @return {Object} Filters selected state\n */\nFiltersViewModel.prototype.getSelectedState = function ( onlySelected ) {\n\tconst items = this.getItems(),\n\t\tresult = {};\n\n\tfor ( let i = 0; i < items.length; i++ ) {\n\t\tif ( !onlySelected || items[ i ].getValue() ) {\n\t\t\tresult[ items[ i ].getName() ] = items[ i ].getValue();\n\t\t}\n\t}\n\n\treturn result;\n};\n\n/**\n * Get the current full state of the filters\n *\n * @return {Object} Filters full state\n */\nFiltersViewModel.prototype.getFullState = function () {\n\tconst items = this.getItems(),\n\t\tresult = {};\n\n\tfor ( let i = 0; i < items.length; i++ ) {\n\t\tresult[ items[ i ].getName() ] = {\n\t\t\tselected: items[ i ].isSelected(),\n\t\t\tconflicted: items[ i ].isConflicted(),\n\t\t\tincluded: items[ i ].isIncluded()\n\t\t};\n\t}\n\n\treturn result;\n};\n\n/**\n * Get an object representing default parameters state\n *\n * @return {Object} Default parameter values\n */\nFiltersViewModel.prototype.getDefaultParams = function () {\n\tconst result = {};\n\n\t// Get default filter state\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( this.groups, ( name, model ) => {\n\t\tif ( !model.isSticky() ) {\n\t\t\t$.extend( true, result, model.getDefaultParams() );\n\t\t}\n\t} );\n\n\treturn result;\n};\n\n/**\n * Get a parameter representation of all sticky parameters\n *\n * @return {Object} Sticky parameter values\n */\nFiltersViewModel.prototype.getStickyParams = function () {\n\tlet result = [];\n\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( this.groups, ( name, model ) => {\n\t\tif ( model.isSticky() ) {\n\t\t\tif ( model.isPerGroupRequestParameter() ) {\n\t\t\t\tresult.push( name );\n\t\t\t} else {\n\t\t\t\t// Each filter is its own param\n\t\t\t\tresult = result.concat( model.getItems().map( ( filterItem ) => filterItem.getParamName() ) );\n\t\t\t}\n\t\t}\n\t} );\n\n\treturn result;\n};\n\n/**\n * Get a parameter representation of all sticky parameters\n *\n * @return {Object} Sticky parameter values\n */\nFiltersViewModel.prototype.getStickyParamsValues = function () {\n\tconst result = {};\n\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( this.groups, ( name, model ) => {\n\t\tif ( model.isSticky() ) {\n\t\t\t$.extend( true, result, model.getParamRepresentation() );\n\t\t}\n\t} );\n\n\treturn result;\n};\n\n/**\n * Analyze the groups and their filters and output an object representing\n * the state of the parameters they represent.\n *\n * @param {Object} [filterDefinition] An object defining the filter values,\n *  keyed by filter names.\n * @return {Object} Parameter state object\n */\nFiltersViewModel.prototype.getParametersFromFilters = function ( filterDefinition ) {\n\tlet groupItemDefinition;\n\tconst result = {},\n\t\tgroupItems = this.getFilterGroups();\n\n\tif ( filterDefinition ) {\n\t\tgroupItemDefinition = {};\n\t\t// Filter definition is \"flat\", but in effect\n\t\t// each group needs to tell us its result based\n\t\t// on the values in it. We need to split this list\n\t\t// back into groupings so we can \"feed\" it to the\n\t\t// loop below, and we need to expand it so it includes\n\t\t// all filters (set to false)\n\t\tthis.getItems().forEach( ( filterItem ) => {\n\t\t\tgroupItemDefinition[ filterItem.getGroupName() ] = groupItemDefinition[ filterItem.getGroupName() ] || {};\n\t\t\tgroupItemDefinition[ filterItem.getGroupName() ][ filterItem.getName() ] = filterItem.coerceValue( filterDefinition[ filterItem.getName() ] );\n\t\t} );\n\t}\n\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( groupItems, ( group, model ) => {\n\t\tObject.assign(\n\t\t\tresult,\n\t\t\tmodel.getParamRepresentation(\n\t\t\t\tgroupItemDefinition ?\n\t\t\t\t\tgroupItemDefinition[ group ] : null\n\t\t\t)\n\t\t);\n\t} );\n\n\treturn result;\n};\n\n/**\n * This is the opposite of the #getParametersFromFilters method; this goes over\n * the given parameters and translates into a selected/unselected value in the filters.\n *\n * @param {Object} params Parameters query object\n * @return {Object} Filter state object\n */\nFiltersViewModel.prototype.getFiltersFromParameters = function ( params ) {\n\tconst groupMap = {};\n\tlet result = {};\n\n\t// Go over the given parameters, break apart to groupings\n\t// The resulting object represents the group with its parameter\n\t// values. For example:\n\t// {\n\t//    group1: {\n\t//       param1: \"1\",\n\t//       param2: \"0\",\n\t//       param3: \"1\"\n\t//    },\n\t//    group2: \"param4|param5\"\n\t// }\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( params, ( paramName, paramValue ) => {\n\t\tconst itemOrGroup = this.parameterMap[ paramName ];\n\n\t\tif ( itemOrGroup ) {\n\t\t\tconst groupName = itemOrGroup instanceof FilterItem ?\n\t\t\t\titemOrGroup.getGroupName() : itemOrGroup.getName();\n\n\t\t\tgroupMap[ groupName ] = groupMap[ groupName ] || {};\n\t\t\tgroupMap[ groupName ][ paramName ] = paramValue;\n\t\t}\n\t} );\n\n\t// Go over all groups, so we make sure we get the complete output\n\t// even if the parameters don't include a certain group\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( this.groups, ( groupName, groupModel ) => {\n\t\tresult = $.extend( true, {}, result, groupModel.getFilterRepresentation( groupMap[ groupName ] ) );\n\t} );\n\n\treturn result;\n};\n\n/**\n * Get the highlight parameters based on current filter configuration\n *\n * @return {Object} Object where keys are `<filter name>_color` and values\n *                  are the selected highlight colors.\n */\nFiltersViewModel.prototype.getHighlightParameters = function () {\n\tconst highlightEnabled = this.isHighlightEnabled(),\n\t\tresult = {};\n\n\tthis.getItems().forEach( ( filterItem ) => {\n\t\tif ( filterItem.isHighlightSupported() ) {\n\t\t\tresult[ filterItem.getName() + '_color' ] = highlightEnabled && filterItem.isHighlighted() ?\n\t\t\t\tfilterItem.getHighlightColor() :\n\t\t\t\tnull;\n\t\t}\n\t} );\n\n\treturn result;\n};\n\n/**\n * Get an object representing the complete empty state of highlights\n *\n * @return {Object} Object containing all the highlight parameters set to their negative value\n */\nFiltersViewModel.prototype.getEmptyHighlightParameters = function () {\n\tconst result = {};\n\n\tthis.getItems().forEach( ( filterItem ) => {\n\t\tif ( filterItem.isHighlightSupported() ) {\n\t\t\tresult[ filterItem.getName() + '_color' ] = null;\n\t\t}\n\t} );\n\n\treturn result;\n};\n\n/**\n * Get an array of currently applied highlight colors\n *\n * @return {string[]} Currently applied highlight colors\n */\nFiltersViewModel.prototype.getCurrentlyUsedHighlightColors = function () {\n\tconst result = [];\n\n\tif ( this.isHighlightEnabled() ) {\n\t\tthis.getHighlightedItems().forEach( ( filterItem ) => {\n\t\t\tconst color = filterItem.getHighlightColor();\n\n\t\t\tif ( !result.includes( color ) ) {\n\t\t\t\tresult.push( color );\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn result;\n};\n\n/**\n * Sanitize value group of a string_option groups type\n * Remove duplicates and make sure to only use valid\n * values.\n *\n * @private\n * @param {string} groupName Group name\n * @param {string[]} valueArray Array of values\n * @return {string[]} Array of valid values\n */\nFiltersViewModel.prototype.sanitizeStringOptionGroup = function ( groupName, valueArray ) {\n\tconst validNames = this.getGroupFilters( groupName ).map( ( filterItem ) => filterItem.getParamName() );\n\n\treturn utils.normalizeParamOptions( valueArray, validNames );\n};\n\n/**\n * Check whether no visible filter is selected.\n *\n * Filter groups that are hidden or sticky are not shown in the\n * active filters area and therefore not included in this check.\n *\n * @return {boolean} No visible filter is selected\n */\nFiltersViewModel.prototype.areVisibleFiltersEmpty = function () {\n\t// Check if there are either any selected items or any items\n\t// that have highlight enabled\n\treturn !this.getItems().some( ( filterItem ) => {\n\t\tconst visible = !filterItem.getGroupModel().isSticky() && !filterItem.getGroupModel().isHidden(),\n\t\t\tactive = ( filterItem.isSelected() || filterItem.isHighlighted() );\n\t\treturn visible && active;\n\t} );\n};\n\n/**\n * Check whether the namespace invert state is a valid one. A valid invert state is one\n * where there are actual namespaces selected.\n *\n * This is done to compare states to previous ones that may have had the invert model\n * selected but effectively had no namespaces, so are not effectively different than\n * ones where invert is not selected.\n *\n * @return {boolean} Invert is effectively selected\n */\nFiltersViewModel.prototype.areNamespacesEffectivelyInverted = function () {\n\treturn this.getNamespacesInvertModel().isSelected() &&\n\t\tthis.findSelectedItems().some( ( itemModel ) => itemModel.getGroupModel().getName() === 'namespace' );\n};\n\n/**\n * Check whether the tag invert state is a valid one. A valid invert state is one\n * where there are actual tags selected.\n *\n * This is done to compare states to previous ones that may have had the invert model\n * selected but effectively had no tags, so are not effectively different than\n * ones where invert is not selected.\n *\n * @return {boolean} Invert is effectively selected\n */\nFiltersViewModel.prototype.areTagsEffectivelyInverted = function () {\n\treturn this.getTagsInvertModel().isSelected() &&\n\t\tthis.findSelectedItems().some( ( itemModel ) => itemModel.getGroupModel().getName() === 'tagfilter' );\n};\n\n/**\n * Get the item that matches the given name\n *\n * @ignore\n * @param {string} name Filter name\n * @return {mw.rcfilters.dm.FilterItem} Filter item\n */\nFiltersViewModel.prototype.getItemByName = function ( name ) {\n\treturn this.getItems().filter( ( item ) => name === item.getName() )[ 0 ];\n};\n\n/**\n * Set all filters to false or empty/all\n * This is equivalent to display all.\n */\nFiltersViewModel.prototype.emptyAllFilters = function () {\n\tthis.getItems().forEach( ( filterItem ) => {\n\t\tif ( !filterItem.getGroupModel().isSticky() ) {\n\t\t\tthis.toggleFilterSelected( filterItem.getName(), false );\n\t\t}\n\t} );\n};\n\n/**\n * Toggle selected state of one item\n *\n * @param {string} name Name of the filter item\n * @param {boolean} [isSelected] Filter selected state\n */\nFiltersViewModel.prototype.toggleFilterSelected = function ( name, isSelected ) {\n\tconst item = this.getItemByName( name );\n\n\tif ( item ) {\n\t\titem.toggleSelected( isSelected );\n\t}\n};\n\n/**\n * Toggle selected state of items by their names\n *\n * @param {Object} filterDef Filter definitions\n */\nFiltersViewModel.prototype.toggleFiltersSelected = function ( filterDef ) {\n\tfor ( const name in filterDef ) {\n\t\tthis.toggleFilterSelected( name, filterDef[ name ] );\n\t}\n};\n\n/**\n * Get a group model from its name\n *\n * @ignore\n * @param {string} groupName Group name\n * @return {mw.rcfilters.dm.FilterGroup} Group model\n */\nFiltersViewModel.prototype.getGroup = function ( groupName ) {\n\treturn this.groups[ groupName ];\n};\n\n/**\n * Get all filters within a specified group by its name\n *\n * @ignore\n * @param {string} groupName Group name\n * @return {mw.rcfilters.dm.FilterItem[]} Filters belonging to this group\n */\nFiltersViewModel.prototype.getGroupFilters = function ( groupName ) {\n\treturn ( this.getGroup( groupName ) && this.getGroup( groupName ).getItems() ) || [];\n};\n\n/**\n * Find items whose labels match the given string\n *\n * @param {string} query Search string\n * @param {boolean} [returnFlat] Return a flat array. If false, the result\n *  is an object whose keys are the group names and values are an array of\n *  filters per group. If set to true, returns an array of filters regardless\n *  of their groups.\n * @return {Object} An object of items to show\n *  arranged by their group names\n */\nFiltersViewModel.prototype.findMatches = function ( query, returnFlat ) {\n\tconst result = {},\n\t\tflatResult = [],\n\t\tview = this.getViewByTrigger( query.slice( 0, 1 ) ),\n\t\titems = this.getFiltersByView( view );\n\n\t// Normalize so we can search strings regardless of case and view\n\tquery = query.trim().toLowerCase();\n\tif ( view !== 'default' ) {\n\t\tquery = query.slice( 1 );\n\t}\n\t// Trim again to also intercept cases where the spaces were after the trigger\n\t// eg: '#   str'\n\tquery = query.trim();\n\n\t// Check if the search if actually empty; this can be a problem when\n\t// we use prefixes to denote different views\n\tconst searchIsEmpty = query.length === 0;\n\n\t// item label starting with the query string\n\tfor ( let i = 0; i < items.length; i++ ) {\n\t\tif (\n\t\t\tsearchIsEmpty ||\n\t\t\titems[ i ].getLabel().toLowerCase().startsWith( query ) ||\n\t\t\t(\n\t\t\t\t// For tags, we want the parameter name to be included in the search\n\t\t\t\tview === 'tags' &&\n\t\t\t\titems[ i ].getParamName().toLowerCase().includes( query )\n\t\t\t)\n\t\t) {\n\t\t\tresult[ items[ i ].getGroupName() ] = result[ items[ i ].getGroupName() ] || [];\n\t\t\tresult[ items[ i ].getGroupName() ].push( items[ i ] );\n\t\t\tflatResult.push( items[ i ] );\n\t\t}\n\t}\n\n\tif ( $.isEmptyObject( result ) ) {\n\t\t// item containing the query string in their label, description, or group title\n\t\tfor ( let i = 0; i < items.length; i++ ) {\n\t\t\tconst groupTitle = items[ i ].getGroupModel().getTitle();\n\t\t\tif (\n\t\t\t\tsearchIsEmpty ||\n\t\t\t\titems[ i ].getLabel().toLowerCase().includes( query ) ||\n\t\t\t\titems[ i ].getDescription().toLowerCase().includes( query ) ||\n\t\t\t\tgroupTitle.toLowerCase().includes( query ) ||\n\t\t\t\t(\n\t\t\t\t\t// For tags, we want the parameter name to be included in the search\n\t\t\t\t\tview === 'tags' &&\n\t\t\t\t\titems[ i ].getParamName().toLowerCase().includes( query )\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tresult[ items[ i ].getGroupName() ] = result[ items[ i ].getGroupName() ] || [];\n\t\t\t\tresult[ items[ i ].getGroupName() ].push( items[ i ] );\n\t\t\t\tflatResult.push( items[ i ] );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn returnFlat ? flatResult : result;\n};\n\n/**\n * Get items that are highlighted\n *\n * @ignore\n * @return {mw.rcfilters.dm.FilterItem[]} Highlighted items\n */\nFiltersViewModel.prototype.getHighlightedItems = function () {\n\treturn this.getItems().filter( ( filterItem ) => filterItem.isHighlightSupported() &&\n\t\t\tfilterItem.getHighlightColor() );\n};\n\n/**\n * Get items that allow highlights even if they're not currently highlighted\n *\n * @ignore\n * @return {mw.rcfilters.dm.FilterItem[]} Items supporting highlights\n */\nFiltersViewModel.prototype.getItemsSupportingHighlights = function () {\n\treturn this.getItems().filter( ( filterItem ) => filterItem.isHighlightSupported() );\n};\n\n/**\n * Get all selected items\n *\n * @ignore\n * @return {mw.rcfilters.dm.FilterItem[]} Selected items\n */\nFiltersViewModel.prototype.findSelectedItems = function () {\n\tlet allSelected = [];\n\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( this.getFilterGroups(), ( groupName, groupModel ) => {\n\t\tallSelected = allSelected.concat( groupModel.findSelectedItems() );\n\t} );\n\n\treturn allSelected;\n};\n\n/**\n * Get the current view\n *\n * @return {string} Current view\n */\nFiltersViewModel.prototype.getCurrentView = function () {\n\treturn this.currentView;\n};\n\n/**\n * Get the label for the current view\n *\n * @param {string} viewName View name\n * @return {string} Label for the current view\n */\nFiltersViewModel.prototype.getViewTitle = function ( viewName ) {\n\tviewName = viewName || this.getCurrentView();\n\n\treturn this.views[ viewName ] && this.views[ viewName ].title;\n};\n\n/**\n * Get the view that fits the given trigger\n *\n * @param {string} trigger Trigger\n * @return {string} Name of view\n */\nFiltersViewModel.prototype.getViewByTrigger = function ( trigger ) {\n\tlet result = 'default';\n\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( this.views, ( name, data ) => {\n\t\tif ( data.trigger === trigger ) {\n\t\t\tresult = name;\n\t\t}\n\t} );\n\n\treturn result;\n};\n\n/**\n * Return a version of the given string that is without any\n * view triggers.\n *\n * @param {string} str Given string\n * @return {string} Result\n */\nFiltersViewModel.prototype.removeViewTriggers = function ( str ) {\n\tif ( this.getViewFromString( str ) !== 'default' ) {\n\t\tstr = str.slice( 1 );\n\t}\n\n\treturn str;\n};\n\n/**\n * Get the view from the given string by a trigger, if it exists\n *\n * @param {string} str Given string\n * @return {string} View name\n */\nFiltersViewModel.prototype.getViewFromString = function ( str ) {\n\treturn this.getViewByTrigger( str.slice( 0, 1 ) );\n};\n\n/**\n * Set the current search for the system.\n * This also dictates what items and groups are visible according\n * to the search in #findMatches\n *\n * @param {string} searchQuery Search query, including triggers\n * @fires searchChange\n */\nFiltersViewModel.prototype.setSearch = function ( searchQuery ) {\n\tlet visibleGroups, visibleGroupNames;\n\n\tif ( this.searchQuery !== searchQuery ) {\n\t\t// Check if the view changed\n\t\tthis.switchView( this.getViewFromString( searchQuery ) );\n\n\t\tvisibleGroups = this.findMatches( searchQuery );\n\t\tvisibleGroupNames = Object.keys( visibleGroups );\n\n\t\t// Update visibility of items and groups\n\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t$.each( this.getFilterGroups(), ( groupName, groupModel ) => {\n\t\t\t// Check if the group is visible at all\n\t\t\tgroupModel.toggleVisible( visibleGroupNames.includes( groupName ) );\n\t\t\tgroupModel.setVisibleItems( visibleGroups[ groupName ] || [] );\n\t\t} );\n\n\t\tthis.searchQuery = searchQuery;\n\t\tthis.emit( 'searchChange', this.searchQuery );\n\t}\n};\n\n/**\n * Get the current search\n *\n * @return {string} Current search query\n */\nFiltersViewModel.prototype.getSearch = function () {\n\treturn this.searchQuery;\n};\n\n/**\n * Switch the current view\n *\n * @private\n * @param {string} view View name\n */\nFiltersViewModel.prototype.switchView = function ( view ) {\n\tif ( this.views[ view ] && this.currentView !== view ) {\n\t\tthis.currentView = view;\n\t}\n};\n\n/**\n * Toggle the highlight feature on and off.\n * Propagate the change to filter items.\n *\n * @param {boolean} enable Highlight should be enabled\n * @fires highlightChange\n */\nFiltersViewModel.prototype.toggleHighlight = function ( enable ) {\n\tenable = enable === undefined ? !this.highlightEnabled : enable;\n\n\tif ( this.highlightEnabled !== enable ) {\n\t\tthis.highlightEnabled = enable;\n\t\tthis.emit( 'highlightChange', this.highlightEnabled );\n\t}\n};\n\n/**\n * Check if the highlight feature is enabled\n *\n * @return {boolean}\n */\nFiltersViewModel.prototype.isHighlightEnabled = function () {\n\treturn !!this.highlightEnabled;\n};\n\n/**\n * Toggle the inverted tags property on and off.\n * Propagate the change to tag filter items.\n *\n * @param {boolean} enable Inverted property is enabled\n */\nFiltersViewModel.prototype.toggleInvertedTags = function ( enable ) {\n\tthis.toggleFilterSelected( this.getTagsInvertModel().getName(), enable );\n};\n\n/**\n * Toggle the inverted namespaces property on and off.\n * Propagate the change to namespace filter items.\n *\n * @param {boolean} enable Inverted property is enabled\n */\nFiltersViewModel.prototype.toggleInvertedNamespaces = function ( enable ) {\n\tthis.toggleFilterSelected( this.getNamespacesInvertModel().getName(), enable );\n};\n\n/**\n * Get the model object that represents the 'invert' filter\n *\n * @ignore\n * @param {string} view\n * @return {mw.rcfilters.dm.FilterItem|null}\n */\nFiltersViewModel.prototype.getInvertModel = function ( view ) {\n\tif ( view === 'namespaces' ) {\n\t\treturn this.getNamespacesInvertModel();\n\t}\n\tif ( view === 'tags' ) {\n\t\treturn this.getTagsInvertModel();\n\t}\n\n\treturn null;\n};\n\n/**\n * Get the model object that represents the 'invert' filter\n *\n * @ignore\n * @return {mw.rcfilters.dm.FilterItem}\n */\nFiltersViewModel.prototype.getNamespacesInvertModel = function () {\n\treturn this.getGroup( 'invertGroup' ).getItemByParamName( 'invert' );\n};\n\n/**\n * Get the model object that represents the 'invert' filter\n *\n * @ignore\n * @return {mw.rcfilters.dm.FilterItem}\n */\nFiltersViewModel.prototype.getTagsInvertModel = function () {\n\treturn this.getGroup( 'invertTagsGroup' ).getItemByParamName( 'inverttags' );\n};\n\n/**\n * Set highlight color for a specific filter item\n *\n * @param {string} filterName Name of the filter item\n * @param {string} color Selected color\n */\nFiltersViewModel.prototype.setHighlightColor = function ( filterName, color ) {\n\tthis.getItemByName( filterName ).setHighlightColor( color );\n};\n\n/**\n * Clear highlight for a specific filter item\n *\n * @param {string} filterName Name of the filter item\n */\nFiltersViewModel.prototype.clearHighlightColor = function ( filterName ) {\n\tthis.getItemByName( filterName ).clearHighlightColor();\n};\n\nmodule.exports = FiltersViewModel;\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/dm/ItemModel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/dm/SavedQueriesModel.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":109,"column":3,"nodeType":"CallExpression","endLine":113,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":121,"column":2,"nodeType":"CallExpression","endLine":158,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":202,"column":2,"nodeType":"CallExpression","endLine":206,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":232,"column":2,"nodeType":"CallExpression","endLine":238,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/dm/SavedQueryItemModel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/mw.rcfilters.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'structuredChangeFilters.ui.initialized'","line":176,"column":1,"nodeType":"Block","endLine":176,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * Components for use on the RecentChanges page. Provided by the `mediawiki.rcfilters.filters.ui` module.\n *\n * @namespace rcfilters\n * @private\n * @singleton\n */\nconst rcfilters = {\n\tController: require( './Controller.js' ),\n\tHighlightColors: require( './HighlightColors.js' ),\n\tUriProcessor: require( './UriProcessor.js' ),\n\t/**\n\t * Models used by RecentChanges Filters.\n\t *\n\t * @namespace rcfilters.dm\n\t * @private\n\t */\n\tdm: {\n\t\tChangesListViewModel: require( './dm/ChangesListViewModel.js' ),\n\t\tFilterGroup: require( './dm/FilterGroup.js' ),\n\t\tFilterItem: require( './dm/FilterItem.js' ),\n\t\tFiltersViewModel: require( './dm/FiltersViewModel.js' ),\n\t\tItemModel: require( './dm/ItemModel.js' ),\n\t\tSavedQueriesModel: require( './dm/SavedQueriesModel.js' ),\n\t\tSavedQueryItemModel: require( './dm/SavedQueryItemModel.js' )\n\t},\n\t/**\n\t * Widgets used by RecentChanges Filters.\n\t *\n\t * @namespace rcfilters.ui\n\t * @private\n\t */\n\tui: {\n\t\tMainWrapperWidget: require( './ui/MainWrapperWidget.js' )\n\t},\n\t/**\n\t * Utils used by RecentChanges Filters.\n\t *\n\t * @namespace rcfilters.ui\n\t * @private\n\t */\n\tutils: require( './utils.js' )\n};\n\n/**\n * Get list of namespaces and remove unused ones\n *\n * @private\n *\n * @param {Array} unusedNamespaces Names of namespaces to remove\n * @return {Array} Filtered array of namespaces\n */\nfunction getNamespaces( unusedNamespaces ) {\n\tconst namespaceIds = mw.config.get( 'wgNamespaceIds' ),\n\t\tnamespaces = mw.config.get( 'wgFormattedNamespaces' );\n\n\tfor ( let i = 0, length = unusedNamespaces.length; i < length; i++ ) {\n\t\tconst name = unusedNamespaces[ i ];\n\t\tconst id = namespaceIds[ name.toLowerCase() ];\n\t\tdelete namespaces[ id ];\n\t}\n\n\treturn namespaces;\n}\n\n/**\n * @private\n */\nfunction init() {\n\tconst conditionalViews = {},\n\t\t$initialFieldset = $( 'fieldset.cloptions' ),\n\t\tsavedQueriesPreferenceName = mw.config.get( 'wgStructuredChangeFiltersSavedQueriesPreferenceName' ),\n\t\tdaysPreferenceName = mw.config.get( 'wgStructuredChangeFiltersDaysPreferenceName' ),\n\t\tlimitPreferenceName = mw.config.get( 'wgStructuredChangeFiltersLimitPreferenceName' ),\n\t\tactiveFiltersCollapsedName = mw.config.get( 'wgStructuredChangeFiltersCollapsedPreferenceName' ),\n\t\tinitialCollapsedState = mw.config.get( 'wgStructuredChangeFiltersCollapsedState' ),\n\t\tfiltersModel = new rcfilters.dm.FiltersViewModel(),\n\t\tchangesListModel = new rcfilters.dm.ChangesListViewModel( $initialFieldset ),\n\t\tsavedQueriesModel = new rcfilters.dm.SavedQueriesModel( filtersModel ),\n\t\tspecialPage = mw.config.get( 'wgCanonicalSpecialPageName' ),\n\t\tcontroller = new rcfilters.Controller(\n\t\t\tfiltersModel, changesListModel, savedQueriesModel,\n\t\t\t{\n\t\t\t\tsavedQueriesPreferenceName: savedQueriesPreferenceName,\n\t\t\t\tdaysPreferenceName: daysPreferenceName,\n\t\t\t\tlimitPreferenceName: limitPreferenceName,\n\t\t\t\tcollapsedPreferenceName: activeFiltersCollapsedName,\n\t\t\t\tnormalizeTarget: specialPage === 'Recentchangeslinked'\n\t\t\t}\n\t\t);\n\n\t// TODO: The changesListWrapperWidget should be able to initialize\n\t// after the model is ready.\n\n\tlet $topSection;\n\tif ( specialPage === 'Recentchanges' ) {\n\t\t$topSection = $( '.mw-recentchanges-toplinks' ).detach();\n\t} else if ( specialPage === 'Watchlist' ) {\n\t\t$( '.mw-watchlist-owner, .mw-watchlist-toollinks, form#mw-watchlist-resetbutton' ).remove();\n\t\t$topSection = $( '.watchlistDetails' ).detach().contents();\n\t} else if ( specialPage === 'Recentchangeslinked' ) {\n\t\tconditionalViews.recentChangesLinked = {\n\t\t\tgroups: [\n\t\t\t\t{\n\t\t\t\t\tname: 'page',\n\t\t\t\t\ttype: 'any_value',\n\t\t\t\t\ttitle: '',\n\t\t\t\t\thidden: true,\n\t\t\t\t\tsticky: true,\n\t\t\t\t\tfilters: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'target',\n\t\t\t\t\t\t\tdefault: ''\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'toOrFrom',\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\ttitle: '',\n\t\t\t\t\thidden: true,\n\t\t\t\t\tsticky: true,\n\t\t\t\t\tfilters: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'showlinkedto',\n\t\t\t\t\t\t\tdefault: false\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n\n\tconst mainWrapperWidget = new rcfilters.ui.MainWrapperWidget(\n\t\tcontroller,\n\t\tfiltersModel,\n\t\tsavedQueriesModel,\n\t\tchangesListModel,\n\t\t{\n\t\t\t$wrapper: $( document.body ),\n\t\t\t$topSection: $topSection,\n\t\t\t$filtersContainer: $( '.mw-rcfilters-container' ),\n\t\t\t$changesListContainer: $( '.mw-changeslist, .mw-changeslist-empty' ),\n\t\t\t$formContainer: $initialFieldset,\n\t\t\tcollapsed: initialCollapsedState\n\t\t}\n\t);\n\n\t// Remove the -loading class that may have been added on the server side.\n\t// If we are in fact going to load a default saved query, this .initialize()\n\t// call will do that and add the -loading class right back.\n\t$( document.body ).removeClass( 'mw-rcfilters-ui-loading' );\n\n\tcontroller.initialize(\n\t\tmw.config.get( 'wgStructuredChangeFilters' ),\n\t\t// All namespaces without Media namespace\n\t\tgetNamespaces( [ 'Media' ] ),\n\t\trequire( './config.json' ).RCFiltersChangeTags,\n\t\tconditionalViews\n\t);\n\n\tmainWrapperWidget.initFormWidget( specialPage );\n\n\t$( 'a.mw-helplink' ).attr(\n\t\t'href',\n\t\t'https://www.mediawiki.org/wiki/Special:MyLanguage/Help:New_filters_for_edit_review'\n\t);\n\n\tcontroller.replaceUrl();\n\n\tmainWrapperWidget.setTopSection( specialPage );\n\n\t/**\n\t * Fired when initialization of the filtering interface for changes list is complete.\n\t *\n\t * @event ~'structuredChangeFilters.ui.initialized'\n\t * @memberof Hooks\n\t */\n\tmw.hook( 'structuredChangeFilters.ui.initialized' ).fire();\n}\n\n// Import i18n messages from config\nmw.messages.set( mw.config.get( 'wgStructuredChangeFiltersMessages' ) );\n\n// Don't try to run init during QUnit tests, some of the code depends on mw.config variables\n// that are not set, and the ui code here isn't even being tested.\nif ( !window.QUnit ) {\n\tif ( document.readyState === 'interactive' || document.readyState === 'complete' ) {\n\t\t// Early execute of init\n\t\tinit();\n\t} else {\n\t\t$( init );\n\t}\n}\n\nmodule.exports = rcfilters;\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/ChangesLimitAndDateButtonWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/ChangesLimitPopupWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/ChangesListWrapperWidget.js","messages":[],"suppressedMessages":[{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":125,"column":14,"nodeType":"CallExpression","endLine":125,"endColumn":70,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mediawiki/class-doc","severity":2,"message":"All possible CSS classes should be documented. See https://w.wiki/PS2 for details.","line":143,"column":4,"nodeType":"CallExpression","endLine":146,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-fade","severity":2,"message":"Prefer CSS transitions to .fadeIn","line":241,"column":2,"nodeType":"CallExpression","endLine":243,"endColumn":18,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":268,"column":21,"nodeType":"CallExpression","endLine":268,"endColumn":70,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":277,"column":22,"nodeType":"CallExpression","endLine":277,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/CheckboxInputWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/DatePopupWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/FilterItemHighlightButton.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/FilterMenuHeaderWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/FilterMenuOptionWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/FilterMenuSectionOptionWidget.js","messages":[],"suppressedMessages":[{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":42,"column":13,"nodeType":"CallExpression","endLine":42,"endColumn":47,"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":51,"column":13,"nodeType":"CallExpression","endLine":51,"endColumn":45,"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":63,"column":13,"nodeType":"CallExpression","endLine":63,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mediawiki/class-doc","severity":2,"message":"All possible CSS classes should be documented. See https://w.wiki/PS2 for details.","line":94,"column":2,"nodeType":"CallExpression","endLine":96,"endColumn":92,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/FilterTagItemWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/FilterTagMultiselectWidget.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'RcFilters.popup.open'","line":408,"column":1,"nodeType":"Block","endLine":408,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":800,"column":4,"nodeType":"CallExpression","endLine":800,"endColumn":81,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"const ViewSwitchWidget = require( './ViewSwitchWidget.js' ),\n\tSaveFiltersPopupButtonWidget = require( './SaveFiltersPopupButtonWidget.js' ),\n\tMenuSelectWidget = require( './MenuSelectWidget.js' ),\n\tFilterTagItemWidget = require( './FilterTagItemWidget.js' );\n\n/**\n * List displaying all filter groups.\n *\n * @class mw.rcfilters.ui.FilterTagMultiselectWidget\n * @ignore\n * @extends OO.ui.MenuTagMultiselectWidget\n * @mixes OO.ui.mixin.PendingElement\n *\n * @param {mw.rcfilters.Controller} controller Controller\n * @param {mw.rcfilters.dm.FiltersViewModel} model View model\n * @param {mw.rcfilters.dm.SavedQueriesModel} savedQueriesModel Saved queries model\n * @param {Object} config Configuration object\n * @param {jQuery} [config.$overlay] A jQuery object serving as overlay for popups\n * @param {jQuery} [config.$wrapper] A jQuery object for the wrapper of the general\n *  system. If not given, falls back to this widget's $element\n * @param {boolean} [config.collapsed] Filter area is collapsed\n */\nconst FilterTagMultiselectWidget = function MwRcfiltersUiFilterTagMultiselectWidget( controller, model, savedQueriesModel, config ) {\n\tconst title = new OO.ui.LabelWidget( {\n\t\t\tlabel: mw.msg( 'rcfilters-activefilters' ),\n\t\t\tclasses: [ 'mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-content-title' ]\n\t\t} ),\n\t\t$contentWrapper = $( '<div>' )\n\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-wrapper' );\n\n\tconfig = config || {};\n\n\tthis.controller = controller;\n\tthis.model = model;\n\tthis.queriesModel = savedQueriesModel;\n\tthis.$overlay = config.$overlay || this.$element;\n\tthis.$wrapper = config.$wrapper || this.$element;\n\tthis.matchingQuery = null;\n\tthis.currentView = this.model.getCurrentView();\n\tthis.collapsed = false;\n\tthis.isMobile = config.isMobile;\n\n\t// Has to be before the parent constructor, because the parent constructor may call setValue()\n\t// which causes the onChangeTags handler to run (T245073)\n\tthis.emptyFilterMessage = new OO.ui.LabelWidget( {\n\t\tlabel: mw.msg( 'rcfilters-empty-filter' ),\n\t\tclasses: [ 'mw-rcfilters-ui-filterTagMultiselectWidget-emptyFilters' ]\n\t} );\n\n\t// Parent\n\tFilterTagMultiselectWidget.super.call( this, $.extend( true, {\n\t\tlabel: mw.msg( 'rcfilters-filterlist-title' ),\n\t\tplaceholder: mw.msg( 'rcfilters-empty-filter' ),\n\t\tinputPosition: 'outline',\n\t\tallowArbitrary: false,\n\t\tallowDisplayInvalidTags: false,\n\t\tallowReordering: false,\n\t\t$overlay: this.$overlay,\n\t\tmenu: {\n\t\t\t// Our filtering is done through the model\n\t\t\tfilterFromInput: false,\n\t\t\thideWhenOutOfView: false,\n\t\t\thideOnChoose: false,\n\t\t\t// Only set width and footers for desktop\n\t\t\tisMobile: this.isMobile,\n\t\t\twidth: 650,\n\t\t\tfooters: [\n\t\t\t\t{\n\t\t\t\t\tname: 'viewSelect',\n\t\t\t\t\tsticky: false,\n\t\t\t\t\t// View select menu, appears on default view only\n\t\t\t\t\t$element: $( '<div>' )\n\t\t\t\t\t\t.append( new ViewSwitchWidget( this.controller, this.model ).$element ),\n\t\t\t\t\tviews: [ 'default' ]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t/**\n\t\t * In the presence of an onscreen keyboard (i.e. isMobile) the filter input should act as a button\n\t\t * rather than a text input. Mobile screens are too small to accommodate both an\n\t\t * onscreen keyboard and a popup-menu, so readyOnly is set to disable the keyboard.\n\t\t * A different icon and shorter message is used for mobile as well. (See T224655 for details).\n\t\t *\n\t\t * @ignore\n\t\t */\n\t\tinput: {\n\t\t\ticon: this.isMobile ? 'funnel' : 'menu',\n\t\t\tplaceholder: this.isMobile ? mw.msg( 'rcfilters-search-placeholder-mobile' ) : mw.msg( 'rcfilters-search-placeholder' ),\n\t\t\treadOnly: !!this.isMobile,\n\t\t\tclasses: [ 'oo-ui-tagMultiselectWidget-input' ]\n\t\t}\n\t}, config ) );\n\n\tthis.input.$input.attr( 'aria-label', mw.msg( 'rcfilters-search-placeholder' ) );\n\n\tthis.savedQueryTitle = new OO.ui.LabelWidget( {\n\t\tlabel: '',\n\t\tclasses: [ 'mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-content-savedQueryTitle' ]\n\t} );\n\n\tthis.resetButton = new OO.ui.ButtonWidget( {\n\t\tframed: false,\n\t\tclasses: [ 'mw-rcfilters-ui-filterTagMultiselectWidget-resetButton' ]\n\t} );\n\n\tthis.hideShowButton = new OO.ui.ButtonWidget( {\n\t\tframed: false,\n\t\tflags: [ 'progressive' ],\n\t\tclasses: [ 'mw-rcfilters-ui-filterTagMultiselectWidget-hideshowButton' ]\n\t} );\n\tthis.toggleCollapsed( !!config.collapsed );\n\n\tif ( !mw.user.isAnon() ) {\n\t\tthis.saveQueryButton = new SaveFiltersPopupButtonWidget(\n\t\t\tthis.controller,\n\t\t\tthis.queriesModel,\n\t\t\t{\n\t\t\t\t$overlay: this.$overlay\n\t\t\t}\n\t\t);\n\n\t\tthis.saveQueryButton.$element.on( 'mousedown', ( e ) => {\n\t\t\te.stopPropagation();\n\t\t} );\n\n\t\tthis.saveQueryButton.connect( this, {\n\t\t\tclick: 'onSaveQueryButtonClick',\n\t\t\tsaveCurrent: 'setSavedQueryVisibility'\n\t\t} );\n\t\tthis.queriesModel.connect( this, {\n\t\t\titemUpdate: 'onSavedQueriesItemUpdate',\n\t\t\tinitialize: 'onSavedQueriesInitialize',\n\t\t\tdefault: 'reevaluateResetRestoreState'\n\t\t} );\n\t}\n\n\tthis.$content.append( this.emptyFilterMessage.$element );\n\n\t// Events\n\tthis.resetButton.connect( this, { click: 'onResetButtonClick' } );\n\tthis.hideShowButton.connect( this, { click: 'onHideShowButtonClick' } );\n\t// Stop propagation for mousedown, so that the widget doesn't\n\t// trigger the focus on the input and scrolls up when we click the reset button\n\tthis.resetButton.$element.on( 'mousedown', ( e ) => {\n\t\te.stopPropagation();\n\t} );\n\tthis.hideShowButton.$element.on( 'mousedown', ( e ) => {\n\t\te.stopPropagation();\n\t} );\n\tthis.model.connect( this, {\n\t\tinitialize: 'onModelInitialize',\n\t\tupdate: 'onModelUpdate',\n\t\tsearchChange: this.isMobile ? function () {} : 'onModelSearchChange',\n\t\titemUpdate: 'onModelItemUpdate',\n\t\thighlightChange: 'onModelHighlightChange'\n\t} );\n\n\tif ( !this.isMobile ) {\n\t\tthis.input.connect( this, { change: 'onInputChange', onBlur: this.onInputBlur } );\n\t}\n\n\t// The filter list and button should appear side by side regardless of how\n\t// wide the button is; the button also changes its width depending\n\t// on language and its state, so the safest way to present both side\n\t// by side is with a table layout\n\tconst $rcFiltersRow = $( '<div>' )\n\t\t.addClass( 'mw-rcfilters-ui-row' )\n\t\t.append(\n\t\t\tthis.$content\n\t\t\t\t.addClass( 'mw-rcfilters-ui-cell' )\n\t\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-cell-filters' )\n\t\t);\n\n\tif ( !mw.user.isAnon() ) {\n\t\t$rcFiltersRow.append(\n\t\t\t$( '<div>' )\n\t\t\t\t.addClass( 'mw-rcfilters-ui-cell' )\n\t\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-cell-save' )\n\t\t\t\t.append( this.saveQueryButton.$element )\n\t\t);\n\t}\n\n\t// Add a selector at the right of the input\n\tthis.viewsSelectWidget = this.createViewsSelectWidget();\n\n\t// change the layout of the viewsSelectWidget\n\tthis.restructureViewsSelectWidget();\n\n\t// Event\n\tthis.viewsSelectWidget.aggregate( { click: 'buttonClick' } );\n\tthis.viewsSelectWidget.connect( this, { buttonClick: 'onViewsSelectWidgetButtonClick' } );\n\n\t$rcFiltersRow.append(\n\t\t$( '<div>' )\n\t\t\t.addClass( 'mw-rcfilters-ui-cell' )\n\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-cell-reset' )\n\t\t\t.append( this.resetButton.$element )\n\t);\n\n\t// Build the content\n\t$contentWrapper.append(\n\t\t$( '<div>' )\n\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-top' )\n\t\t\t.append(\n\t\t\t\t$( '<div>' )\n\t\t\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-top-title' )\n\t\t\t\t\t.append( title.$element ),\n\t\t\t\t$( '<div>' )\n\t\t\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-top-queryName' )\n\t\t\t\t\t.append( this.savedQueryTitle.$element ),\n\t\t\t\t$( '<div>' )\n\t\t\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-top-hideshow' )\n\t\t\t\t\t.append(\n\t\t\t\t\t\tthis.hideShowButton.$element\n\t\t\t\t\t)\n\t\t\t),\n\t\t$( '<div>' )\n\t\t\t.addClass( 'mw-rcfilters-ui-table' )\n\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-filters' )\n\t\t\t.append( $rcFiltersRow )\n\t);\n\n\t// Initialize\n\tthis.$handle.append( $contentWrapper );\n\tthis.emptyFilterMessage.toggle( this.isEmpty() );\n\tthis.savedQueryTitle.toggle( false );\n\n\tthis.$element\n\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget' );\n\n\tif ( this.isMobile ) {\n\t\tthis.$element\n\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-mobile' );\n\t}\n\n\tthis.reevaluateResetRestoreState();\n};\n\n/* Initialization */\n\nOO.inheritClass( FilterTagMultiselectWidget, OO.ui.MenuTagMultiselectWidget );\n\n/* Methods */\n\n/**\n * Create a OOUI ButtonGroupWidget. The buttons are framed and have additional CSS\n * classes applied on mobile.\n *\n * @return {OO.ui.ButtonGroupWidget}\n */\nFilterTagMultiselectWidget.prototype.createViewsSelectWidget = function () {\n\tconst viewsSelectWidget = new OO.ui.ButtonGroupWidget( {\n\t\tclasses: this.isMobile ?\n\t\t\t[\n\t\t\t\t'mw-rcfilters-ui-table',\n\t\t\t\t'mw-rcfilters-ui-filterTagMultiselectWidget-mobile-view'\n\t\t\t] :\n\t\t\t[\n\t\t\t\t'mw-rcfilters-ui-filterTagMultiselectWidget-views-select-widget'\n\t\t\t],\n\t\titems: [\n\t\t\tnew OO.ui.ButtonWidget( {\n\t\t\t\tframed: !!this.isMobile,\n\t\t\t\tdata: 'namespaces',\n\t\t\t\ticon: 'article',\n\t\t\t\tlabel: mw.msg( 'namespaces' ),\n\t\t\t\ttitle: mw.msg( 'rcfilters-view-namespaces-tooltip' ),\n\t\t\t\tclasses: this.isMobile ? [ 'mw-rcfilters-ui-cell' ] : []\n\t\t\t} ),\n\t\t\tnew OO.ui.ButtonWidget( {\n\t\t\t\tframed: !!this.isMobile,\n\t\t\t\tdata: 'tags',\n\t\t\t\ticon: 'tag',\n\t\t\t\tlabel: mw.msg( 'tags-title' ),\n\t\t\t\ttitle: mw.msg( 'rcfilters-view-tags-tooltip' ),\n\t\t\t\tclasses: this.isMobile ? [ 'mw-rcfilters-ui-cell' ] : []\n\t\t\t} )\n\t\t]\n\t} );\n\n\tviewsSelectWidget.items.forEach( ( item ) => {\n\t\titem.$button.attr( 'aria-label', item.title );\n\t} );\n\n\treturn viewsSelectWidget;\n};\n\n/**\n * Rearrange the DOM structure of the viewsSelectWiget so that on the namespace & tags buttons\n * are at the right of the input on desktop, and below the input on mobile.\n */\nFilterTagMultiselectWidget.prototype.restructureViewsSelectWidget = function () {\n\tif ( this.isMobile ) {\n\t\t// On mobile, append the search input and the extra buttons below the search input.\n\t\tthis.$element.append(\n\t\t\t$( '<div>' )\n\t\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-views-input' )\n\t\t\t\t.append( this.input.$element )\n\t\t\t\t.append( this.viewsSelectWidget.$element )\n\t\t);\n\t} else {\n\t\t// On desktop, rearrange the UI so the select widget is at the right of the input\n\t\tthis.$element.append(\n\t\t\t$( '<div>' )\n\t\t\t\t.addClass( 'mw-rcfilters-ui-table' )\n\t\t\t\t.append(\n\t\t\t\t\t$( '<div>' )\n\t\t\t\t\t\t.addClass( 'mw-rcfilters-ui-row' )\n\t\t\t\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-views' )\n\t\t\t\t\t\t.append(\n\t\t\t\t\t\t\t$( '<div>' )\n\t\t\t\t\t\t\t\t.addClass( 'mw-rcfilters-ui-cell' )\n\t\t\t\t\t\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-views-input' )\n\t\t\t\t\t\t\t\t.append( this.input.$element ),\n\t\t\t\t\t\t\t$( '<div>' )\n\t\t\t\t\t\t\t\t.addClass( 'mw-rcfilters-ui-cell' )\n\t\t\t\t\t\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-views-select' )\n\t\t\t\t\t\t\t\t.append( this.viewsSelectWidget.$element )\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t);\n\t}\n};\n\n/**\n * Respond to button click event\n *\n * @param {OO.ui.ButtonWidget} buttonWidget Clicked widget\n */\nFilterTagMultiselectWidget.prototype.onViewsSelectWidgetButtonClick = function ( buttonWidget ) {\n\tthis.controller.switchView( buttonWidget.getData() );\n\tthis.focus();\n};\n\n/**\n * Respond to model search change event\n *\n * @param {string} value Search value\n */\nFilterTagMultiselectWidget.prototype.onModelSearchChange = function ( value ) {\n\tthis.input.setValue( value );\n};\n\n/**\n * Respond to input change event\n *\n * @param {string} value Value of the input\n */\nFilterTagMultiselectWidget.prototype.onInputChange = function ( value ) {\n\tthis.controller.setSearch( value );\n};\n\n/**\n * Respond to input blur event\n *\n */\nFilterTagMultiselectWidget.prototype.onInputBlur = function () {\n\t// T389976 noop (override default OOUI MenuTagMultiselectWidget behavior onBlur so that we can click help icons)\n};\n\n/**\n * Respond to query button click\n */\nFilterTagMultiselectWidget.prototype.onSaveQueryButtonClick = function () {\n\tthis.getMenu().toggle( false );\n};\n\n/**\n * Respond to save query model initialization\n */\nFilterTagMultiselectWidget.prototype.onSavedQueriesInitialize = function () {\n\tthis.setSavedQueryVisibility();\n};\n\n/**\n * Respond to save query item change. Mainly this is done to update the label in case\n * a query item has been edited\n *\n * @param {mw.rcfilters.dm.SavedQueryItemModel} item Saved query item\n */\nFilterTagMultiselectWidget.prototype.onSavedQueriesItemUpdate = function ( item ) {\n\tif ( this.matchingQuery === item ) {\n\t\t// This means we just edited the item that is currently matched\n\t\tthis.savedQueryTitle.setLabel( item.getLabel() );\n\t}\n};\n\n/**\n * Respond to menu toggle\n *\n * @param {boolean} isVisible Menu is visible\n */\nFilterTagMultiselectWidget.prototype.onMenuToggle = function ( isVisible ) {\n\n\tconst scrollToElement = this.isMobile ? this.input.$input : this.$element;\n\n\t// Parent\n\tFilterTagMultiselectWidget.super.prototype.onMenuToggle.call( this );\n\n\tif ( isVisible ) {\n\t\tif ( !this.isMobile ) {\n\t\t\tthis.focus();\n\t\t}\n\n\t\t/**\n\t\t * Fires when the RCFilters tag multi selector menu is toggled.\n\t\t *\n\t\t * @event ~'RcFilters.popup.open'\n\t\t * @memberof Hooks\n\t\t */\n\t\tmw.hook( 'RcFilters.popup.open' ).fire();\n\n\t\tif ( !this.getMenu().findSelectedItem() ) {\n\t\t\t// If there are no selected items, scroll menu to top\n\t\t\t// This has to be in a setTimeout so the menu has time\n\t\t\t// to be positioned and fixed\n\t\t\tsetTimeout(\n\t\t\t\t() => {\n\t\t\t\t\tthis.getMenu().scrollToTop();\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t// Only scroll to top of the viewport if:\n\t\t// - The widget is more than 20px from the top\n\t\t// - The widget is not above the top of the viewport (do not scroll downwards)\n\t\t//   (This isn't represented because >20 is, anyways and always, bigger than 0)\n\t\tthis.scrollToTop( scrollToElement, 0, { min: 20, max: Infinity } );\n\n\t} else {\n\t\t// Clear selection\n\t\tthis.selectTag( null );\n\n\t\t// Clear the search\n\t\tthis.controller.setSearch( '' );\n\n\t\tthis.blur();\n\t}\n\n\tif ( this.isMobile ) {\n\t\tthis.input.setIcon( isVisible ? 'close' : 'funnel' );\n\t} else {\n\t\tthis.input.setIcon( isVisible ? 'search' : 'menu' );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nFilterTagMultiselectWidget.prototype.onInputFocus = function () {\n\n\t// treat the input as a menu toggle rather than a text field on mobile\n\tif ( this.isMobile ) {\n\t\tthis.input.$input.trigger( 'blur' );\n\t\tthis.getMenu().toggle();\n\t} else {\n\t\t// Parent\n\t\tFilterTagMultiselectWidget.super.prototype.onInputFocus.call( this );\n\t}\n};\n\n/**\n * @inheritdoc\n */\nFilterTagMultiselectWidget.prototype.doInputEscape = function () {\n\t// Parent\n\tFilterTagMultiselectWidget.super.prototype.doInputEscape.call( this );\n\n\t// Blur the input\n\tthis.input.$input.trigger( 'blur' );\n};\n\n/**\n * @inheritdoc\n */\nFilterTagMultiselectWidget.prototype.onMouseDown = function ( e ) {\n\tif ( !this.collapsed && !this.isDisabled() && e.which === OO.ui.MouseButtons.LEFT ) {\n\t\tthis.menu.toggle();\n\n\t\treturn false;\n\t}\n};\n\n/**\n * @inheritdoc\n */\nFilterTagMultiselectWidget.prototype.onChangeTags = function () {\n\t// If initialized, call parent method.\n\tif ( this.controller.isInitialized() ) {\n\t\tFilterTagMultiselectWidget.super.prototype.onChangeTags.call( this );\n\t}\n\n\tthis.emptyFilterMessage.toggle( this.isEmpty() );\n};\n\n/**\n * Respond to model initialize event\n */\nFilterTagMultiselectWidget.prototype.onModelInitialize = function () {\n\tthis.setSavedQueryVisibility();\n};\n\n/**\n * Respond to model update event\n */\nFilterTagMultiselectWidget.prototype.onModelUpdate = function () {\n\tthis.updateElementsForView();\n};\n\n/**\n * Update the elements in the widget to the current view\n */\nFilterTagMultiselectWidget.prototype.updateElementsForView = function () {\n\tlet inputValue = this.input.getValue().trim();\n\tconst view = this.model.getCurrentView(),\n\t\tinputView = this.model.getViewByTrigger( inputValue.slice( 0, 1 ) );\n\n\tif ( inputView !== 'default' ) {\n\t\t// We have a prefix already, remove it\n\t\tinputValue = inputValue.slice( 1 );\n\t}\n\n\tif ( inputView !== view ) {\n\t\t// Add the correct prefix\n\t\tinputValue = this.model.getViewTrigger( view ) + inputValue;\n\t}\n\n\t// Update input\n\tthis.input.setValue( inputValue );\n\n\tif ( this.currentView !== view ) {\n\t\tthis.scrollToTop( this.$element );\n\t\tthis.currentView = view;\n\t}\n};\n\n/**\n * Set the visibility of the saved query button\n */\nFilterTagMultiselectWidget.prototype.setSavedQueryVisibility = function () {\n\tif ( mw.user.isAnon() ) {\n\t\treturn;\n\t}\n\n\tthis.matchingQuery = this.controller.findQueryMatchingCurrentState();\n\n\tthis.savedQueryTitle.setLabel(\n\t\tthis.matchingQuery ? this.matchingQuery.getLabel() : ''\n\t);\n\tthis.savedQueryTitle.toggle( !!this.matchingQuery );\n\tthis.saveQueryButton.setDisabled( !!this.matchingQuery );\n\tthis.saveQueryButton.setTitle( !this.matchingQuery ?\n\t\tmw.msg( 'rcfilters-savedqueries-add-new-title' ) :\n\t\tmw.msg( 'rcfilters-savedqueries-already-saved' ) );\n\n\tif ( this.matchingQuery ) {\n\t\tthis.emphasize();\n\t}\n};\n\n/**\n * Respond to model itemUpdate event\n * fixme: when a new state is applied to the model this function is called 60+ times in a row\n *\n * @param {mw.rcfilters.dm.FilterItem} item Filter item model\n */\nFilterTagMultiselectWidget.prototype.onModelItemUpdate = function ( item ) {\n\tif ( !item.getGroupModel().isHidden() ) {\n\t\tif (\n\t\t\titem.isSelected() ||\n\t\t\t(\n\t\t\t\tthis.model.isHighlightEnabled() &&\n\t\t\t\titem.getHighlightColor()\n\t\t\t)\n\t\t) {\n\t\t\tthis.addTag( item.getName(), item.getLabel() );\n\t\t} else {\n\t\t\t// Only attempt to remove the tag if we can find an item for it (T198140, T198231)\n\t\t\tif ( this.findItemFromData( item.getName() ) !== null ) {\n\t\t\t\tthis.removeTagByData( item.getName() );\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.setSavedQueryVisibility();\n\n\t// Re-evaluate reset state\n\tthis.reevaluateResetRestoreState();\n};\n\n/**\n * @inheritdoc\n */\nFilterTagMultiselectWidget.prototype.isAllowedData = function ( data ) {\n\treturn (\n\t\tthis.model.getItemByName( data ) &&\n\t\t!this.isDuplicateData( data )\n\t);\n};\n\n/**\n * @inheritdoc\n */\nFilterTagMultiselectWidget.prototype.onMenuChoose = function ( item ) {\n\tthis.controller.toggleFilterSelect( item.model.getName() );\n\n\t// Select the tag if it exists, or reset selection otherwise\n\tthis.selectTag( this.findItemFromData( item.model.getName() ) );\n\n\tif ( !this.isMobile ) {\n\t\tthis.focus();\n\t}\n\n};\n\n/**\n * Respond to highlightChange event\n *\n * @param {boolean} isHighlightEnabled Highlight is enabled\n */\nFilterTagMultiselectWidget.prototype.onModelHighlightChange = function ( isHighlightEnabled ) {\n\tconst highlightedItems = this.model.getHighlightedItems();\n\n\tif ( isHighlightEnabled ) {\n\t\t// Add capsule widgets\n\t\thighlightedItems.forEach( ( filterItem ) => {\n\t\t\tthis.addTag( filterItem.getName(), filterItem.getLabel() );\n\t\t} );\n\t} else {\n\t\t// Remove capsule widgets if they're not selected\n\t\thighlightedItems.forEach( ( filterItem ) => {\n\t\t\tif ( !filterItem.isSelected() ) {\n\t\t\t\t// Only attempt to remove the tag if we can find an item for it (T198140, T198231)\n\t\t\t\tif ( this.findItemFromData( filterItem.getName() ) !== null ) {\n\t\t\t\t\tthis.removeTagByData( filterItem.getName() );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\tthis.setSavedQueryVisibility();\n};\n\n/**\n * @inheritdoc\n */\nFilterTagMultiselectWidget.prototype.onTagSelect = function ( tagItem ) {\n\tconst menuOption = this.menu.getItemFromModel( tagItem.getModel() );\n\n\tthis.menu.setUserSelecting( true );\n\t// Parent method\n\tFilterTagMultiselectWidget.super.prototype.onTagSelect.call( this, tagItem );\n\n\t// Switch view\n\tthis.controller.resetSearchForView( tagItem.getView() );\n\n\tthis.selectTag( tagItem );\n\tthis.scrollToTop( menuOption.$element );\n\n\tthis.menu.setUserSelecting( false );\n};\n\n/**\n * Select a tag by reference. This is what OO.ui.SelectWidget is doing.\n * If no items are given, reset selection from all.\n *\n * @param {mw.rcfilters.ui.FilterTagItemWidget} [item] Tag to select,\n *  omit to deselect all\n */\nFilterTagMultiselectWidget.prototype.selectTag = function ( item ) {\n\tlet i, len, selected;\n\n\tfor ( i = 0, len = this.items.length; i < len; i++ ) {\n\t\tselected = this.items[ i ] === item;\n\t\tif ( this.items[ i ].isSelected() !== selected ) {\n\t\t\tthis.items[ i ].toggleSelected( selected );\n\t\t}\n\t}\n};\n/**\n * @inheritdoc\n */\nFilterTagMultiselectWidget.prototype.onTagRemove = function ( tagItem ) {\n\t// Parent method\n\tFilterTagMultiselectWidget.super.prototype.onTagRemove.call( this, tagItem );\n\n\tthis.controller.clearFilter( tagItem.getName() );\n\n\ttagItem.destroy();\n};\n\n/**\n * Respond to click event on the reset button\n */\nFilterTagMultiselectWidget.prototype.onResetButtonClick = function () {\n\tif ( this.model.areVisibleFiltersEmpty() ) {\n\t\t// Reset to default filters\n\t\tthis.controller.resetToDefaults();\n\t} else {\n\t\t// Reset to have no filters\n\t\tthis.controller.emptyFilters();\n\t}\n};\n\n/**\n * Respond to hide/show button click\n */\nFilterTagMultiselectWidget.prototype.onHideShowButtonClick = function () {\n\tthis.toggleCollapsed();\n};\n\n/**\n * Toggle the collapsed state of the filters widget\n *\n * @param {boolean} isCollapsed Widget is collapsed\n */\nFilterTagMultiselectWidget.prototype.toggleCollapsed = function ( isCollapsed ) {\n\tisCollapsed = isCollapsed === undefined ? !this.collapsed : !!isCollapsed;\n\n\tthis.collapsed = isCollapsed;\n\n\tif ( isCollapsed ) {\n\t\t// If we are collapsing, close the menu, in case it was open\n\t\t// We should make sure the menu closes before the rest of the elements\n\t\t// are hidden, otherwise there is an unknown error in jQuery as ooui\n\t\t// sets and unsets properties on the input (which is hidden at that point)\n\t\tthis.menu.toggle( false );\n\t}\n\tthis.input.setDisabled( isCollapsed );\n\tthis.hideShowButton.setLabel( mw.msg(\n\t\tisCollapsed ? 'rcfilters-activefilters-show' : 'rcfilters-activefilters-hide'\n\t) );\n\tthis.hideShowButton.setTitle( mw.msg(\n\t\tisCollapsed ? 'rcfilters-activefilters-show-tooltip' : 'rcfilters-activefilters-hide-tooltip'\n\t) );\n\n\t// Toggle the wrapper class, so we have min height values correctly throughout\n\tthis.$wrapper.toggleClass( 'mw-rcfilters-collapsed', isCollapsed );\n\n\t// Save the state\n\tthis.controller.updateCollapsedState( isCollapsed );\n};\n\n/**\n * Reevaluate the restore state for the widget between setting to defaults and clearing all filters\n */\nFilterTagMultiselectWidget.prototype.reevaluateResetRestoreState = function () {\n\tconst defaultsAreEmpty = this.controller.areDefaultsEmpty(),\n\t\tcurrFiltersAreEmpty = this.model.areVisibleFiltersEmpty(),\n\t\thideResetButton = currFiltersAreEmpty && defaultsAreEmpty;\n\n\tthis.resetButton.setIcon(\n\t\tcurrFiltersAreEmpty ? 'history' : 'trash'\n\t);\n\n\tthis.resetButton.setLabel(\n\t\tcurrFiltersAreEmpty ? mw.msg( 'rcfilters-restore-default-filters' ) : ''\n\t);\n\tthis.resetButton.setTitle(\n\t\tcurrFiltersAreEmpty ? null : mw.msg( 'rcfilters-clear-all-filters' )\n\t);\n\n\tthis.resetButton.toggle( !hideResetButton );\n\tthis.emptyFilterMessage.toggle( currFiltersAreEmpty );\n};\n\n/**\n * @inheritdoc\n */\nFilterTagMultiselectWidget.prototype.createMenuWidget = function ( menuConfig ) {\n\treturn new MenuSelectWidget(\n\t\tthis.controller,\n\t\tthis.model,\n\t\tmenuConfig\n\t);\n};\n\n/**\n * @inheritdoc\n */\nFilterTagMultiselectWidget.prototype.createTagItemWidget = function ( data ) {\n\tconst filterItem = this.model.getItemByName( data );\n\n\tif ( filterItem ) {\n\t\treturn new FilterTagItemWidget(\n\t\t\tthis.controller,\n\t\t\tthis.model,\n\t\t\tthis.model.getInvertModel( filterItem.getGroupModel().getView() ),\n\t\t\tfilterItem,\n\t\t\t{\n\t\t\t\t$overlay: this.$overlay\n\t\t\t}\n\t\t);\n\t}\n};\n\nFilterTagMultiselectWidget.prototype.emphasize = function () {\n\tif (\n\t\t// eslint-disable-next-line no-jquery/no-class-state\n\t\t!this.$handle.hasClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-animate' )\n\t) {\n\t\tthis.$handle\n\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-emphasize' )\n\t\t\t.addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-animate' );\n\n\t\tsetTimeout( () => {\n\t\t\tthis.$handle\n\t\t\t\t.removeClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-emphasize' );\n\n\t\t\tsetTimeout( () => {\n\t\t\t\tthis.$handle\n\t\t\t\t\t.removeClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-animate' );\n\t\t\t}, 1000 );\n\t\t}, 500 );\n\n\t}\n};\n/**\n * Scroll the element to top within its container\n *\n * @private\n * @param {jQuery} $element Element to position\n * @param {number} [marginFromTop=0] When scrolling the entire widget to the top, leave this\n *  much space (in pixels) above the widget.\n * @param {Object} [threshold] Minimum distance from the top of the element to scroll at all\n * @param {number} [threshold.min] Minimum distance above the element\n * @param {number} [threshold.max] Minimum distance below the element\n */\nFilterTagMultiselectWidget.prototype.scrollToTop = function ( $element, marginFromTop, threshold ) {\n\tconst container = OO.ui.Element.static.getClosestScrollableContainer( $element[ 0 ], 'y' ),\n\t\tpos = OO.ui.Element.static.getRelativePosition( $element, $( container ) ),\n\t\tcontainerScrollTop = $( container ).scrollTop(),\n\t\teffectiveScrollTop = $( container ).is( 'body, html' ) ? 0 : containerScrollTop,\n\t\tnewScrollTop = effectiveScrollTop + pos.top - ( marginFromTop || 0 );\n\n\t// Scroll to item\n\tif (\n\t\tthreshold === undefined ||\n\t\t(\n\t\t\t(\n\t\t\t\tthreshold.min === undefined ||\n\t\t\t\tnewScrollTop - containerScrollTop >= threshold.min\n\t\t\t) &&\n\t\t\t(\n\t\t\t\tthreshold.max === undefined ||\n\t\t\t\tnewScrollTop - containerScrollTop <= threshold.max\n\t\t\t)\n\t\t)\n\t) {\n\t\t$( container ).animate( {\n\t\t\tscrollTop: newScrollTop\n\t\t} );\n\t}\n};\n\nmodule.exports = FilterTagMultiselectWidget;\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/FilterWrapperWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/FormWrapperWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/HighlightColorPickerWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/HighlightPopupWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/ItemMenuOptionWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/LiveUpdateButtonWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/MainWrapperWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/MarkSeenButtonWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/MenuSelectWidget.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":163,"column":2,"nodeType":"CallExpression","endLine":168,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":171,"column":2,"nodeType":"CallExpression","endLine":213,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/RcTopSectionWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/RclTargetPageWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/RclToOrFromWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/RclTopSectionWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/SaveFiltersPopupButtonWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/SavedLinksListItemWidget.js","messages":[],"suppressedMessages":[{"ruleId":"mediawiki/class-doc","severity":2,"message":"All possible CSS classes should be documented. See https://w.wiki/PS2 for details.","line":90,"column":2,"nodeType":"CallExpression","endLine":92,"endColumn":86,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/SavedLinksListWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/TagItemWidget.js","messages":[],"suppressedMessages":[{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":94,"column":5,"nodeType":"CallExpression","endLine":94,"endColumn":72,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/ValuePickerWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/ViewSwitchWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/ui/WatchlistTopSectionWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.rcfilters/utils.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.router/router.js","messages":[],"suppressedMessages":[{"ruleId":"prefer-const","severity":2,"message":"'timeoutID' is never reassigned. Use 'const' instead.","line":199,"column":7,"nodeType":"Identifier","messageId":"useConst","endLine":199,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.searchSuggest/searchSuggest.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'ResponseMetaData' is undefined.","line":36,"column":1,"nodeType":"Block","endLine":36,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'ResponseFunction' is undefined.","line":43,"column":1,"nodeType":"Block","endLine":43,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-jquery/no-map-util","severity":2,"message":"Prefer Array#map to $.map","line":6,"column":19,"nodeType":"CallExpression","endLine":11,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":258,"column":9,"nodeType":"CallExpression","endLine":258,"endColumn":57,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/*!\n * Add search suggestions to the search form.\n */\n( function () {\n\t// eslint-disable-next-line no-jquery/no-map-util\n\tconst searchNS = $.map( mw.config.get( 'wgFormattedNamespaces' ), ( nsName, nsID ) => {\n\t\tif ( nsID >= 0 && mw.user.options.get( 'searchNs' + nsID ) ) {\n\t\t// Cast string key to number\n\t\t\treturn Number( nsID );\n\t\t}\n\t} );\n\n\t/**\n\t * Convenience library for making searches for titles that match a string.\n\t * Loaded via the `mediawiki.searchSuggest` ResourceLoader library.\n\t *\n\t * @example\n\t * mw.loader.using('mediawiki.searchSuggest').then(() => {\n\t *   var api = new mw.Api();\n\t *   mw.searchSuggest.request(api, 'Dogs that', ( results ) => {\n\t *     alert( `Results that match: ${results.join( '\\n' );}` );\n\t *   });\n\t * });\n\t * @namespace mw.searchSuggest\n\t */\n\tmw.searchSuggest = {\n\t\t/**\n\t\t * @typedef {Object} mw.searchSuggest~ResponseMetaData\n\t\t * @property {string} type the contents of the X-OpenSearch-Type response header.\n\t\t * @property {string} searchId the contents of the X-Search-ID response header.\n\t\t * @property {string} query\n\t\t */\n\t\t/**\n\t\t * @callback mw.searchSuggest~ResponseFunction\n\t\t * @param {string[]} titles titles of pages that match search\n\t\t * @param {ResponseMetaData} meta meta data relating to search.\n\t\t */\n\t\t/**\n\t\t * Queries the wiki and calls response with the result.\n\t\t *\n\t\t * @param {mw.Api} api\n\t\t * @param {string} query\n\t\t * @param {ResponseFunction} response\n\t\t * @param {string|number} [limit]\n\t\t * @param {string|number|string[]|number[]} [namespace]\n\t\t * @return {jQuery.Deferred}\n\t\t */\n\t\trequest: function ( api, query, response, limit, namespace ) {\n\t\t\treturn api.get( {\n\t\t\t\tformatversion: 2,\n\t\t\t\taction: 'opensearch',\n\t\t\t\tsearch: query,\n\t\t\t\tnamespace: namespace || searchNS,\n\t\t\t\tlimit\n\t\t\t} ).done( ( data, jqXHR ) => {\n\t\t\t\tresponse( data[ 1 ], {\n\t\t\t\t\ttype: jqXHR.getResponseHeader( 'X-OpenSearch-Type' ),\n\t\t\t\t\tsearchId: jqXHR.getResponseHeader( 'X-Search-ID' ),\n\t\t\t\t\tquery\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\t};\n\n\t$( () => {\n\t\tlet api;\n\t\t// Region where the suggestions box will appear directly below\n\t\t// (using the same width). Can be a container element or the input\n\t\t// itself, depending on what suits best in the environment.\n\t\t// For Vector the suggestion box should align with the simpleSearch\n\t\t// container's borders, in other skins it should align with the input\n\t\t// element (not the search form, as that would leave the buttons\n\t\t// vertically between the input and the suggestions).\n\t\tconst $searchRegion = $( '#simpleSearch, #searchInput' ).first(),\n\t\t\t$searchInput = $( '#searchInput' );\n\t\tlet previousSearchText = $searchInput.val();\n\n\t\tfunction serializeObject( fields ) {\n\t\t\tconst obj = {};\n\n\t\t\tfor ( let i = 0; i < fields.length; i++ ) {\n\t\t\t\tobj[ fields[ i ].name ] = fields[ i ].value;\n\t\t\t}\n\n\t\t\treturn obj;\n\t\t}\n\n\t\t// Compute form data for search suggestions functionality.\n\t\tfunction getFormData( context ) {\n\t\t\tif ( !context.formData ) {\n\t\t\t\t// Compute common parameters for links' hrefs\n\t\t\t\tconst $form = context.config.$region.closest( 'form' );\n\n\t\t\t\tlet baseHref = $form.attr( 'action' ) || '';\n\t\t\t\tbaseHref += baseHref.includes( '?' ) ? '&' : '?';\n\n\t\t\t\tconst linkParams = serializeObject( $form.serializeArray() );\n\n\t\t\t\tcontext.formData = {\n\t\t\t\t\ttextParam: context.data.$textbox.attr( 'name' ),\n\t\t\t\t\tlinkParams: linkParams,\n\t\t\t\t\tbaseHref: baseHref\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn context.formData;\n\t\t}\n\n\t\t/**\n\t\t * Callback that's run when the user changes the search input text\n\t\t * 'this' is the search input box (jQuery object)\n\t\t *\n\t\t * @ignore\n\t\t */\n\t\tfunction onBeforeUpdate() {\n\t\t\tconst searchText = this.val();\n\n\t\t\tif ( searchText && searchText !== previousSearchText ) {\n\t\t\t\tmw.track( 'mediawiki.searchSuggest', {\n\t\t\t\t\taction: 'session-start'\n\t\t\t\t} );\n\t\t\t}\n\t\t\tpreviousSearchText = searchText;\n\t\t}\n\n\t\t/**\n\t\t * Defines the location of autocomplete. Typically either\n\t\t * header, which is in the top right of vector (for example)\n\t\t * and content which identifies the main search bar on\n\t\t * Special:Search. Defaults to header for skins that don't set\n\t\t * explicitly.\n\t\t *\n\t\t * @ignore\n\t\t * @param {Object} context\n\t\t * @return {string}\n\t\t */\n\t\tfunction getInputLocation( context ) {\n\t\t\treturn context.config.$region\n\t\t\t\t.closest( 'form' )\n\t\t\t\t.find( '[data-search-loc]' )\n\t\t\t\t.data( 'search-loc' ) || 'header';\n\t\t}\n\n\t\t/**\n\t\t * Callback that's run when suggestions have been updated either from the cache or the API\n\t\t * 'this' is the search input box (jQuery object)\n\t\t *\n\t\t * @ignore\n\t\t * @param {Object} metadata\n\t\t */\n\t\tfunction onAfterUpdate( metadata ) {\n\t\t\tconst context = this.data( 'suggestionsContext' );\n\n\t\t\tmw.track( 'mediawiki.searchSuggest', {\n\t\t\t\taction: 'impression-results',\n\t\t\t\tnumberOfResults: context.config.suggestions.length,\n\t\t\t\tresultSetType: metadata.type || 'unknown',\n\t\t\t\tsearchId: metadata.searchId || null,\n\t\t\t\tquery: metadata.query,\n\t\t\t\tinputLocation: getInputLocation( context )\n\t\t\t} );\n\t\t}\n\n\t\t// The function used to render the suggestions.\n\t\tfunction renderFunction( text, context ) {\n\t\t\tconst formData = getFormData( context ),\n\t\t\t\ttextboxConfig = context.data.$textbox.data( 'mw-searchsuggest' ) || {};\n\n\t\t\t// linkParams object is modified and reused\n\t\t\tformData.linkParams[ formData.textParam ] = text;\n\n\t\t\t// Allow trackers to attach tracking information, such\n\t\t\t// as wprov, to clicked links.\n\t\t\tmw.track( 'mediawiki.searchSuggest', {\n\t\t\t\taction: 'render-one',\n\t\t\t\tformData: formData,\n\t\t\t\tindex: context.config.suggestions.indexOf( text )\n\t\t\t} );\n\n\t\t\t// this is the container <div>, jQueryfied\n\t\t\tthis.text( text );\n\n\t\t\t// wrap only as link, if the config doesn't disallow it\n\t\t\tif ( textboxConfig.wrapAsLink !== false ) {\n\t\t\t\tthis.wrap(\n\t\t\t\t\t$( '<a>' )\n\t\t\t\t\t\t.attr( 'href', formData.baseHref + $.param( formData.linkParams ) )\n\t\t\t\t\t\t.attr( 'title', text )\n\t\t\t\t\t\t.addClass( 'mw-searchSuggest-link' )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// The function used when the user makes a selection\n\t\tfunction selectFunction( $input, source ) {\n\t\t\tconst context = $input.data( 'suggestionsContext' ),\n\t\t\t\ttext = $input.val(),\n\t\t\t\turl = $( this ).parent( 'a' ).attr( 'href' );\n\n\t\t\t// We want to track a click-result XOR a submit-form action.\n\t\t\t// If the source was 'click' (or otherwise non-'keyboard'),\n\t\t\t// track it and then let the rest of the event proceed as normal.\n\t\t\t// If the source was 'keyboard', and we have a URL\n\t\t\t// (from the <a> that the result was wrapped in, see renderFunction()),\n\t\t\t// then also track a click, prevent the regular form submit,\n\t\t\t// and instead directly navigate to the URL as if it had been clicked.\n\t\t\t// If the source was 'keyboard', but we have no URL,\n\t\t\t// then we have to let the regular form submit go through,\n\t\t\t// so skip the click tracking in that case to avoid duplicate tracking.\n\t\t\tif ( source === 'keyboard' && url || source !== 'keyboard' ) {\n\t\t\t\tmw.track( 'mediawiki.searchSuggest', {\n\t\t\t\t\taction: 'click-result',\n\t\t\t\t\tnumberOfResults: context.config.suggestions.length,\n\t\t\t\t\tindex: context.config.suggestions.indexOf( text )\n\t\t\t\t} );\n\n\t\t\t\tif ( source === 'keyboard' ) {\n\t\t\t\t\twindow.location.assign( url );\n\t\t\t\t\t// prevent default and stop propagation\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// allow the form to be submitted\n\t\t\treturn true;\n\t\t}\n\n\t\tfunction specialRenderFunction( query, context ) {\n\t\t\tconst $el = this,\n\t\t\t\tformData = getFormData( context );\n\n\t\t\t// linkParams object is modified and reused\n\t\t\tformData.linkParams[ formData.textParam ] = query;\n\n\t\t\tmw.track( 'mediawiki.searchSuggest', {\n\t\t\t\taction: 'render-one',\n\t\t\t\tformData: formData,\n\t\t\t\tindex: context.config.suggestions.indexOf( query )\n\t\t\t} );\n\n\t\t\tif ( mw.user.options.get( 'search-match-redirect' ) && $el.children().length === 0 ) {\n\t\t\t\t$el\n\t\t\t\t\t.append(\n\t\t\t\t\t\t$( '<div>' )\n\t\t\t\t\t\t\t.addClass( 'special-label' )\n\t\t\t\t\t\t\t.text( mw.msg( 'searchsuggest-containing' ) ),\n\t\t\t\t\t\t$( '<div>' )\n\t\t\t\t\t\t\t.addClass( 'special-query' )\n\t\t\t\t\t\t\t.text( query )\n\t\t\t\t\t)\n\t\t\t\t\t.show();\n\t\t\t} else {\n\t\t\t\t$el.find( '.special-query' )\n\t\t\t\t\t.text( query );\n\t\t\t}\n\n\t\t\t// eslint-disable-next-line no-jquery/no-class-state\n\t\t\tif ( $el.parent().hasClass( 'mw-searchSuggest-link' ) ) {\n\t\t\t\t$el.parent().attr( 'href', formData.baseHref + $.param( formData.linkParams ) + '&fulltext=1' );\n\t\t\t} else {\n\t\t\t\t$el.wrap(\n\t\t\t\t\t$( '<a>' )\n\t\t\t\t\t\t.attr( 'href', formData.baseHref + $.param( formData.linkParams ) + '&fulltext=1' )\n\t\t\t\t\t\t.addClass( 'mw-searchSuggest-link' )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// Generic suggestions functionality for all search boxes\n\t\tconst searchboxesSelectors = [\n\t\t\t// Primary searchbox on every page in standard skins\n\t\t\t'#searchInput',\n\t\t\t// Generic selector for skins with multiple searchboxes (used by CologneBlue)\n\t\t\t// and for MediaWiki itself (special pages with page title inputs)\n\t\t\t'.mw-searchInput'\n\t\t];\n\t\t$( searchboxesSelectors.join( ', ' ) )\n\t\t\t.suggestions( {\n\t\t\t\tfetch: function ( query, response, maxRows ) {\n\t\t\t\t\tconst node = this[ 0 ];\n\n\t\t\t\t\tapi = api || new mw.Api();\n\n\t\t\t\t\t$.data( node, 'request', mw.searchSuggest.request( api, query, response, maxRows ) );\n\t\t\t\t},\n\t\t\t\tcancel: function () {\n\t\t\t\t\tconst node = this[ 0 ],\n\t\t\t\t\t\trequest = $.data( node, 'request' );\n\n\t\t\t\t\tif ( request ) {\n\t\t\t\t\t\trequest.abort();\n\t\t\t\t\t\t$.removeData( node, 'request' );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tresult: {\n\t\t\t\t\trender: renderFunction,\n\t\t\t\t\tselect: function () {\n\t\t\t\t\t\t// allow the form to be submitted\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tupdate: {\n\t\t\t\t\tbefore: onBeforeUpdate,\n\t\t\t\t\tafter: onAfterUpdate\n\t\t\t\t},\n\t\t\t\tcache: true,\n\t\t\t\thighlightInput: true\n\t\t\t} )\n\t\t\t.on( 'paste cut drop', function () {\n\t\t\t\t// make sure paste and cut events from the mouse and drag&drop events\n\t\t\t\t// trigger the keypress handler and cause the suggestions to update\n\t\t\t\t$( this ).trigger( 'keypress' );\n\t\t\t} )\n\t\t\t// In most skins (at least Monobook and Vector), the font-size is messed up in <body>.\n\t\t\t// (they use 2 elements to get a sensible font-height). So, instead of making exceptions for\n\t\t\t// each skin or adding more stylesheets, just copy it from the active element so auto-fit.\n\t\t\t.each( function () {\n\t\t\t\tconst $this = $( this );\n\t\t\t\t$this\n\t\t\t\t\t.data( 'suggestions-context' )\n\t\t\t\t\t.data.$container.css( 'fontSize', $this.css( 'fontSize' ) );\n\t\t\t} );\n\n\t\t// Ensure that the thing is actually present!\n\t\tif ( $searchRegion.length === 0 ) {\n\t\t\t// Don't try to set anything up if simpleSearch is disabled sitewide.\n\t\t\t// The loader code loads us if the option is present, even if we're\n\t\t\t// not actually enabled (anymore).\n\t\t\treturn;\n\t\t}\n\n\t\t// Special suggestions functionality and tracking for skin-provided search box\n\t\t$searchInput.suggestions( {\n\t\t\tupdate: {\n\t\t\t\tbefore: onBeforeUpdate,\n\t\t\t\tafter: onAfterUpdate\n\t\t\t},\n\t\t\tresult: {\n\t\t\t\trender: renderFunction,\n\t\t\t\tselect: selectFunction\n\t\t\t},\n\t\t\tspecial: {\n\t\t\t\trender: specialRenderFunction,\n\t\t\t\tselect: function ( $input, source ) {\n\t\t\t\t\tconst context = $input.data( 'suggestionsContext' ),\n\t\t\t\t\t\ttext = $input.val();\n\t\t\t\t\tif ( source === 'mouse' ) {\n\t\t\t\t\t\t// mouse click won't trigger form submission, so we need to send a click event\n\t\t\t\t\t\tmw.track( 'mediawiki.searchSuggest', {\n\t\t\t\t\t\t\taction: 'click-result',\n\t\t\t\t\t\t\tnumberOfResults: context.config.suggestions.length,\n\t\t\t\t\t\t\tindex: context.config.suggestions.indexOf( text )\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$input.closest( 'form' )\n\t\t\t\t\t\t\t.append(\n\t\t\t\t\t\t\t\t$( '<input>' )\n\t\t\t\t\t\t\t\t\t.prop( {\n\t\t\t\t\t\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\t\t\t\t\t\tvalue: 1\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t.attr( 'name', 'fulltext' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn true; // allow the form to be submitted\n\t\t\t\t}\n\t\t\t},\n\t\t\t$region: $searchRegion\n\t\t} );\n\n\t\tconst $searchForm = $searchInput.closest( 'form' );\n\t\t$searchForm\n\t\t\t// Track the form submit event.\n\t\t\t// Note that the form is mainly submitted for manual user input;\n\t\t\t// selecting a suggestion is tracked as a click instead (see selectFunction()).\n\t\t\t.on( 'submit', () => {\n\t\t\t\tconst context = $searchInput.data( 'suggestionsContext' );\n\t\t\t\tmw.track( 'mediawiki.searchSuggest', {\n\t\t\t\t\taction: 'submit-form',\n\t\t\t\t\tnumberOfResults: context.config.suggestions.length,\n\t\t\t\t\t$form: context.config.$region.closest( 'form' ),\n\t\t\t\t\tinputLocation: getInputLocation( context ),\n\t\t\t\t\tindex: context.config.suggestions.indexOf(\n\t\t\t\t\t\tcontext.data.$textbox.val()\n\t\t\t\t\t)\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t// Check to see if the fulltext search button is placed before the go search button\n\t\tif ( $searchForm.find( '.mw-fallbackSearchButton ~ .searchButton' ).length ) {\n\t\t\t// Submitting the form with enter should always trigger \"search within pages\"\n\t\t\t// for JavaScript capable browsers.\n\t\t\t// If it is, remove the \"full text search\" fallback button.\n\t\t\t// In skins, where the \"full text search\" button\n\t\t\t// precedes the \"search by title\" button, e.g. Vector this is done for\n\t\t\t// non-JavaScript support. If the \"search by title\" button is first,\n\t\t\t// and two search buttons are shown e.g. MonoBook no change is needed.\n\t\t\t$searchForm.find( '.mw-fallbackSearchButton' ).remove();\n\t\t}\n\t} );\n\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/App.vue","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'AbortableSearchFetch' is undefined.","line":229,"column":1,"nodeType":"Block","endLine":229,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'SearchSubmitEvent' is undefined.","line":275,"column":1,"nodeType":"Block","endLine":275,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"<template>\n\t<cdx-typeahead-search\n\t\t:id=\"id\"\n\t\tref=\"searchForm\"\n\t\t:class=\"rootClasses\"\n\t\t:search-results-label=\"$i18n( 'searchresults' ).text()\"\n\t\t:accesskey=\"searchAccessKey\"\n\t\t:autocapitalize=\"autocapitalizeValue\"\n\t\t:title=\"searchTitle\"\n\t\t:placeholder=\"searchPlaceholder\"\n\t\t:aria-label=\"searchPlaceholder\"\n\t\t:initial-input-value=\"searchQuery\"\n\t\t:button-label=\"searchButtonLabel\"\n\t\t:form-action=\"action\"\n\t\t:show-thumbnail=\"showThumbnail\"\n\t\t:highlight-query=\"highlightQuery\"\n\t\t:auto-expand-width=\"autoExpandWidth\"\n\t\t:search-results=\"suggestions\"\n\t\t:search-footer-url=\"searchFooterUrl\"\n\t\t:visible-item-limit=\"visibleItemLimit\"\n\t\t:use-button=\"!!searchButtonLabel\"\n\t\t:show-empty-query-results=\"showEmptySearchRecommendations\"\n\t\t@load-more=\"onLoadMore\"\n\t\t@input=\"onInput\"\n\t\t@search-result-click=\"instrumentation.onSuggestionClick\"\n\t\t@submit=\"onSubmit\"\n\t\t@focus=\"onFocus\"\n\t\t@blur=\"onBlur\"\n\t>\n\t\t<template #default>\n\t\t\t<input\n\t\t\t\ttype=\"hidden\"\n\t\t\t\tname=\"title\"\n\t\t\t\t:value=\"searchPageTitle\"\n\t\t\t>\n\t\t\t<input\n\t\t\t\ttype=\"hidden\"\n\t\t\t\tname=\"wprov\"\n\t\t\t\t:value=\"wprov\"\n\t\t\t>\n\t\t</template>\n\t\t<template #search-results-pending>\n\t\t\t{{ $i18n( 'search-loader' ).text() }}\n\t\t</template>\n\t\t<!-- eslint-disable-next-line vue/no-template-shadow -->\n\t\t<template #search-footer-text=\"{ searchQuery }\">\n\t\t\t<span v-i18n-html:searchsuggest-containing-html=\"[ searchQuery ]\"></span>\n\t\t</template>\n\t</cdx-typeahead-search>\n</template>\n\n<script>\nconst { CdxTypeaheadSearch } = require( 'mediawiki.codex.typeaheadSearch' ),\n\t{ defineComponent, nextTick } = require( 'vue' ),\n\tinstrumentation = require( './instrumentation.js' );\n\n// @vue/component\nmodule.exports = exports = defineComponent( {\n\tname: 'App',\n\tcompilerOptions: {\n\t\twhitespace: 'condense'\n\t},\n\tcomponents: { CdxTypeaheadSearch },\n\tprops: {\n\t\turlGenerator: {\n\t\t\ttype: Object,\n\t\t\trequired: true\n\t\t},\n\t\trestClient: {\n\t\t\ttype: Object,\n\t\t\trequired: true\n\t\t},\n\t\tprefixClass: {\n\t\t\ttype: String,\n\t\t\tdefault: 'skin-'\n\t\t},\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\t\tautocapitalizeValue: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined\n\t\t},\n\t\tsearchPageTitle: {\n\t\t\ttype: String,\n\t\t\tdefault: 'Special:Search'\n\t\t},\n\t\tsearchButtonLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: mw.msg( 'searchbutton' )\n\t\t},\n\t\tautofocusInput: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\taction: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t/** The keyboard shortcut to focus search. */\n\t\tsearchAccessKey: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined\n\t\t},\n\t\t/** The access key informational tip for search. */\n\t\tsearchTitle: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined\n\t\t},\n\t\t/** The ghost text shown when no search query is entered. */\n\t\tsearchPlaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined\n\t\t},\n\t\t/**\n\t\t * The search query string taken from the server-side rendered input immediately before\n\t\t * client render.\n\t\t */\n\t\tsearchQuery: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined\n\t\t},\n\t\tshowThumbnail: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t\tdefault: false\n\t\t},\n\t\tshowDescription: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\thighlightQuery: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\tautoExpandWidth: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\tshowEmptySearchRecommendations: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\t// -1 here is the default \"active suggestion index\".\n\t\t\twprov: instrumentation.getWprovFromResultIndex( -1 ),\n\n\t\t\t// Suggestions to be shown in the TypeaheadSearch menu.\n\t\t\tsuggestions: [],\n\n\t\t\t// Link to the search page for the current search query.\n\t\t\tsearchFooterUrl: '',\n\n\t\t\t// The current search query. Used to detect whether a fetch response is stale.\n\t\t\tcurrentSearchQuery: '',\n\n\t\t\t// Whether to apply a CSS class that disables the CSS transitions on the text input\n\t\t\tdisableTransitions: this.autofocusInput,\n\n\t\t\tinstrumentation: instrumentation.listeners,\n\n\t\t\tisFocused: false\n\t\t};\n\t},\n\tcomputed: {\n\t\trootClasses() {\n\t\t\tconst prefix = this.prefixClass;\n\t\t\treturn {\n\t\t\t\t[ `${ prefix }typeahead-search` ]: true,\n\t\t\t\t[ `${ prefix }search-box-disable-transitions` ]: this.disableTransitions,\n\t\t\t\t[ `${ prefix }typeahead-search--active` ]: this.isFocused\n\t\t\t};\n\t\t},\n\t\tvisibleItemLimit() {\n\t\t\t// if the search client supports loading more results,\n\t\t\t// show 7 out of 10 results at first (arbitrary number),\n\t\t\t// so that scroll events are fired and trigger onLoadMore()\n\t\t\treturn this.restClient.loadMore ? 7 : null;\n\t\t}\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Fetch suggestions when new input is received.\n\t\t *\n\t\t * @param {string} value\n\t\t */\n\t\tonInput: function ( value ) {\n\t\t\tconst query = value.trim();\n\n\t\t\tthis.currentSearchQuery = query;\n\n\t\t\tif ( query === '' ) {\n\t\t\t\tthis.loadEmptySearchRecommendations();\n\t\t\t} else {\n\t\t\t\tthis.updateUIWithSearchClientResult(\n\t\t\t\t\tthis.restClient.fetchByTitle( query, 10, this.showDescription ),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Fetch additional suggestions.\n\t\t *\n\t\t * This should only be called if visibleItemLimit is non-null,\n\t\t * i.e. if the search client supports loading more results.\n\t\t */\n\t\tonLoadMore() {\n\t\t\tif ( !this.restClient.loadMore ) {\n\t\t\t\tmw.log.warn( 'onLoadMore() should not have been called for this search client' );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.updateUIWithSearchClientResult(\n\t\t\t\tthis.restClient.loadMore(\n\t\t\t\t\tthis.currentSearchQuery,\n\t\t\t\t\tthis.suggestions.length,\n\t\t\t\t\t10,\n\t\t\t\t\tthis.showDescription\n\t\t\t\t),\n\t\t\t\tfalse\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * @param {AbortableSearchFetch} search\n\t\t * @param {boolean} replaceResults\n\t\t */\n\t\tupdateUIWithSearchClientResult( search, replaceResults ) {\n\t\t\tconst query = this.currentSearchQuery;\n\t\t\tsearch.fetch\n\t\t\t\t.then( ( data ) => {\n\t\t\t\t\t// Only use these results if they're still relevant\n\t\t\t\t\t// If currentSearchQuery !== query, these results are for a previous search\n\t\t\t\t\t// and we shouldn't show them.\n\t\t\t\t\tif ( this.currentSearchQuery === query ) {\n\t\t\t\t\t\tif ( replaceResults ) {\n\t\t\t\t\t\t\tthis.suggestions = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.suggestions.push(\n\t\t\t\t\t\t\t...instrumentation.addWprovToSearchResultUrls(\n\t\t\t\t\t\t\t\tdata.results, this.suggestions.length\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.searchFooterUrl = this.urlGenerator.generateUrl( query );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst event = {\n\t\t\t\t\t\tnumberOfResults: data.results.length,\n\t\t\t\t\t\tquery: query\n\t\t\t\t\t};\n\t\t\t\t\tinstrumentation.listeners.onFetchEnd( event );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\t// TODO: error handling\n\t\t\t\t} );\n\t\t},\n\n\t\tloadEmptySearchRecommendations() {\n\t\t\tconst fetchRecommendations = this.restClient.fetchRecommendationByTitle;\n\t\t\t// Check empty search recommendations is enabled and the API supports recommendations\n\t\t\tif ( this.showEmptySearchRecommendations && fetchRecommendations ) {\n\t\t\t\tconst currentTitle = mw.config.get( 'wgPageName' );\n\t\t\t\tthis.updateUIWithSearchClientResult(\n\t\t\t\t\tthis.restClient.fetchRecommendationByTitle( currentTitle, this.showDescription ),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @param {SearchSubmitEvent} event\n\t\t */\n\t\tonSubmit( event ) {\n\t\t\tthis.wprov = instrumentation.getWprovFromResultIndex( event.index );\n\n\t\t\tinstrumentation.listeners.onSubmit( event );\n\t\t},\n\n\t\tonFocus() {\n\t\t\tthis.isFocused = true;\n\t\t\tif ( this.currentSearchQuery === '' ) {\n\t\t\t\tthis.loadEmptySearchRecommendations();\n\t\t\t}\n\t\t},\n\n\t\tonBlur() {\n\t\t\tthis.isFocused = false;\n\t\t}\n\t},\n\tmounted() {\n\t\tif ( this.autofocusInput ) {\n\t\t\tthis.$refs.searchForm.focus();\n\t\t\tnextTick( () => {\n\t\t\t\tthis.disableTransitions = false;\n\t\t\t} );\n\t\t}\n\t}\n} );\n</script>\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/fetch.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'RequestInit' is undefined.","line":21,"column":1,"nodeType":"Block","endLine":21,"endColumn":1}],"suppressedMessages":[{"ruleId":"compat/compat","severity":2,"message":"AbortController is not supported in Safari 11.1, iOS Safari 11.3-11.4","line":29,"column":21,"nodeType":"MemberExpression","endLine":29,"endColumn":43,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"compat/compat","severity":2,"message":"AbortController is not supported in Safari 11.1, iOS Safari 11.3-11.4","line":31,"column":3,"nodeType":"NewExpression","endLine":31,"endColumn":24,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"unicorn/no-useless-promise-resolve-reject","severity":2,"message":"Prefer `throw error` over `return Promise.reject(error)`.","line":39,"column":11,"nodeType":"MemberExpression","messageId":"reject","endLine":39,"endColumn":25,"fix":{"range":[1112,1203],"text":"throw 'Network request failed with HTTP code ' + response.status;"},"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * @typedef {Object} AbortableFetch\n * @property {Promise<any>} fetch\n * @property {Function} abort\n */\n\n/**\n * @typedef {Object} NullableAbortController\n * @property {AbortSignal | undefined} signal\n * @property {Function} abort\n */\nconst nullAbortController = {\n\tsignal: undefined,\n\tabort: () => {} // Do nothing (no-op)\n};\n\n/**\n * A wrapper which combines native fetch() in browsers and the following json() call.\n *\n * @param {string} resource\n * @param {RequestInit} [init]\n * @return {AbortableFetch}\n */\nfunction fetchJson( resource, init ) {\n\t// As of 2020, browser support for AbortController is limited:\n\t// https://caniuse.com/abortcontroller\n\t// so replacing it with no-op if it doesn't exist.\n\t// eslint-disable-next-line compat/compat\n\tconst controller = window.AbortController ?\n\t\t// eslint-disable-next-line compat/compat\n\t\tnew AbortController() :\n\t\tnullAbortController;\n\n\tconst getJson = fetch( resource, Object.assign( {}, init, {\n\t\tsignal: controller.signal\n\t} ) ).then( ( response ) => {\n\t\tif ( !response.ok ) {\n\t\t\t// eslint-disable-next-line unicorn/no-useless-promise-resolve-reject\n\t\t\treturn Promise.reject(\n\t\t\t\t'Network request failed with HTTP code ' + response.status\n\t\t\t);\n\t\t}\n\t\treturn response.json();\n\t} );\n\n\treturn {\n\t\tfetch: getJson,\n\t\tabort: () => {\n\t\t\tcontroller.abort();\n\t\t}\n\t};\n}\n\nmodule.exports = fetchJson;\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/index.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/instrumentation.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'FetchEndEvent' is undefined.","line":2,"column":1,"nodeType":"Block","endLine":2,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'SuggestionClickEvent' is undefined.","line":16,"column":1,"nodeType":"Block","endLine":16,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'SearchSubmitEvent' is undefined.","line":16,"column":1,"nodeType":"Block","endLine":16,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * @param {FetchEndEvent} event\n */\nfunction onFetchEnd( event ) {\n\tmw.track( 'mediawiki.searchSuggest', {\n\t\taction: 'impression-results',\n\t\tnumberOfResults: event.numberOfResults,\n\t\t// resultSetType: '',\n\t\t// searchId: '',\n\t\tquery: event.query,\n\t\tinputLocation: 'header-moved'\n\t} );\n}\n\n/**\n * @param {SuggestionClickEvent|SearchSubmitEvent} event\n */\nfunction onSuggestionClick( event ) {\n\tmw.track( 'mediawiki.searchSuggest', {\n\t\taction: 'click-result',\n\t\tnumberOfResults: event.numberOfResults,\n\t\tindex: event.index\n\t} );\n}\n\n/**\n * Generates the value of the `wprov` parameter to be used in the URL of a search result and the\n * `wprov` hidden input.\n *\n * See https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/WikimediaEvents/+/refs/heads/master/modules/ext.wikimediaEvents/searchSatisfaction.js\n * and also the top of that file for additional detail about the shape of the parameter.\n *\n * @param {number} index\n * @return {string}\n */\nfunction getWprovFromResultIndex( index ) {\n\t// result looks like: acrw1_0, acrw1_1, acrw1_2, etc.;\n\t// or acrw1_-1 for index -1 (user did not highlight an autocomplete result)\n\treturn 'acrw1_' + index;\n}\n\n/**\n * @typedef {Object} SearchResultPartial\n * @property {string} title\n * @property {string} [url]\n */\n\n/**\n * Return a new list of search results,\n * with the `wprov` parameter added to each result's url (if any).\n *\n * @param {SearchResultPartial[]} results Not modified.\n * @param {number} offset Offset to add to the index of each result.\n * @return {SearchResultPartial[]}\n */\nfunction addWprovToSearchResultUrls( results, offset ) {\n\treturn results.map( ( result, index ) => {\n\t\tif ( result.url ) {\n\t\t\tconst url = new URL( result.url, location.href );\n\t\t\turl.searchParams.set( 'wprov', getWprovFromResultIndex( index + offset ) );\n\t\t\tresult = Object.assign( {}, result, { url: url.toString() } );\n\t\t}\n\t\treturn result;\n\t} );\n}\n\n/**\n * @typedef {Object} Instrumentation\n * @property {Object} listeners\n * @property {Function} getWprovFromResultIndex\n * @property {Function} addWprovToSearchResultUrls\n */\n\n/**\n * @type {Instrumentation}\n */\nmodule.exports = {\n\tlisteners: {\n\t\tonFetchEnd,\n\t\tonSuggestionClick,\n\n\t\t// As of writing (2020/12/08), both the \"click-result\" and \"submit-form\" kind of\n\t\t// mediawiki.searchSuggestion events result in a \"click\" SearchSatisfaction event being\n\t\t// logged [0]. However, when processing the \"submit-form\" kind of mediawiki.searchSuggestion\n\t\t// event, the SearchSatisfaction instrument will modify the DOM, adding a hidden input\n\t\t// element, in order to set the appropriate provenance parameter (see [1] for additional\n\t\t// detail).\n\t\t//\n\t\t// In this implementation of the mediawiki.searchSuggestion protocol, we don't want to\n\t\t// trigger the above behavior as we're using Vue.js, which doesn't expect the DOM to be\n\t\t// modified underneath it.\n\t\t//\n\t\t// [0] https://gerrit.wikimedia.org/g/mediawiki/extensions/WikimediaEvents/+/df97aa9c9407507e8c48827666beeab492fd56a8/modules/ext.wikimediaEvents/searchSatisfaction.js#735\n\t\t// [1] https://phabricator.wikimedia.org/T257698#6416826\n\t\tonSubmit: onSuggestionClick\n\t},\n\tgetWprovFromResultIndex,\n\taddWprovToSearchResultUrls\n};\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/restSearchClient.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in type: import('./urlGenerator.js').UrlGenerator","line":4,"column":1,"nodeType":"Block","endLine":4,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'RestResult' is undefined.","line":11,"column":1,"nodeType":"Block","endLine":11,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'SearchResult' is undefined.","line":17,"column":1,"nodeType":"Block","endLine":17,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"// / <reference lib=\"@wikimedia/types\" />\n/** @module restSearchClient */\n/**\n * @typedef {import('./urlGenerator.js').UrlGenerator} UrlGenerator\n */\n\nconst fetchJson = require( './fetch.js' );\n\n/**\n * @typedef {Object} RestResponse\n * @property {RestResult[]} pages\n */\n\n/**\n * @typedef {Object} SearchResponse\n * @property {string} query\n * @property {SearchResult[]} results\n */\n\n/**\n * Nullish coalescing operator (??) helper\n *\n * @param {any} a\n * @param {any} b\n * @return {any}\n */\nfunction nullish( a, b ) {\n\treturn ( a !== null && a !== undefined ) ? a : b;\n}\n\n/**\n * @param {UrlGenerator} urlGeneratorInstance\n * @param {string} query\n * @param {RestResponse} restResponse\n * @param {boolean} showDescription\n * @return {SearchResponse}\n */\nfunction adaptApiResponse( urlGeneratorInstance, query, restResponse, showDescription ) {\n\treturn {\n\t\tquery,\n\t\tresults: restResponse.pages.map( ( page, index ) => {\n\t\t\tconst thumbnail = page.thumbnail;\n\t\t\treturn {\n\t\t\t\tid: page.id,\n\t\t\t\tvalue: page.id || -( index + 1 ),\n\t\t\t\tlabel: page.title,\n\t\t\t\tkey: page.key,\n\t\t\t\ttitle: page.title,\n\t\t\t\tdescription: showDescription ? page.description : undefined,\n\t\t\t\turl: urlGeneratorInstance.generateUrl( page ),\n\t\t\t\tthumbnail: thumbnail ? {\n\t\t\t\t\turl: thumbnail.url,\n\t\t\t\t\twidth: nullish( thumbnail.width, undefined ),\n\t\t\t\t\theight: nullish( thumbnail.height, undefined )\n\t\t\t\t} : undefined\n\t\t\t};\n\t\t} )\n\t};\n}\n\n/**\n * @typedef {Object} AbortableSearchFetch\n * @property {Promise<SearchResponse>} fetch\n * @property {Function} abort\n */\n\n/**\n * @callback fetchByTitle\n * @param {string} query The search term.\n * @param {number} [limit] Maximum number of results.\n * @param {boolean} [showDescription] Whether descriptions should be added to the results.\n * @return {AbortableSearchFetch}\n */\n\n/**\n * @callback loadMore\n * @param {string} query The search term.\n * @param {number} offset The number of search results that were already loaded.\n * @param {number} [limit] How many further search results to load (at most).\n * @param {boolean} [showDescription] Whether descriptions should be added to the results.\n * @return {AbortableSearchFetch}\n */\n\n/**\n * @typedef {Object} SearchClient\n * @property {fetchRecommendationByTitle} fetchRecommendationByTitle\n * @property {fetchByTitle} fetchByTitle\n * @property {loadMore} [loadMore]\n */\n\n/**\n * @param {string} searchApiUrl\n * @param {UrlGenerator} urlGeneratorInstance\n * @param {string} recommendationApiUrl\n * @return {SearchClient}\n */\nfunction restSearchClient( searchApiUrl, urlGeneratorInstance, recommendationApiUrl = null ) {\n\treturn {\n\t\t/**\n\t\t * @type {fetchRecommendationByTitle}\n\t\t */\n\t\tfetchRecommendationByTitle: recommendationApiUrl ? ( currentTitle, showDescription = true ) => {\n\t\t\tconst result = fetchJson( recommendationApiUrl.replace( /\\$1/g, currentTitle ), {\n\t\t\t\theaders: {\n\t\t\t\t\taccept: 'application/json'\n\t\t\t\t}\n\t\t\t} );\n\t\t\tconst recommendationResponsePromise = result.fetch\n\t\t\t\t.then( ( /** @type {RestResponse} */ res ) => adaptApiResponse(\n\t\t\t\t\turlGeneratorInstance, '', res, showDescription\n\t\t\t\t) );\n\t\t\treturn {\n\t\t\t\tabort: result.abort,\n\t\t\t\tfetch: recommendationResponsePromise\n\t\t\t};\n\t\t} : undefined,\n\t\t/**\n\t\t * @type {fetchByTitle}\n\t\t */\n\t\tfetchByTitle: ( q, limit = 10, showDescription = true ) => {\n\t\t\tconst params = { q, limit: limit.toString() };\n\t\t\tconst search = new URLSearchParams( params );\n\t\t\tconst url = `${ searchApiUrl }/v1/search/title?${ search.toString() }`;\n\t\t\tconst result = fetchJson( url, {\n\t\t\t\theaders: {\n\t\t\t\t\taccept: 'application/json'\n\t\t\t\t}\n\t\t\t} );\n\t\t\tconst searchResponsePromise = result.fetch\n\t\t\t\t.then( ( /** @type {RestResponse} */ res ) => adaptApiResponse(\n\t\t\t\t\turlGeneratorInstance, q, res, showDescription\n\t\t\t\t) );\n\t\t\treturn {\n\t\t\t\tabort: result.abort,\n\t\t\t\tfetch: searchResponsePromise\n\t\t\t};\n\t\t}\n\t};\n}\n\nmodule.exports = restSearchClient;\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/types.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/urlGenerator.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'Record' is undefined.","line":2,"column":1,"nodeType":"Block","endLine":2,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'RestResult' is undefined.","line":9,"column":1,"nodeType":"Block","endLine":9,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'SearchResult' is undefined.","line":9,"column":1,"nodeType":"Block","endLine":9,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'RestResult' is undefined.","line":29,"column":1,"nodeType":"Block","endLine":29,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'SearchResult' is undefined.","line":29,"column":1,"nodeType":"Block","endLine":29,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * @typedef {Record<string,string>} UrlParams\n * @param {string} title\n * @param {string} fulltext\n */\n\n/**\n * @callback generateUrl\n * @param {RestResult|SearchResult|string} searchResult\n * @param {UrlParams} [params]\n * @param {string} [articlePath]\n * @return {string}\n */\n\n/**\n * @typedef {Object} UrlGenerator\n * @property {generateUrl} generateUrl\n */\n\n/**\n * Generates URLs for suggestions like those in MediaWiki's mediawiki.searchSuggest implementation.\n *\n * @param {string} articlePath\n * @return {UrlGenerator}\n */\nfunction urlGenerator( articlePath ) {\n\treturn {\n\t\t/**\n\t\t * @param {RestResult|SearchResult|string} suggestion\n\t\t * @param {UrlParams} params\n\t\t * @return {string}\n\t\t */\n\t\tgenerateUrl(\n\t\t\tsuggestion,\n\t\t\tparams = {\n\t\t\t\ttitle: 'Special:Search'\n\t\t\t}\n\t\t) {\n\t\t\tif ( typeof suggestion !== 'string' ) {\n\t\t\t\tsuggestion = suggestion.title;\n\t\t\t} else {\n\t\t\t\t// Add `fulltext` query param to search within pages and for navigation\n\t\t\t\t// to the search results page (prevents being redirected to a certain\n\t\t\t\t// article).\n\t\t\t\tparams = Object.assign( {}, params, {\n\t\t\t\t\tfulltext: '1'\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tconst searchParams = new URLSearchParams(\n\t\t\t\tObject.assign( {}, params, { search: suggestion } )\n\t\t\t);\n\t\t\treturn `${ articlePath }?${ searchParams.toString() }`;\n\t\t}\n\t};\n}\n\n/** @module urlGenerator */\nmodule.exports = urlGenerator;\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/ApiSandbox.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/ApiSandboxLayout.js","messages":[{"ruleId":"jsdoc/require-returns","severity":1,"message":"Found more than one @return declaration.","line":44,"column":1,"nodeType":"Block","endLine":54,"endColumn":4},{"ruleId":"jsdoc/require-returns-check","severity":1,"message":"Found more than one @return declaration.","line":44,"column":1,"nodeType":"Block","endLine":54,"endColumn":4}],"suppressedMessages":[{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":250,"column":2,"nodeType":"CallExpression","endLine":254,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":335,"column":5,"nodeType":"CallExpression","endLine":337,"endColumn":8,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":351,"column":3,"nodeType":"CallExpression","endLine":351,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-map-util","severity":2,"message":"Prefer Array#map to $.map","line":355,"column":13,"nodeType":"CallExpression","endLine":358,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-map-util","severity":2,"message":"Prefer Array#map to $.map","line":662,"column":20,"nodeType":"CallExpression","endLine":662,"endColumn":106,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":686,"column":3,"nodeType":"CallExpression","endLine":689,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":704,"column":2,"nodeType":"CallExpression","endLine":716,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":727,"column":2,"nodeType":"CallExpression","endLine":737,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"const ParamLabelWidget = require( './ParamLabelWidget.js' ),\n\tOptionalParamWidget = require( './OptionalParamWidget.js' ),\n\tApiSandbox = require( './ApiSandbox.js' ),\n\tUtil = require( './Util.js' );\n\n/**\n * PageLayout for API modules\n *\n * @class\n * @private\n * @extends OO.ui.PageLayout\n * @constructor\n * @param {Object} [config] Configuration options\n */\nfunction ApiSandboxLayout( config ) {\n\tconfig = Object.assign( { prefix: '', expanded: false }, config );\n\tthis.displayText = config.key;\n\tthis.apiModule = config.path;\n\tthis.prefix = config.prefix;\n\tthis.paramInfo = null;\n\tthis.apiIsValid = true;\n\tthis.loadFromQueryParams = null;\n\tthis.widgets = {};\n\tthis.itemsFieldset = null;\n\tthis.deprecatedItemsFieldset = null;\n\tthis.templatedItemsCache = {};\n\tthis.tokenWidget = null;\n\tthis.indentLevel = config.indentLevel ? config.indentLevel : 0;\n\tApiSandboxLayout.super.call( this, config.key, config );\n\tthis.loadParamInfo();\n}\n\nOO.inheritClass( ApiSandboxLayout, OO.ui.PageLayout );\n\nApiSandboxLayout.prototype.setupOutlineItem = function () {\n\tthis.outlineItem.setLevel( this.indentLevel );\n\tthis.outlineItem.setLabel( this.displayText );\n\tthis.outlineItem.setIcon( this.apiIsValid || ApiSandbox.suppressErrors ? null : 'alert' );\n\tthis.outlineItem.setTitle(\n\t\tthis.apiIsValid || ApiSandbox.suppressErrors ? '' : mw.message( 'apisandbox-alert-page' ).plain()\n\t);\n};\n\n/**\n * Create a widget and the FieldLayouts it needs\n *\n * @private\n * @param {Object} ppi API paraminfo data for the parameter\n * @param {string} name API parameter name\n * @return {Object}\n * @return {OO.ui.Widget} return.widget\n * @return {OO.ui.FieldLayout} return.widgetField\n * @return {OO.ui.FieldLayout} return.helpField\n */\nApiSandboxLayout.prototype.makeWidgetFieldLayouts = function ( ppi, name ) {\n\tconst widget = Util.createWidgetForParameter( ppi );\n\tif ( ppi.tokentype ) {\n\t\tthis.tokenWidget = widget;\n\t}\n\tif ( this.paramInfo.templatedparameters.length ) {\n\t\twidget.on( 'change', () => {\n\t\t\tthis.updateTemplatedParameters( null );\n\t\t} );\n\t}\n\n\tconst helpLabel = new ParamLabelWidget();\n\n\tlet $tmp = Util.parseHTML( ppi.description );\n\t$tmp.filter( 'dl' ).makeCollapsible( {\n\t\tcollapsed: true\n\t} ).children( '.mw-collapsible-toggle' ).each( ( i, el ) => {\n\t\tconst $el = $( el );\n\t\t$el.parent().prev( 'p' ).append( $el );\n\t} );\n\thelpLabel.addDescription( $tmp );\n\n\tif ( ppi.info && ppi.info.length ) {\n\t\tfor ( let i = 0; i < ppi.info.length; i++ ) {\n\t\t\thelpLabel.addInfo( Util.parseHTML( ppi.info[ i ].text ) );\n\t\t}\n\t}\n\tlet flag = true;\n\tlet count = Infinity;\n\tlet tmp;\n\tswitch ( ppi.type ) {\n\t\tcase 'namespace':\n\t\t\tflag = false;\n\t\t\tcount = mw.config.get( 'wgFormattedNamespaces' ).length;\n\t\t\tbreak;\n\n\t\tcase 'limit':\n\t\t\ttmp = [\n\t\t\t\tmw.message(\n\t\t\t\t\t'paramvalidator-help-type-number-minmax', 1,\n\t\t\t\t\twidget.paramInfo.min, widget.paramInfo.apiSandboxMax\n\t\t\t\t).parse(),\n\t\t\t\tmw.message( 'apisandbox-param-limit' ).parse()\n\t\t\t];\n\t\t\thelpLabel.addInfo( Util.parseHTML( tmp.join( mw.msg( 'word-separator' ) ) ) );\n\t\t\tbreak;\n\n\t\tcase 'integer':\n\t\t\ttmp = '';\n\t\t\tif ( ppi.min !== undefined ) {\n\t\t\t\ttmp += 'min';\n\t\t\t}\n\t\t\tif ( ppi.max !== undefined ) {\n\t\t\t\ttmp += 'max';\n\t\t\t}\n\t\t\tif ( tmp !== '' ) {\n\t\t\t\thelpLabel.addInfo(\n\t\t\t\t\tUtil.parseMsg(\n\t\t\t\t\t\t'paramvalidator-help-type-number-' + tmp,\n\t\t\t\t\t\tUtil.apiBool( ppi.multi ) ? 2 : 1,\n\t\t\t\t\t\tppi.min, ppi.max\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tif ( Array.isArray( ppi.type ) ) {\n\t\t\t\tflag = false;\n\t\t\t\tcount = ppi.type.length;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\tif ( Util.apiBool( ppi.multi ) ) {\n\t\ttmp = [];\n\t\tif ( flag && !( widget instanceof OO.ui.TagMultiselectWidget ) &&\n\t\t\t!(\n\t\t\t\twidget instanceof OptionalParamWidget &&\n\t\t\t\twidget.widget instanceof OO.ui.TagMultiselectWidget\n\t\t\t)\n\t\t) {\n\t\t\ttmp.push( mw.message( 'api-help-param-multi-separate' ).parse() );\n\t\t}\n\t\tif ( count > ppi.lowlimit ) {\n\t\t\ttmp.push(\n\t\t\t\tmw.message( 'paramvalidator-help-multi-max', ppi.lowlimit, ppi.highlimit ).parse()\n\t\t\t);\n\t\t}\n\t\tif ( tmp.length ) {\n\t\t\thelpLabel.addInfo( Util.parseHTML( tmp.join( mw.msg( 'word-separator' ) ) ) );\n\t\t}\n\t}\n\tif ( 'maxbytes' in ppi ) {\n\t\thelpLabel.addInfo( Util.parseMsg( 'paramvalidator-help-type-string-maxbytes', ppi.maxbytes ) );\n\t}\n\tif ( 'maxchars' in ppi ) {\n\t\thelpLabel.addInfo( Util.parseMsg( 'paramvalidator-help-type-string-maxchars', ppi.maxchars ) );\n\t}\n\tif ( ppi.usedTemplateVars && ppi.usedTemplateVars.length ) {\n\t\t$tmp = $();\n\t\tfor ( let j = 0, l = ppi.usedTemplateVars.length; j < l; j++ ) {\n\t\t\t$tmp = $tmp.add( $( '<var>' ).text( ppi.usedTemplateVars[ j ] ) );\n\t\t\tif ( j === l - 2 ) {\n\t\t\t\t$tmp = $tmp.add( mw.message( 'and' ).parseDom() );\n\t\t\t\t$tmp = $tmp.add( mw.message( 'word-separator' ).parseDom() );\n\t\t\t} else if ( j !== l - 1 ) {\n\t\t\t\t$tmp = $tmp.add( mw.message( 'comma-separator' ).parseDom() );\n\t\t\t}\n\t\t}\n\t\thelpLabel.addInfo(\n\t\t\tUtil.parseMsg(\n\t\t\t\t'apisandbox-templated-parameter-reason',\n\t\t\t\tppi.usedTemplateVars.length,\n\t\t\t\t$tmp\n\t\t\t)\n\t\t);\n\t}\n\n\t// TODO: Consder adding more options for the position of helpInline\n\t// so that this can become part of the widgetField, instead of\n\t// having to use a separate field.\n\tconst helpField = new OO.ui.FieldLayout(\n\t\thelpLabel,\n\t\t{\n\t\t\talign: 'top',\n\t\t\tclasses: [ 'mw-apisandbox-help-field' ]\n\t\t}\n\t);\n\n\tconst layoutConfig = {\n\t\talign: 'left',\n\t\tclasses: [ 'mw-apisandbox-widget-field' ],\n\t\tlabel: name\n\t};\n\n\tlet widgetField;\n\tif ( ppi.tokentype ) {\n\t\tconst button = new OO.ui.ButtonWidget( {\n\t\t\tlabel: mw.msg( 'apisandbox-fetch-token' )\n\t\t} );\n\t\tbutton.on( 'click', () => {\n\t\t\twidget.fetchToken();\n\t\t} );\n\n\t\twidgetField = new OO.ui.ActionFieldLayout( widget, button, layoutConfig );\n\t} else {\n\t\twidgetField = new OO.ui.FieldLayout( widget, layoutConfig );\n\t}\n\n\t// We need our own click handler on the widget label to\n\t// turn off the disablement.\n\twidgetField.$label.on( 'click', () => {\n\t\tif ( typeof widget.setDisabled === 'function' ) {\n\t\t\twidget.setDisabled( false );\n\t\t}\n\t\tif ( typeof widget.focus === 'function' ) {\n\t\t\twidget.focus();\n\t\t}\n\t} );\n\n\t// Don't grey out the label when the field is disabled,\n\t// it makes it too hard to read and our \"disabled\"\n\t// isn't really disabled.\n\twidgetField.onFieldDisable( false );\n\twidgetField.onFieldDisable = function () {};\n\n\twidgetField.apiParamIndex = ppi.index;\n\n\treturn {\n\t\twidget: widget,\n\t\twidgetField: widgetField,\n\t\thelpField: helpField\n\t};\n};\n\n/**\n * Update templated parameters in the page\n *\n * @private\n * @param {Object} [params] Query parameters for initializing the widgets\n */\nApiSandboxLayout.prototype.updateTemplatedParameters = function ( params ) {\n\tconst pi = this.paramInfo,\n\t\tprefix = this.prefix + pi.prefix;\n\n\tif ( !pi || !pi.templatedparameters.length ) {\n\t\treturn;\n\t}\n\n\tif ( !$.isPlainObject( params ) ) {\n\t\tparams = null;\n\t}\n\n\tlet toRemove = {};\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( this.templatedItemsCache, ( k, el ) => {\n\t\tif ( el.widget.isElementAttached() ) {\n\t\t\ttoRemove[ k ] = el;\n\t\t}\n\t} );\n\n\t// This bit duplicates the PHP logic in ApiBase::extractRequestParams().\n\t// If you update this, see if that needs updating too.\n\tconst toProcess = pi.templatedparameters.map( ( info ) => ( {\n\t\tname: prefix + info.name,\n\t\tinfo: info,\n\t\tvars: Object.assign( {}, info.templatevars ),\n\t\tusedVars: []\n\t} ) );\n\tlet p;\n\tconst doProcess = ( placeholder, target ) => {\n\t\ttarget = prefix + target;\n\n\t\tif ( !this.widgets[ target ] ) {\n\t\t\t// The target wasn't processed yet, try the next one.\n\t\t\t// If all hit this case, the parameter has no expansions.\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( !this.widgets[ target ].getApiValueForTemplates ) {\n\t\t\t// Not a multi-valued widget, so it can't have expansions.\n\t\t\treturn false;\n\t\t}\n\n\t\tconst values = this.widgets[ target ].getApiValueForTemplates();\n\t\tif ( !Array.isArray( values ) || !values.length ) {\n\t\t\t// The target was processed but has no (valid) values.\n\t\t\t// That means it has no expansions.\n\t\t\treturn false;\n\t\t}\n\n\t\t// Expand this target in the name and all other targets,\n\t\t// then requeue if there are more targets left or create the widget\n\t\t// and add it to the form if all are done.\n\t\tdelete p.vars[ placeholder ];\n\t\tconst usedVars = p.usedVars.concat( [ target ] );\n\t\tplaceholder = '{' + placeholder + '}';\n\t\tconst done = $.isEmptyObject( p.vars );\n\t\tlet index, container;\n\t\tif ( done ) {\n\t\t\tcontainer = Util.apiBool( p.info.deprecated ) ? this.deprecatedItemsFieldset : this.itemsFieldset;\n\t\t\tconst items = container.getItems();\n\t\t\tfor ( let i = 0; i < items.length; i++ ) {\n\t\t\t\tif ( items[ i ].apiParamIndex !== undefined && items[ i ].apiParamIndex > p.info.index ) {\n\t\t\t\t\tindex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tvalues.forEach( ( value ) => {\n\t\t\tif ( !/^[^{}]*$/.exec( value ) ) {\n\t\t\t\t// Skip values that make invalid parameter names\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst name = p.name.replace( placeholder, value );\n\t\t\tif ( done ) {\n\t\t\t\tlet tmp;\n\t\t\t\tif ( this.templatedItemsCache[ name ] ) {\n\t\t\t\t\ttmp = this.templatedItemsCache[ name ];\n\t\t\t\t} else {\n\t\t\t\t\ttmp = this.makeWidgetFieldLayouts(\n\t\t\t\t\t\tObject.assign( {}, p.info, { usedTemplateVars: usedVars } ), name\n\t\t\t\t\t);\n\t\t\t\t\tthis.templatedItemsCache[ name ] = tmp;\n\t\t\t\t}\n\t\t\t\tdelete toRemove[ name ];\n\t\t\t\tif ( !tmp.widget.isElementAttached() ) {\n\t\t\t\t\tthis.widgets[ name ] = tmp.widget;\n\t\t\t\t\tcontainer.addItems( [ tmp.widgetField, tmp.helpField ], index );\n\t\t\t\t\tif ( index !== undefined ) {\n\t\t\t\t\t\tindex += 2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ( params ) {\n\t\t\t\t\ttmp.widget.setApiValue( Object.prototype.hasOwnProperty.call( params, name ) ? params[ name ] : undefined );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst newVars = {};\n\t\t\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t\t\t$.each( p.vars, ( k, v ) => {\n\t\t\t\t\tnewVars[ k ] = v.replace( placeholder, value );\n\t\t\t\t} );\n\t\t\t\ttoProcess.push( {\n\t\t\t\t\tname: name,\n\t\t\t\t\tinfo: p.info,\n\t\t\t\t\tvars: newVars,\n\t\t\t\t\tusedVars: usedVars\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t\treturn false;\n\t};\n\twhile ( toProcess.length ) {\n\t\tp = toProcess.shift();\n\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t$.each( p.vars, doProcess );\n\t}\n\n\t// eslint-disable-next-line no-jquery/no-map-util\n\ttoRemove = $.map( toRemove, ( el, name ) => {\n\t\tdelete this.widgets[ name ];\n\t\treturn [ el.widgetField, el.helpField ];\n\t} );\n\tif ( toRemove.length ) {\n\t\tthis.itemsFieldset.removeItems( toRemove );\n\t\tthis.deprecatedItemsFieldset.removeItems( toRemove );\n\t}\n};\n\n/**\n * Fetch module information for this page's module, then create UI\n */\nApiSandboxLayout.prototype.loadParamInfo = function () {\n\tlet dynamicFieldset, dynamicParamNameWidget;\n\tconst removeDynamicParamWidget = ( name, item ) => {\n\t\t\tdynamicFieldset.removeItems( [ item ] );\n\t\t\tdelete this.widgets[ name ];\n\t\t},\n\t\taddDynamicParamWidget = () => {\n\t\t\t// Check name is filled in\n\t\t\tconst name = dynamicParamNameWidget.getValue().trim();\n\t\t\tif ( name === '' ) {\n\t\t\t\tdynamicParamNameWidget.focus();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( this.widgets[ name ] !== undefined ) {\n\t\t\t\tApiSandbox.windowManager.openWindow( 'errorAlert', {\n\t\t\t\t\ttitle: Util.parseMsg( 'apisandbox-dynamic-error-exists', name ),\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taction: 'accept',\n\t\t\t\t\t\t\tlabel: OO.ui.msg( 'ooui-dialog-process-dismiss' ),\n\t\t\t\t\t\t\tflags: 'primary'\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst widget = Util.createWidgetForParameter( {\n\t\t\t\tname: name,\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: ''\n\t\t\t}, {\n\t\t\t\tnooptional: true\n\t\t\t} );\n\t\t\tconst button = new OO.ui.ButtonWidget( {\n\t\t\t\ticon: 'trash',\n\t\t\t\tflags: 'destructive'\n\t\t\t} );\n\t\t\tconst actionFieldLayout = new OO.ui.ActionFieldLayout(\n\t\t\t\twidget,\n\t\t\t\tbutton,\n\t\t\t\t{\n\t\t\t\t\tlabel: name,\n\t\t\t\t\talign: 'left'\n\t\t\t\t}\n\t\t\t);\n\t\t\tbutton.on( 'click', () => {\n\t\t\t\tremoveDynamicParamWidget( name, actionFieldLayout );\n\t\t\t} );\n\t\t\tthis.widgets[ name ] = widget;\n\t\t\tdynamicFieldset.addItems( [ actionFieldLayout ], dynamicFieldset.getItemCount() - 1 );\n\t\t\twidget.focus();\n\n\t\t\tdynamicParamNameWidget.setValue( '' );\n\t\t};\n\n\tthis.$element.empty()\n\t\t.append(\n\t\t\tdocument.createTextNode(\n\t\t\t\tmw.msg( 'apisandbox-loading', this.displayText )\n\t\t\t),\n\t\t\tnew OO.ui.ProgressBarWidget( { progress: false } ).$element\n\t\t);\n\n\tUtil.fetchModuleInfo( this.apiModule )\n\t\t.done( ( pi ) => {\n\t\t\tconst items = [],\n\t\t\t\tdeprecatedItems = [],\n\t\t\t\tbuttons = [],\n\t\t\t\tfilterFmModules = ( v ) => !v.endsWith( 'fm' ) ||\n\t\t\t\t\t!Object.prototype.hasOwnProperty.call( ApiSandbox.availableFormats, v.slice( 0, -2 ) );\n\n\t\t\t// This is something of a hack. We always want the 'format' and\n\t\t\t// 'action' parameters from the main module to be specified,\n\t\t\t// and for 'format' we also want to simplify the dropdown since\n\t\t\t// we always send the 'fm' variant.\n\t\t\tif ( this.apiModule === 'main' ) {\n\t\t\t\tpi.parameters.forEach( ( parameter ) => {\n\t\t\t\t\tif ( parameter.name === 'action' ) {\n\t\t\t\t\t\tparameter.required = true;\n\t\t\t\t\t\tdelete parameter.default;\n\t\t\t\t\t}\n\t\t\t\t\tif ( parameter.name === 'format' ) {\n\t\t\t\t\t\tconst types = parameter.type;\n\t\t\t\t\t\ttypes.forEach( ( type ) => {\n\t\t\t\t\t\t\tApiSandbox.availableFormats[ type ] = true;\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tparameter.type = types.filter( filterFmModules );\n\t\t\t\t\t\tparameter.default = 'json';\n\t\t\t\t\t\tparameter.required = true;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Hide the 'wrappedhtml' parameter on format modules\n\t\t\t// and make formatversion default to the latest version for humans\n\t\t\t// (even though machines get a different default for b/c)\n\t\t\tif ( pi.group === 'format' ) {\n\t\t\t\tpi.parameters = pi.parameters.filter( ( p ) => p.name !== 'wrappedhtml' ).map( ( p ) => {\n\t\t\t\t\tif ( p.name === 'formatversion' ) {\n\t\t\t\t\t\t// Use the highest numeric value\n\t\t\t\t\t\tp.default = p.type.reduce( ( prev, current ) => !isNaN( current ) ? Math.max( prev, current ) : prev );\n\t\t\t\t\t\tp.required = true;\n\t\t\t\t\t}\n\t\t\t\t\treturn p;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tthis.paramInfo = pi;\n\n\t\t\tlet $desc = Util.parseHTML( pi.description );\n\t\t\tif ( pi.deprecated !== undefined ) {\n\t\t\t\t$desc = $( '<span>' ).addClass( 'apihelp-deprecated' ).text( mw.msg( 'api-help-param-deprecated' ) )\n\t\t\t\t\t.add( document.createTextNode( mw.msg( 'word-separator' ) ) ).add( $desc );\n\t\t\t}\n\t\t\tif ( pi.internal !== undefined ) {\n\t\t\t\t$desc = $( '<span>' ).addClass( 'apihelp-internal' ).text( mw.msg( 'api-help-param-internal' ) )\n\t\t\t\t\t.add( document.createTextNode( mw.msg( 'word-separator' ) ) ).add( $desc );\n\t\t\t}\n\t\t\titems.push( new OO.ui.FieldLayout(\n\t\t\t\tnew OO.ui.Widget( {} ).toggle( false ), {\n\t\t\t\t\talign: 'top',\n\t\t\t\t\tlabel: $desc\n\t\t\t\t}\n\t\t\t) );\n\n\t\t\tif ( pi.helpurls.length ) {\n\t\t\t\tbuttons.push( new OO.ui.PopupButtonWidget( {\n\t\t\t\t\t$overlay: true,\n\t\t\t\t\tlabel: mw.msg( 'apisandbox-helpurls' ),\n\t\t\t\t\ticon: 'help',\n\t\t\t\t\tpopup: {\n\t\t\t\t\t\twidth: 'auto',\n\t\t\t\t\t\tpadded: true,\n\t\t\t\t\t\tclasses: [ 'mw-apisandbox-popup-help' ],\n\t\t\t\t\t\t$content: $( '<ul>' ).append( pi.helpurls.map( ( link ) => $( '<li>' ).append( $( '<a>' )\n\t\t\t\t\t\t\t.attr( { href: link, target: '_blank' } )\n\t\t\t\t\t\t\t.text( link )\n\t\t\t\t\t\t) ) )\n\t\t\t\t\t}\n\t\t\t\t} ) );\n\t\t\t}\n\n\t\t\tif ( pi.examples.length ) {\n\t\t\t\tbuttons.push( new OO.ui.PopupButtonWidget( {\n\t\t\t\t\t$overlay: true,\n\t\t\t\t\tlabel: mw.msg( 'apisandbox-examples' ),\n\t\t\t\t\ticon: 'code',\n\t\t\t\t\tpopup: {\n\t\t\t\t\t\twidth: 'auto',\n\t\t\t\t\t\tpadded: true,\n\t\t\t\t\t\tclasses: [ 'mw-apisandbox-popup-help' ],\n\t\t\t\t\t\t$content: $( '<ul>' ).append( pi.examples.map( ( example ) => {\n\t\t\t\t\t\t\tconst $a = $( '<a>' )\n\t\t\t\t\t\t\t\t.attr( 'href', '#' + example.query )\n\t\t\t\t\t\t\t\t.html( example.description );\n\t\t\t\t\t\t\t$a.find( 'a' ).contents().unwrap(); // Can't nest links\n\t\t\t\t\t\t\treturn $( '<li>' ).append( $a );\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t} ) );\n\t\t\t}\n\n\t\t\tif ( buttons.length ) {\n\t\t\t\titems.push( new OO.ui.FieldLayout(\n\t\t\t\t\tnew OO.ui.ButtonGroupWidget( {\n\t\t\t\t\t\titems: buttons\n\t\t\t\t\t} ), { align: 'top' }\n\t\t\t\t) );\n\t\t\t}\n\n\t\t\tif ( pi.parameters.length ) {\n\t\t\t\tconst prefix = this.prefix + pi.prefix;\n\t\t\t\tpi.parameters.forEach( ( parameter ) => {\n\t\t\t\t\tconst tmpLayout = this.makeWidgetFieldLayouts( parameter, prefix + parameter.name );\n\t\t\t\t\tthis.widgets[ prefix + parameter.name ] = tmpLayout.widget;\n\t\t\t\t\tif ( Util.apiBool( parameter.deprecated ) ) {\n\t\t\t\t\t\tdeprecatedItems.push( tmpLayout.widgetField, tmpLayout.helpField );\n\t\t\t\t\t} else {\n\t\t\t\t\t\titems.push( tmpLayout.widgetField, tmpLayout.helpField );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( !pi.parameters.length && !Util.apiBool( pi.dynamicparameters ) ) {\n\t\t\t\titems.push( new OO.ui.FieldLayout(\n\t\t\t\t\tnew OO.ui.Widget( {} ).toggle( false ), {\n\t\t\t\t\t\talign: 'top',\n\t\t\t\t\t\tlabel: Util.parseMsg( 'apisandbox-no-parameters' )\n\t\t\t\t\t}\n\t\t\t\t) );\n\t\t\t}\n\n\t\t\tthis.$element.empty();\n\n\t\t\tthis.itemsFieldset = new OO.ui.FieldsetLayout( {\n\t\t\t\tlabel: this.displayText\n\t\t\t} );\n\t\t\tthis.itemsFieldset.addItems( items );\n\t\t\tthis.itemsFieldset.$element.appendTo( this.$element );\n\n\t\t\tif ( Util.apiBool( pi.dynamicparameters ) ) {\n\t\t\t\tdynamicFieldset = new OO.ui.FieldsetLayout();\n\t\t\t\tdynamicParamNameWidget = new OO.ui.TextInputWidget( {\n\t\t\t\t\tplaceholder: mw.msg( 'apisandbox-dynamic-parameters-add-placeholder' )\n\t\t\t\t} ).on( 'enter', addDynamicParamWidget );\n\t\t\t\tdynamicFieldset.addItems( [\n\t\t\t\t\tnew OO.ui.FieldLayout(\n\t\t\t\t\t\tnew OO.ui.Widget( {} ).toggle( false ), {\n\t\t\t\t\t\t\talign: 'top',\n\t\t\t\t\t\t\tlabel: Util.parseHTML( pi.dynamicparameters )\n\t\t\t\t\t\t}\n\t\t\t\t\t),\n\t\t\t\t\tnew OO.ui.ActionFieldLayout(\n\t\t\t\t\t\tdynamicParamNameWidget,\n\t\t\t\t\t\tnew OO.ui.ButtonWidget( {\n\t\t\t\t\t\t\ticon: 'add',\n\t\t\t\t\t\t\tflags: 'progressive'\n\t\t\t\t\t\t} ).on( 'click', addDynamicParamWidget ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: mw.msg( 'apisandbox-dynamic-parameters-add-label' ),\n\t\t\t\t\t\t\talign: 'left'\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t] );\n\t\t\t\t$( '<fieldset>' )\n\t\t\t\t\t.append(\n\t\t\t\t\t\t$( '<legend>' ).text( mw.msg( 'apisandbox-dynamic-parameters' ) ),\n\t\t\t\t\t\tdynamicFieldset.$element\n\t\t\t\t\t)\n\t\t\t\t\t.appendTo( this.$element );\n\t\t\t}\n\n\t\t\tthis.deprecatedItemsFieldset = new OO.ui.FieldsetLayout().addItems( deprecatedItems ).toggle( false );\n\t\t\tconst $tmp = $( '<fieldset>' )\n\t\t\t\t.toggle( !this.deprecatedItemsFieldset.isEmpty() )\n\t\t\t\t.append(\n\t\t\t\t\t$( '<legend>' ).append(\n\t\t\t\t\t\tnew OO.ui.ToggleButtonWidget( {\n\t\t\t\t\t\t\tlabel: mw.msg( 'apisandbox-deprecated-parameters' )\n\t\t\t\t\t\t} ).on( 'change', () => {\n\t\t\t\t\t\t\tthis.deprecatedItemsFieldset.toggle();\n\t\t\t\t\t\t} ).$element\n\t\t\t\t\t),\n\t\t\t\t\tthis.deprecatedItemsFieldset.$element\n\t\t\t\t)\n\t\t\t\t.appendTo( this.$element );\n\t\t\tthis.deprecatedItemsFieldset.on( 'add', () => {\n\t\t\t\t$tmp.toggle( !this.deprecatedItemsFieldset.isEmpty() );\n\t\t\t} );\n\t\t\tthis.deprecatedItemsFieldset.on( 'remove', () => {\n\t\t\t\t$tmp.toggle( !this.deprecatedItemsFieldset.isEmpty() );\n\t\t\t} );\n\t\t\t// Load stored params, if any, then update the booklet if we\n\t\t\t// have subpages (or else just update our valid-indicator).\n\t\t\tconst tmp = this.loadFromQueryParams;\n\t\t\tthis.loadFromQueryParams = null;\n\t\t\tif ( $.isPlainObject( tmp ) ) {\n\t\t\t\tthis.loadQueryParams( tmp );\n\t\t\t} else {\n\t\t\t\tthis.updateTemplatedParameters();\n\t\t\t}\n\t\t\tif ( this.getSubpages().length > 0 ) {\n\t\t\t\tApiSandbox.updateUI( tmp );\n\t\t\t} else {\n\t\t\t\tthis.apiCheckValid();\n\t\t\t}\n\t\t} ).fail( ( code, detail ) => {\n\t\t\tthis.$element.empty()\n\t\t\t\t.append(\n\t\t\t\t\tnew OO.ui.LabelWidget( {\n\t\t\t\t\t\tlabel: mw.msg( 'apisandbox-load-error', this.apiModule, detail ),\n\t\t\t\t\t\tclasses: [ 'error' ]\n\t\t\t\t\t} ).$element,\n\t\t\t\t\tnew OO.ui.ButtonWidget( {\n\t\t\t\t\t\tlabel: mw.msg( 'apisandbox-retry' )\n\t\t\t\t\t} ).on( 'click', () => {\n\t\t\t\t\t\tthis.loadParamInfo();\n\t\t\t\t\t} ).$element\n\t\t\t\t);\n\t\t} );\n};\n\n/**\n * Check that all widgets on the page are in a valid state.\n *\n * @return {jQuery.Promise[]} One promise for each widget, resolved with `false` if invalid\n */\nApiSandboxLayout.prototype.apiCheckValid = function () {\n\tif ( this.paramInfo === null ) {\n\t\treturn [];\n\t} else {\n\t\t// eslint-disable-next-line no-jquery/no-map-util\n\t\tconst promises = $.map( this.widgets, ( widget ) => widget.apiCheckValid( ApiSandbox.suppressErrors ) );\n\t\t$.when( ...promises ).then( ( ...results ) => {\n\t\t\tthis.apiIsValid = !results.includes( false );\n\t\t\tif ( this.getOutlineItem() ) {\n\t\t\t\tthis.getOutlineItem().setIcon( this.apiIsValid || ApiSandbox.suppressErrors ? null : 'alert' );\n\t\t\t\tthis.getOutlineItem().setTitle(\n\t\t\t\t\tthis.apiIsValid || ApiSandbox.suppressErrors ? '' : mw.message( 'apisandbox-alert-page' ).plain()\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t\treturn promises;\n\t}\n};\n\n/**\n * Load form fields from query parameters\n *\n * @param {Object} params\n */\nApiSandboxLayout.prototype.loadQueryParams = function ( params ) {\n\tif ( this.paramInfo === null ) {\n\t\tthis.loadFromQueryParams = params;\n\t} else {\n\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t$.each( this.widgets, ( name, widget ) => {\n\t\t\tconst v = Object.prototype.hasOwnProperty.call( params, name ) ? params[ name ] : undefined;\n\t\t\twidget.setApiValue( v );\n\t\t} );\n\t\tthis.updateTemplatedParameters( params );\n\t}\n};\n\n/**\n * Load query params from form fields\n *\n * @param {Object} params Write query parameters into this object\n * @param {Object} displayParams Write query parameters for display into this object\n * @param {Object} ajaxOptions Write options for the API request into this object, in the format\n *   expected by jQuery#ajax.\n */\nApiSandboxLayout.prototype.getQueryParams = function ( params, displayParams, ajaxOptions ) {\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( this.widgets, ( name, widget ) => {\n\t\tlet value = widget.getApiValue();\n\t\tif ( value !== undefined ) {\n\t\t\tparams[ name ] = value;\n\t\t\tif ( typeof widget.getApiValueForDisplay === 'function' ) {\n\t\t\t\tvalue = widget.getApiValueForDisplay();\n\t\t\t}\n\t\t\tdisplayParams[ name ] = value;\n\t\t\tif ( typeof widget.requiresFormData === 'function' && widget.requiresFormData() ) {\n\t\t\t\tajaxOptions.contentType = 'multipart/form-data';\n\t\t\t}\n\t\t}\n\t} );\n};\n\n/**\n * Fetch a list of subpage names loaded by this page\n *\n * @return {Array}\n */\nApiSandboxLayout.prototype.getSubpages = function () {\n\tconst ret = [];\n\t// eslint-disable-next-line no-jquery/no-each-util\n\t$.each( this.widgets, ( name, widget ) => {\n\t\tif ( typeof widget.getSubmodules === 'function' ) {\n\t\t\twidget.getSubmodules().forEach( ( submodule ) => {\n\t\t\t\tret.push( {\n\t\t\t\t\tkey: name + '=' + submodule.value,\n\t\t\t\t\tpath: submodule.path,\n\t\t\t\t\tprefix: widget.paramInfo.submoduleparamprefix || ''\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\t} );\n\treturn ret;\n};\n\nmodule.exports = ApiSandboxLayout;\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/BooleanToggleSwitchParamWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/DateTimeParamWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/LimitParamWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/OptionalParamWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/ParamLabelWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/PasswordParamWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/TextParamMixin.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/UploadSelectFileParamWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/Util.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-map-util","severity":2,"message":"Prefer Array#map to $.map","line":380,"column":13,"nodeType":"CallExpression","endLine":385,"endColumn":8,"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":592,"column":16,"nodeType":"CallExpression","endLine":592,"endColumn":48,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/UtilMixin.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.apisandbox/init.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/SpecialBlock.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/components/AdditionalDetailsField.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/components/BlockDetailsField.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/components/BlockLog.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/components/BlockTypeField.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/components/ConfirmationDialog.vue","messages":[],"suppressedMessages":[{"ruleId":"vue/no-unused-properties","severity":2,"message":"'open' of property found, but never used.","line":32,"column":3,"nodeType":"Identifier","messageId":"unused","endLine":32,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/components/ExpiryField.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/components/NamespacesField.vue","messages":[],"suppressedMessages":[{"ruleId":"arrow-body-style","severity":2,"message":"Unexpected block statement surrounding arrow body; move the returned value immediately after the `=>`.","line":62,"column":60,"nodeType":"ArrowFunctionExpression","messageId":"unexpectedSingleBlock","endLine":64,"endColumn":6,"fix":{"range":[1866,1943],"text":"item.label.toLowerCase().includes( value.toLowerCase() )"},"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/components/PagesField.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/components/ReasonField.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/components/UserLookup.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/components/ValidatingTextInput.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/init.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'SpecialBlock.block'","line":26,"column":1,"nodeType":"Block","endLine":26,"endColumn":1},{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'SpecialBlock.form'","line":36,"column":1,"nodeType":"Block","endLine":36,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"'use strict';\n\nconst form = document.querySelector( '.mw-htmlform' );\nif ( form ) {\n\tform.id = 'mw-block-form';\n\tconst Vue = require( 'vue' );\n\tconst App = require( './SpecialBlock.vue' );\n\tconst { createPinia } = require( 'pinia' );\n\n\t// Load any extension-provided messages added by the PHP GetAllBlockActions hook.\n\t( new mw.Api() ).loadMessagesIfMissing(\n\t\tObject.keys( mw.config.get( 'partialBlockActionOptions' ) || {} )\n\t).then( () => {\n\t\tVue.createMwApp( App )\n\t\t\t.use( createPinia() )\n\t\t\t.mount( form );\n\t\t// We keep the wrapping form but never want it to submit.\n\t\tform.addEventListener( 'submit', ( e ) => e.preventDefault() );\n\t} );\n}\n\n/**\n * Fired after a successful (re-)block on Special:Block. Only applicable on wikis with\n * {@link https://www.mediawiki.org/wiki/Manual:$wgEnableMultiBlocks multiblocks} enabled.\n *\n * @event ~'SpecialBlock.block'\n * @memberof Hooks\n * @param {Object} data Response from the block API.\n * @stable\n */\n\n/**\n * Fired when the form on Special:Block is opened or closed. Only applicable on wikis with\n * {@link https://www.mediawiki.org/wiki/Manual:$wgEnableMultiBlocks multiblocks} enabled.\n *\n * @event ~'SpecialBlock.form'\n * @memberof Hooks\n * @param {boolean} open Whether the form is open or closed.\n * @param {string} target Username, IP, or IP range.\n * @param {number|null} id The block ID, when editing an existing block.\n * @stable\n */\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/stores/block.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.block/util.js","messages":[],"suppressedMessages":[{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":104,"column":17,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":104,"endColumn":64,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '>>'.","line":104,"column":17,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":104,"endColumn":55,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.changecredentails.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.changeemail.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.changeslist.legend.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.changeslist.watchlistexpiry/watchlistexpiry.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.contributions.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.createaccount/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.createaccount/HtmlformChecker.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-slide","severity":2,"message":"Prefer CSS transitions to .slideUp","line":109,"column":3,"nodeType":"CallExpression","endLine":113,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-slide","severity":2,"message":"Prefer CSS transitions to .slideDown","line":156,"column":4,"nodeType":"CallExpression","endLine":156,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-slide","severity":2,"message":"Prefer CSS transitions to .slideUp","line":163,"column":4,"nodeType":"CallExpression","endLine":163,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.createaccount/signup.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.editrecovery/SpecialEditRecovery.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.editrecovery/init.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.preferences.ooui/confirmClose.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-sizzle","severity":2,"message":"Selector extensions are not allowed","line":11,"column":19,"nodeType":"CallExpression","endLine":11,"endColumn":53,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.preferences.ooui/convertmessagebox.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.preferences.ooui/editfont.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.preferences.ooui/init.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.preferences.ooui/nav-mobile.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.preferences.ooui/nav-tabs.js","messages":[],"suppressedMessages":[{"ruleId":"no-self-assign","severity":2,"message":"'location.href' is assigned to itself.","line":20,"column":19,"nodeType":"MemberExpression","messageId":"selfAssignment","endLine":20,"endColumn":32,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":172,"column":13,"nodeType":"CallExpression","endLine":172,"endColumn":62,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.preferences.ooui/nav.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.preferences.ooui/signature.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.preferences.ooui/skinPrefs.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.preferences.ooui/timezone.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.restsandbox/restsandbox.js","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'dom_id' is not in camel case.","line":10,"column":3,"nodeType":"Identifier","messageId":"notCamelCase","endLine":10,"endColumn":9,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.search.commonsInterwikiWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.search/search.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.specialpages.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.unwatchedPages/unwatchedPages.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":21,"column":10,"nodeType":"CallExpression","endLine":21,"endColumn":52,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.upload/upload.js","messages":[],"suppressedMessages":[{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_binary_data'.","line":445,"column":6,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":445,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier '_binary_data' is not in camel case.","line":445,"column":11,"nodeType":"Identifier","messageId":"notCamelCase","endLine":445,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.userrights.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.watchlist/editwatchlist.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.watchlist/visitedstatus.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.special.watchlist/watchlist.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":114,"column":10,"nodeType":"CallExpression","endLine":114,"endColumn":52,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.storage/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.storage/SafeStorage.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.storage/index.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.tempUserBanner/tempUserBanner.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.tempUserCreated/mediawiki.tempUserCreated.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.template.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'TemplateRenderer' is undefined.","line":26,"column":1,"nodeType":"Block","endLine":26,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'TemplateRenderFunction' is undefined.","line":40,"column":1,"nodeType":"Block","endLine":40,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'TemplateCompileFunction' is undefined.","line":45,"column":1,"nodeType":"Block","endLine":45,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'TemplateCompiler' is undefined.","line":61,"column":1,"nodeType":"Block","endLine":61,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'TemplateCompiler' is undefined.","line":88,"column":1,"nodeType":"Block","endLine":88,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'TemplateRenderer' is undefined.","line":107,"column":1,"nodeType":"Block","endLine":107,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'TemplateRenderer' is undefined.","line":125,"column":1,"nodeType":"Block","endLine":125,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'TemplateRenderer' is undefined.","line":147,"column":1,"nodeType":"Block","endLine":147,"endColumn":1}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":8,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * An extensible library for rendering templates in different template languages.\n * By default only the `html` template library is provided.\n * The Mustache library is also provided in mediawiki core via the mediawiki.template.mustache library.\n *\n * @example\n * // returns $( '<div>hello world</div>' );\n * const $node = mw.template.compile( '<div>hello world</div>', 'html' ).render();\n *\n * // also returns $( '<div>hello world</div>' );\n * mw.loader.using( 'mediawiki.template.mustache' ).then( () => {\n *   const $node = mw.template.compile( '<div>{{ >Foo }}</div>', 'mustache' ).render( {\n *     text: 'Hello world'\n *   }, {\n *     Foo: mw.template.compile( '{{text}}', 'mustache' )\n *   } );\n * } );\n * @namespace mw.template\n */\n\n/**\n * Compiles a template for rendering.\n *\n * @typedef {Function} mw.template~TemplateCompileFunction\n * @param {string} src source of the template\n * @return {TemplateRenderer} for rendering\n */\n\n/**\n * Renders the template to create a jQuery object.\n *\n * @typedef {Function} mw.template~TemplateRenderFunction\n * @param {Object} [data] for the template\n * @param {Object} [partials] additional partial templates\n * @return {jQuery}\n */\n\n/**\n * @typedef {Object} mw.template~TemplateRenderer\n * @property {TemplateRenderFunction} render\n */\n\n/**\n * @typedef {Object} mw.template~TemplateCompiler\n * @property {TemplateCompileFunction} compile\n */\n( function () {\n\tconst compiledTemplates = {},\n\t\tcompilers = {};\n\n\tmw.template = {\n\t\t/**\n\t\t * Register a new compiler.\n\t\t *\n\t\t * A compiler is any object that implements a {@link mw.template.compile} method. The compile() method must\n\t\t * return a Template interface with a method render() that returns HTML.\n\t\t *\n\t\t * The compiler name must correspond with the name suffix of templates that use this compiler.\n\t\t *\n\t\t * @param {string} name Compiler name\n\t\t * @param {TemplateCompiler} compiler\n\t\t */\n\t\tregisterCompiler: function ( name, compiler ) {\n\t\t\tif ( !compiler.compile ) {\n\t\t\t\tthrow new Error( 'Compiler must implement a compile method' );\n\t\t\t}\n\t\t\tcompilers[ name ] = compiler;\n\t\t},\n\n\t\t/**\n\t\t * Get the name of the associated compiler based on a template name.\n\t\t *\n\t\t * @param {string} templateName Name of a template (including suffix)\n\t\t * @return {string} Name of a compiler\n\t\t */\n\t\tgetCompilerName: function ( templateName ) {\n\t\t\tconst nameParts = templateName.split( '.' );\n\t\t\tif ( nameParts.length < 2 ) {\n\t\t\t\tthrow new Error( 'Template name must have a suffix' );\n\t\t\t}\n\t\t\treturn nameParts[ nameParts.length - 1 ];\n\t\t},\n\n\t\t/**\n\t\t * Get a compiler via its name.\n\t\t *\n\t\t * @param {string} name Name of a compiler\n\t\t * @return {TemplateCompiler} The compiler\n\t\t * @throws {Error} when unknown compiler provided\n\t\t */\n\t\tgetCompiler: function ( name ) {\n\t\t\tconst compiler = compilers[ name ];\n\t\t\tif ( !compiler ) {\n\t\t\t\tthrow new Error( 'Unknown compiler ' + name );\n\t\t\t}\n\t\t\treturn compiler;\n\t\t},\n\n\t\t/**\n\t\t * Register a template associated with a module.\n\t\t *\n\t\t * Precompiles the newly added template based on the suffix in its name.\n\t\t *\n\t\t * @param {string} moduleName Name of the ResourceLoader module the template is associated with\n\t\t * @param {string} templateName Name of the template (including suffix)\n\t\t * @param {string} templateBody Contents of the template (e.g. html markup)\n\t\t * @return {TemplateRenderer} Compiled template\n\t\t */\n\t\tadd: function ( moduleName, templateName, templateBody ) {\n\t\t\t// Precompile and add to cache\n\t\t\tconst compiled = this.compile( templateBody, this.getCompilerName( templateName ) );\n\t\t\tif ( !compiledTemplates[ moduleName ] ) {\n\t\t\t\tcompiledTemplates[ moduleName ] = {};\n\t\t\t}\n\t\t\tcompiledTemplates[ moduleName ][ templateName ] = compiled;\n\n\t\t\treturn compiled;\n\t\t},\n\n\t\t/**\n\t\t * Get a compiled template by module and template name.\n\t\t *\n\t\t * @param {string} moduleName Name of the module to retrieve the template from\n\t\t * @param {string} templateName Name of template to be retrieved\n\t\t * @return {TemplateRenderer} Compiled template\n\t\t */\n\t\tget: function ( moduleName, templateName ) {\n\t\t\t// Try cache first\n\t\t\tif ( compiledTemplates[ moduleName ] && compiledTemplates[ moduleName ][ templateName ] ) {\n\t\t\t\treturn compiledTemplates[ moduleName ][ templateName ];\n\t\t\t}\n\n\t\t\tconst moduleTemplates = mw.templates.get( moduleName );\n\t\t\tif ( !moduleTemplates || moduleTemplates[ templateName ] === undefined ) {\n\t\t\t\tthrow new Error( 'Template ' + templateName + ' not found in module ' + moduleName );\n\t\t\t}\n\n\t\t\t// Compiled and add to cache\n\t\t\treturn this.add( moduleName, templateName, moduleTemplates[ templateName ] );\n\t\t},\n\n\t\t/**\n\t\t * Compile a string of template markup with an engine of choice.\n\t\t *\n\t\t * @param {string} templateBody Template body\n\t\t * @param {string} compilerName The name of a registered compiler.\n\t\t * @return {TemplateRenderer} Compiled template\n\t\t * @throws {Error} when unknown compiler name provided.\n\t\t */\n\t\tcompile: function ( templateBody, compilerName ) {\n\t\t\treturn this.getCompiler( compilerName ).compile( templateBody );\n\t\t}\n\t};\n\n\t// Register basic html compiler\n\tmw.template.registerCompiler( 'html', {\n\t\tcompile: function ( src ) {\n\t\t\treturn {\n\t\t\t\trender: function () {\n\t\t\t\t\treturn $( $.parseHTML( src.trim() ) );\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t} );\n\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.template.mustache.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.toc/toc.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.user.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.userSuggest.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.util/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.util/jquery.accessKeyLabel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.util/util.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'util.addPortlet'","line":626,"column":1,"nodeType":"Block","endLine":626,"endColumn":1},{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'util.addPortletLink'","line":795,"column":1,"nodeType":"Block","endLine":795,"endColumn":1}],"suppressedMessages":[{"ruleId":"mediawiki/class-doc","severity":2,"message":"All possible CSS classes should be documented. See https://w.wiki/PS2 for details.","line":595,"column":3,"nodeType":"CallExpression","endLine":598,"endColumn":4,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/variable-pattern","severity":2,"message":"jQuery collection names must match the variablePattern","line":771,"column":4,"nodeType":"AssignmentExpression","endLine":771,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-useless-escape","severity":2,"message":"Unnecessary escape character: \\[.","line":1089,"column":41,"nodeType":"Literal","messageId":"unnecessaryEscape","endLine":1089,"endColumn":42,"suggestions":[{"messageId":"removeEscape","fix":{"range":[35415,35416],"text":""},"desc":"Remove the `\\`. This maintains the current functionality."},{"messageId":"escapeBackslash","fix":{"range":[35415,35415],"text":"\\"},"desc":"Replace the `\\` with `\\\\` to include the actual backslash character."}],"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"'use strict';\n\nlet config = require( './config.json' );\nconst portletLinkOptions = require( './portletLinkOptions.json' );\nconst infinityValues = require( './infinityValues.json' );\n\nrequire( './jquery.accessKeyLabel.js' );\n\n/**\n * Encode the string like PHP's rawurlencode.\n *\n * @ignore\n * @param {string} str String to be encoded.\n * @return {string} Encoded string\n */\nfunction rawurlencode( str ) {\n\treturn encodeURIComponent( String( str ) )\n\t\t.replace( /!/g, '%21' )\n\t\t.replace( /'/g, '%27' )\n\t\t.replace( /\\(/g, '%28' )\n\t\t.replace( /\\)/g, '%29' )\n\t\t.replace( /\\*/g, '%2A' )\n\t\t.replace( /~/g, '%7E' );\n}\n\n/**\n * Private helper function used by util.escapeId*()\n *\n * @ignore\n * @param {string} str String to be encoded\n * @param {string} mode Encoding mode, see documentation at\n *     MainConfigSchema::FragmentMode.\n * @return {string} Encoded string\n */\nfunction escapeIdInternal( str, mode ) {\n\tstr = String( str );\n\n\tswitch ( mode ) {\n\t\tcase 'html5':\n\t\t\treturn str.replace( / /g, '_' );\n\t\tcase 'legacy':\n\t\t\treturn rawurlencode( str.replace( / /g, '_' ) )\n\t\t\t\t.replace( /%3A/g, ':' )\n\t\t\t\t.replace( /%/g, '.' );\n\t\tdefault:\n\t\t\tthrow new Error( 'Unrecognized ID escaping mode ' + mode );\n\t}\n}\n\n/**\n * Library providing useful common skin-agnostic utility functions. Please see\n * [mediawiki.util]{@link module:mediawiki.util}.\n *\n * Alias for the [mediawiki.util]{@link module:mediawiki.util} module.\n *\n * @namespace mw.util\n */\n\n/**\n * Utility library provided by the `mediawiki.util` ResourceLoader module. Accessible inside ResourceLoader modules\n * or for gadgets as part of the [mw global object]{@link mw}.\n *\n * @example\n * // Inside MediaWiki extensions\n * const util = require( 'mediawiki.util' );\n * // In gadgets\n * const mwUtil = mw.util;\n * @exports mediawiki.util\n */\nconst util = {\n\n\t/**\n\t * Encode the string like PHP's rawurlencode.\n\t *\n\t * @method\n\t * @param {string} str String to be encoded.\n\t * @return {string} Encoded string\n\t */\n\trawurlencode: rawurlencode,\n\n\t/**\n\t * Encode a string as CSS id, for use as HTML id attribute value.\n\t *\n\t * Analog to `Sanitizer::escapeIdForAttribute()` in PHP.\n\t *\n\t * @since 1.30\n\t * @param {string} str String to encode\n\t * @return {string} Encoded string\n\t */\n\tescapeIdForAttribute( str ) {\n\t\treturn escapeIdInternal( str, config.FragmentMode[ 0 ] );\n\t},\n\n\t/**\n\t * Encode a string as URL fragment, for use as HTML anchor link.\n\t *\n\t * Analog to `Sanitizer::escapeIdForLink()` in PHP.\n\t *\n\t * @since 1.30\n\t * @param {string} str String to encode\n\t * @return {string} Encoded string\n\t */\n\tescapeIdForLink( str ) {\n\t\treturn escapeIdInternal( str, config.FragmentMode[ 0 ] );\n\t},\n\n\t/**\n\t * Get the target element from a link hash.\n\t *\n\t * This is the same element as you would get from\n\t * document.querySelectorAll(':target'), but can be used on\n\t * an arbitrary hash fragment, or after pushState/replaceState\n\t * has been used.\n\t *\n\t * Link fragments can be unencoded, fully encoded or partially\n\t * encoded, as defined in the spec.\n\t *\n\t * We can't just use decodeURI as that assumes the fragment\n\t * is fully encoded, and throws an error on a string like '%A',\n\t * so we use the percent-decode.\n\t *\n\t * @param {string} [hash] Hash fragment, without the leading '#'.\n\t *  Taken from location.hash if omitted.\n\t * @return {HTMLElement|null} Element, if found\n\t */\n\tgetTargetFromFragment( hash ) {\n\t\thash = hash || location.hash.slice( 1 );\n\t\tif ( !hash ) {\n\t\t\t// Firefox emits a console warning if you pass an empty string\n\t\t\t// to getElementById (T272844).\n\t\t\treturn null;\n\t\t}\n\t\t// Per https://html.spec.whatwg.org/multipage/browsing-the-web.html#target-element\n\t\t// we try the raw fragment first, then the percent-decoded fragment.\n\t\tconst element = document.getElementById( hash );\n\t\tif ( element ) {\n\t\t\treturn element;\n\t\t}\n\t\tconst decodedHash = this.percentDecodeFragment( hash );\n\t\tif ( !decodedHash ) {\n\t\t\t// decodedHash can return null, calling getElementById would cast it to a string\n\t\t\treturn null;\n\t\t}\n\t\treturn document.getElementById( decodedHash );\n\t},\n\n\t/**\n\t * Percent-decode a string, as found in a URL hash fragment.\n\t *\n\t * Implements the percent-decode method as defined in\n\t * https://url.spec.whatwg.org/#percent-decode.\n\t *\n\t * URLSearchParams implements https://url.spec.whatwg.org/#concept-urlencoded-parser\n\t * which performs a '+' to ' ' substitution before running percent-decode.\n\t *\n\t * To get the desired behaviour we percent-encode any '+' in the fragment\n\t * to effectively expose the percent-decode implementation.\n\t *\n\t * @param {string} text Text to decode\n\t * @return {string|null} Decoded text, null if decoding failed\n\t */\n\tpercentDecodeFragment( text ) {\n\t\tconst params = new URLSearchParams(\n\t\t\t'q=' +\n\t\t\ttext\n\t\t\t\t// Query string param decoding replaces '+' with ' ' before doing the\n\t\t\t\t// percent_decode, so encode '+' to prevent this.\n\t\t\t\t.replace( /\\+/g, '%2B' )\n\t\t\t\t// Query strings are split on '&' and then '=' so encode these too.\n\t\t\t\t.replace( /&/g, '%26' )\n\t\t\t\t.replace( /=/g, '%3D' )\n\t\t);\n\t\treturn params.get( 'q' );\n\t},\n\n\t/**\n\t * Return a function, that, as long as it continues to be invoked, will not\n\t * be triggered. The function will be called after it stops being called for\n\t * N milliseconds. If `immediate` is passed, trigger the function on the\n\t * leading edge, instead of the trailing.\n\t *\n\t * Ported from Underscore.js 1.5.2, Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud\n\t * and Investigative Reporters & Editors, distributed under the MIT license, from\n\t * <https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L689>.\n\t *\n\t * @since 1.34\n\t * @param {Function} func Function to debounce\n\t * @param {number} [wait=0] Wait period in milliseconds\n\t * @param {boolean} [immediate] Trigger on leading edge\n\t * @return {Function} Debounced function\n\t */\n\tdebounce( func, wait, immediate ) {\n\t\t// Old signature (wait, func).\n\t\tif ( typeof func === 'number' ) {\n\t\t\tconst tmpWait = wait;\n\t\t\twait = func;\n\t\t\tfunc = tmpWait;\n\t\t}\n\t\tlet timeout;\n\t\treturn function () {\n\t\t\tconst context = this,\n\t\t\t\targs = arguments,\n\t\t\t\tlater = function () {\n\t\t\t\t\ttimeout = null;\n\t\t\t\t\tif ( !immediate ) {\n\t\t\t\t\t\tfunc.apply( context, args );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\tif ( immediate && !timeout ) {\n\t\t\t\tfunc.apply( context, args );\n\t\t\t}\n\t\t\tif ( !timeout || wait ) {\n\t\t\t\tclearTimeout( timeout );\n\t\t\t\ttimeout = setTimeout( later, wait );\n\t\t\t}\n\t\t};\n\t},\n\n\t/**\n\t * Return a function, that, when invoked, will only be triggered at most once\n\t * during a given window of time. If called again during that window, it will\n\t * wait until the window ends and then trigger itself again.\n\t *\n\t * As it's not knowable to the caller whether the function will actually run\n\t * when the wrapper is called, return values from the function are entirely\n\t * discarded.\n\t *\n\t * Ported from OOUI.\n\t *\n\t * @param {Function} func Function to throttle\n\t * @param {number} wait Throttle window length, in milliseconds\n\t * @return {Function} Throttled function\n\t */\n\tthrottle( func, wait ) {\n\t\tlet context, args, timeout,\n\t\t\tprevious = Date.now() - wait;\n\t\tconst run = function () {\n\t\t\ttimeout = null;\n\t\t\tprevious = Date.now();\n\t\t\tfunc.apply( context, args );\n\t\t};\n\t\treturn function () {\n\t\t\t// Check how long it's been since the last time the function was\n\t\t\t// called, and whether it's more or less than the requested throttle\n\t\t\t// period. If it's less, run the function immediately. If it's more,\n\t\t\t// set a timeout for the remaining time -- but don't replace an\n\t\t\t// existing timeout, since that'd indefinitely prolong the wait.\n\t\t\tconst remaining = Math.max( wait - ( Date.now() - previous ), 0 );\n\t\t\tcontext = this;\n\t\t\targs = arguments;\n\t\t\tif ( !timeout ) {\n\t\t\t\t// If time is up, do setTimeout( run, 0 ) so the function\n\t\t\t\t// always runs asynchronously, just like Promise#then .\n\t\t\t\ttimeout = setTimeout( run, remaining );\n\t\t\t}\n\t\t};\n\t},\n\n\t/**\n\t * Encode page titles in a way that matches `wfUrlencode` in PHP.\n\t *\n\t * This is important both for readability and consistency in the user experience,\n\t * as well as for caching. If URLs are not formatted in the canonical way, they\n\t * may be subject to drastically shorter cache durations and/or miss automatic\n\t * purging after edits, thus leading to stale content being served from a\n\t * non-canonical URL.\n\t *\n\t * @method\n\t * @param {string} str String to be encoded.\n\t * @return {string} Encoded string\n\t */\n\twikiUrlencode: mw.internalWikiUrlencode,\n\n\t/**\n\t * Get the URL to a given local wiki page name.\n\t *\n\t * @param {string|null} [pageName=wgPageName] Page name\n\t * @param {Object} [params] A mapping of query parameter names to values,\n\t *  e.g. `{ action: 'edit' }`\n\t * @return {string} URL, relative to `wgServer`.\n\t */\n\tgetUrl( pageName, params ) {\n\t\tlet url, query, fragment,\n\t\t\ttitle = typeof pageName === 'string' ? pageName : mw.config.get( 'wgPageName' );\n\n\t\t// Find any fragment\n\t\tconst fragmentIdx = title.indexOf( '#' );\n\t\tif ( fragmentIdx !== -1 ) {\n\t\t\tfragment = title.slice( fragmentIdx + 1 );\n\t\t\t// Exclude the fragment from the page name\n\t\t\ttitle = title.slice( 0, fragmentIdx );\n\t\t}\n\n\t\t// Produce query string\n\t\tif ( params ) {\n\t\t\tquery = $.param( params );\n\t\t}\n\n\t\tif ( !title && fragment ) {\n\t\t\t// If only a fragment was given, make a fragment-only link (T288415)\n\t\t\turl = '';\n\t\t} else if ( query ) {\n\t\t\turl = title ?\n\t\t\t\tutil.wikiScript() + '?title=' + util.wikiUrlencode( title ) + '&' + query :\n\t\t\t\tutil.wikiScript() + '?' + query;\n\t\t} else {\n\t\t\t// Specify a function as the replacement,\n\t\t\t// so that \"$\" characters in title are not interpreted.\n\t\t\turl = mw.config.get( 'wgArticlePath' )\n\t\t\t\t.replace( '$1', () => util.wikiUrlencode( title ) );\n\t\t}\n\n\t\t// Append the encoded fragment\n\t\tif ( fragment ) {\n\t\t\turl += '#' + util.escapeIdForLink( fragment );\n\t\t}\n\n\t\treturn url;\n\t},\n\n\t/**\n\t * Get URL to a MediaWiki entry point.\n\t *\n\t * Similar to `wfScript()` in PHP.\n\t *\n\t * @since 1.18\n\t * @param {string} [str=\"index\"] Name of entry point (e.g. 'index' or 'api')\n\t * @return {string} URL to the script file (e.g. `/w/api.php`)\n\t */\n\twikiScript( str ) {\n\t\tif ( !str || str === 'index' ) {\n\t\t\treturn mw.config.get( 'wgScript' );\n\t\t} else if ( str === 'load' ) {\n\t\t\treturn config.LoadScript;\n\t\t} else {\n\t\t\treturn mw.config.get( 'wgScriptPath' ) + '/' + str + '.php';\n\t\t}\n\t},\n\n\t/**\n\t * Append a new style block to the head and return the CSSStyleSheet object.\n\t *\n\t * To access the `<style>` element, reference `sheet.ownerNode`, or call\n\t * the {@link mw.loader.addStyleTag} method directly.\n\t *\n\t * This function returns the CSSStyleSheet object for convenience with features\n\t * that are managed at that level, such as toggling of styles:\n\t * ```\n\t * var sheet = util.addCSS( '.foobar { display: none; }' );\n\t * $( '#myButton' ).click( function () {\n\t *     // Toggle the sheet on and off\n\t *     sheet.disabled = !sheet.disabled;\n\t * } );\n\t * ```\n\t *\n\t * See also [MDN: CSSStyleSheet](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet).\n\t *\n\t * @param {string} text CSS to be appended\n\t * @return {CSSStyleSheet} The sheet object\n\t */\n\taddCSS( text ) {\n\t\tconst s = mw.loader.addStyleTag( text );\n\t\treturn s.sheet;\n\t},\n\n\t/**\n\t * Get the value for a given URL query parameter.\n\t *\n\t * @example\n\t * mw.util.getParamValue( 'foo', '/?foo=x' ); // \"x\"\n\t * mw.util.getParamValue( 'foo', '/?foo=' ); // \"\"\n\t * mw.util.getParamValue( 'foo', '/' ); // null\n\t *\n\t * @param {string} param The parameter name.\n\t * @param {string} [url=location.href] URL to search through, defaulting to the current browsing location.\n\t * @return {string|null} Parameter value, or null if parameter was not found.\n\t */\n\tgetParamValue( param, url ) {\n\t\t// Get last match, stop at hash\n\n\t\tconst re = new RegExp( '^[^#]*[&?]' + util.escapeRegExp( param ) + '=([^&#]*)' ),\n\t\t\tm = re.exec( url !== undefined ? url : location.href );\n\n\t\tif ( m ) {\n\t\t\t// Beware that decodeURIComponent is not required to understand '+'\n\t\t\t// by spec, as encodeURIComponent does not produce it.\n\t\t\ttry {\n\t\t\t\treturn decodeURIComponent( m[ 1 ].replace( /\\+/g, '%20' ) );\n\t\t\t} catch ( e ) {\n\t\t\t\t// catch URIError if parameter is invalid UTF-8\n\t\t\t\t// due to malformed or double-decoded values (T106244),\n\t\t\t\t// e.g. \"Autom%F3vil\" instead of \"Autom%C3%B3vil\".\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t},\n\n\t/**\n\t * Get the value for an array query parameter, combined according to similar rules as PHP uses.\n\t * Currently this does not handle associative or multi-dimensional arrays, but that may be\n\t * improved in the future.\n\t *\n\t * @example\n\t * mw.util.getArrayParam( 'foo', new URLSearchParams( '?foo[0]=a&foo[1]=b' ) ); // [ 'a', 'b' ]\n\t * mw.util.getArrayParam( 'foo', new URLSearchParams( '?foo[]=a&foo[]=b' ) ); // [ 'a', 'b' ]\n\t * mw.util.getArrayParam( 'foo', new URLSearchParams( '?foo=a' ) ); // null\n\t *\n\t * @param {string} param The parameter name.\n\t * @param {URLSearchParams} [params] Parsed URL parameters to search through, defaulting to the current browsing location.\n\t * @return {string[]|null} Parameter value, or null if parameter was not found.\n\t */\n\tgetArrayParam( param, params ) {\n\n\t\tconst paramRe = new RegExp( '^' + util.escapeRegExp( param ) + '\\\\[(\\\\d*)\\\\]$' );\n\n\t\tif ( !params ) {\n\t\t\tparams = new URLSearchParams( location.search );\n\t\t}\n\n\t\tconst arr = [];\n\t\tparams.forEach( ( v, k ) => {\n\t\t\tconst paramMatch = k.match( paramRe );\n\t\t\tif ( paramMatch ) {\n\t\t\t\tlet i = paramMatch[ 1 ];\n\t\t\t\tif ( i === '' ) {\n\t\t\t\t\t// If no explicit index, append at the end\n\t\t\t\t\ti = arr.length;\n\t\t\t\t}\n\t\t\t\tarr[ i ] = v;\n\t\t\t}\n\t\t} );\n\n\t\treturn arr.length ? arr : null;\n\t},\n\n\t/**\n\t * The content wrapper of the skin (`.mw-body`, for example).\n\t *\n\t * Populated on document ready. To use this property,\n\t * wait for `$.ready` and be sure to have a module dependency on\n\t * `mediawiki.util` which will ensure\n\t * your document ready handler fires after initialization.\n\t *\n\t * Because of the lazy-initialised nature of this property,\n\t * you're discouraged from using it.\n\t *\n\t * If you need just the wikipage content (not any of the\n\t * extra elements output by the skin), use `$( '#mw-content-text' )`\n\t * instead. Or listen to {@link event:'wikipage.content' wikipage.content}\n\t * which will allow your code to re-run when the page changes (e.g. live preview\n\t * or re-render after ajax save).\n\t *\n\t * @type {jQuery}\n\t */\n\t$content: null,\n\n\t/**\n\t * Hide a portlet.\n\t *\n\t * @param {string} portletId ID of the target portlet (e.g. 'p-cactions' or 'p-personal')\n\t */\n\thidePortlet( portletId ) {\n\t\tconst portlet = document.getElementById( portletId );\n\t\tif ( portlet ) {\n\t\t\tportlet.classList.add( 'emptyPortlet' );\n\t\t}\n\t},\n\n\t/**\n\t * Whether a portlet is visible.\n\t *\n\t * @param {string} portletId ID of the target portlet (e.g. 'p-cactions' or 'p-personal')\n\t * @return {boolean}\n\t */\n\tisPortletVisible( portletId ) {\n\t\tconst portlet = document.getElementById( portletId );\n\t\treturn portlet && !portlet.classList.contains( 'emptyPortlet' );\n\t},\n\n\t/**\n\t * Reveal a portlet if it is hidden.\n\t *\n\t * @param {string} portletId ID of the target portlet (e.g. 'p-cactions' or 'p-personal')\n\t */\n\tshowPortlet( portletId ) {\n\t\tconst portlet = document.getElementById( portletId );\n\t\tif ( portlet ) {\n\t\t\tportlet.classList.remove( 'emptyPortlet' );\n\t\t}\n\t},\n\n\t/**\n\t * Clears the entire subtitle if present in the page. Used for refreshing subtitle\n\t * after edit with response from parse API.\n\t */\n\tclearSubtitle() {\n\t\tconst subtitle = document.getElementById( 'mw-content-subtitle' );\n\t\tif ( subtitle ) {\n\t\t\tsubtitle.innerHTML = '';\n\t\t}\n\t},\n\n\t/**\n\t * Create a message box element. Callers are responsible for ensuring suitable Codex styles\n\t * have been added to the page e.g. mediawiki.codex.messagebox.styles.\n\t *\n\t * @since 1.43\n\t * @param {string|Node} textOrElement text or node.\n\t * @param {string} [type] defaults to notice.\n\t * @param {boolean} [inline] whether the notice should be inline.\n\t * @return {Element}\n\t */\n\tmessageBox( textOrElement, type = 'notice', inline = false ) {\n\t\tconst msgBoxElement = document.createElement( 'div' );\n\t\tmsgBoxElement.classList.add( 'cdx-message' );\n\n\t\tif ( [ 'error', 'warning', 'success', 'notice' ].includes( type ) ) {\n\t\t\t// The following CSS classes are used here:\n\t\t\t// * cdx-message--notice\n\t\t\t// * cdx-message--warning\n\t\t\t// * cdx-message--error\n\t\t\t// * cdx-message--success\n\t\t\tmsgBoxElement.classList.add( `cdx-message--${ type }` );\n\t\t}\n\t\tmsgBoxElement.classList.add( inline ? 'cdx-message--inline' : 'cdx-message--block' );\n\n\t\tif ( type === 'error' ) {\n\t\t\tmsgBoxElement.setAttribute( 'role', 'alert' );\n\t\t} else {\n\t\t\tmsgBoxElement.setAttribute( 'aria-live', 'polite' );\n\t\t}\n\n\t\tconst iconElement = document.createElement( 'span' );\n\t\ticonElement.classList.add( 'cdx-message__icon' );\n\t\tconst contentElement = document.createElement( 'div' );\n\t\tcontentElement.classList.add( 'cdx-message__content' );\n\t\tif ( typeof textOrElement === 'string' ) {\n\t\t\tcontentElement.textContent = textOrElement;\n\t\t} else {\n\t\t\tcontentElement.appendChild( textOrElement );\n\t\t}\n\t\tmsgBoxElement.appendChild( iconElement );\n\t\tmsgBoxElement.appendChild( contentElement );\n\t\treturn msgBoxElement;\n\t},\n\n\t/**\n\t * Add content to the subtitle of the skin.\n\t *\n\t * @param {HTMLElement|string} nodeOrHTMLString\n\t */\n\taddSubtitle( nodeOrHTMLString ) {\n\t\tconst subtitle = document.getElementById( 'mw-content-subtitle' );\n\t\tif ( subtitle ) {\n\t\t\tif ( typeof nodeOrHTMLString === 'string' ) {\n\t\t\t\tsubtitle.innerHTML += nodeOrHTMLString;\n\t\t\t} else {\n\t\t\t\tsubtitle.appendChild( nodeOrHTMLString );\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new Error( 'This skin does not support additions to the subtitle.' );\n\t\t}\n\t},\n\n\t/**\n\t * Creates a detached portlet Element in the skin with no elements.\n\t *\n\t * @example\n\t * // Create a portlet with 2 menu items that is styled as a dropdown in certain skins.\n\t * const p = mw.util.addPortlet( 'p-myportlet', 'My label', '#p-cactions' );\n\t * mw.util.addPortletLink( 'p-myportlet', '#', 'Link 1' );\n\t * mw.util.addPortletLink( 'p-myportlet', '#', 'Link 2' );\n\t * @param {string} id of the new portlet.\n\t * @param {string} [label] of the new portlet.\n\t * @param {string} [selectorHint] selector of the element the new portlet would like to\n\t *  be inserted near. Typically the portlet will be inserted after this selector, but in some\n\t *  skins, the skin may relocate the element when provided to the closest available space.\n\t *  If this argument is not passed then the caller is responsible for appending the element\n\t *  to the DOM before using addPortletLink.\n\t *  To add a portlet in an exact position do not rely on this parameter, instead using the return\n\t *  element (make sure to also assign the result to a variable), use\n\t *  ```p.parentNode.appendChild( p );```\n\t *  When provided, skins can use the parameter to infer information about how the user intended\n\t *  the menu to be rendered. For example, in vector and vector-2022 targeting '#p-cactions' will\n\t *  result in the creation of a dropdown.\n\t * @fires Hooks~'util.addPortlet'\n\t * @return {HTMLElement|null} will be null if it was not possible to create an portlet with\n\t *  the required information e.g. the selector given in `selectorHint` parameter could not be resolved\n\t *  to an existing element in the page.\n\t */\n\taddPortlet( id, label, selectorHint ) {\n\t\tconst portlet = document.createElement( 'div' );\n\t\t// These classes should be kept in sync with includes/skins/components/SkinComponentMenu.php.\n\t\t// eslint-disable-next-line mediawiki/class-doc\n\t\tportlet.classList.add( 'mw-portlet', 'mw-portlet-' + id, 'emptyPortlet',\n\t\t\t// Additional class is added to allow skins to track portlets added via this mechanism.\n\t\t\t'mw-portlet-js'\n\t\t);\n\t\tportlet.id = id;\n\t\tif ( label ) {\n\t\t\tconst labelNode = document.createElement( 'label' );\n\t\t\tlabelNode.textContent = label;\n\t\t\tportlet.appendChild( labelNode );\n\t\t}\n\t\tconst listWrapper = document.createElement( 'div' );\n\t\tconst list = document.createElement( 'ul' );\n\t\tlistWrapper.appendChild( list );\n\t\tportlet.appendChild( listWrapper );\n\t\tif ( selectorHint ) {\n\t\t\tlet referenceNode;\n\t\t\ttry {\n\t\t\t\treferenceNode = document.querySelector( selectorHint );\n\t\t\t} catch ( e ) {\n\t\t\t\t// CSS selector not supported by browser.\n\t\t\t}\n\t\t\tif ( referenceNode ) {\n\t\t\t\tconst parentNode = referenceNode.parentNode;\n\t\t\t\tparentNode.insertBefore( portlet, referenceNode );\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\t/**\n\t\t * Fires when a portlet is successfully created.\n\t\t *\n\t\t * @event ~'util.addPortlet'\n\t\t * @memberof Hooks\n\t\t * @param {HTMLElement} portlet the portlet that was created.\n\t\t * @param {string|null} selectorHint the css selector used to append to the DOM.\n\t\t *\n\t\t * @example\n\t\t * mw.hook( 'util.addPortlet' ).add( ( p ) => {\n\t\t *     p.style.border = 'solid 1px black';\n\t\t * } );\n\t\t */\n\t\tmw.hook( 'util.addPortlet' ).fire( portlet, selectorHint );\n\t\treturn portlet;\n\t},\n\t/**\n\t * Add a link to a portlet menu on the page.\n\t *\n\t * The portlets that are supported include:\n\t *\n\t * - p-cactions (Content actions)\n\t * - p-personal (Personal tools)\n\t * - p-navigation (Navigation)\n\t * - p-tb (Toolbox)\n\t * - p-associated-pages (For namespaces and special page tabs on supported skins)\n\t * - p-dock-bottom (A sticky menu fixed to bottom of viewport on supported skins)\n\t * - p-namespaces (For namespaces on legacy skins)\n\t *\n\t * Additional menus can be discovered through the following code:\n\t * ```$('.mw-portlet').toArray().map((el) => el.id);```\n\t *\n\t * Menu availability varies by skin, wiki, and current page.\n\t *\n\t * The first three parameters are required, the others are optional and\n\t * may be null. Though providing an id and tooltip is recommended.\n\t *\n\t * By default, the new link will be added to the end of the menu. To\n\t * add the link before an existing item, pass the DOM node or a CSS selector\n\t * for that item, e.g. `'#foobar'` or `document.getElementById( 'foobar' )`.\n\t * ```\n\t * mw.util.addPortletLink(\n\t *     'p-tb', 'https://www.mediawiki.org/',\n\t *     'mediawiki.org', 't-mworg', 'Go to mediawiki.org', 'm', '#t-print'\n\t * );\n\t *\n\t * var node = mw.util.addPortletLink(\n\t *     'p-tb',\n\t *     mw.util.getUrl( 'Special:Example' ),\n\t *     'Example'\n\t * );\n\t * $( node ).on( 'click', function ( e ) {\n\t *     console.log( 'Example' );\n\t *     e.preventDefault();\n\t * } );\n\t * ```\n\t *\n\t * Remember that to call this inside a user script, you may have to ensure the\n\t * `mediawiki.util` is loaded first:\n\t * ```\n\t * $.when( mw.loader.using( [ 'mediawiki.util' ] ), $.ready ).then( function () {\n\t *      mw.util.addPortletLink( 'p-tb', 'https://www.mediawiki.org/', 'mediawiki.org' );\n\t * } );\n\t * ```\n\t *\n\t * @param {string} portletId ID of the target portlet (e.g. 'p-cactions' or 'p-personal')\n\t * @param {string} href Link URL\n\t * @param {string} text Link text\n\t * @param {string} [id] ID of the list item, should be unique and preferably have\n\t *  the appropriate prefix ('ca-', 'pt-', 'n-' or 't-')\n\t * @param {string} [tooltip] Text to show when hovering over the link, without accesskey suffix\n\t * @param {string} [accesskey] Access key to activate this link. One character only,\n\t *  avoid conflicts with other links. Use `$( '[accesskey=x]' )` in the console to\n\t *  see if 'x' is already used.\n\t * @param {HTMLElement|jQuery|string} [nextnode] Element that the new item should be added before.\n\t *  Must be another item in the same list, it will be ignored otherwise.\n\t *  Can be specified as DOM reference, as jQuery object, or as CSS selector string.\n\t * @fires Hooks~'util.addPortletLink'\n\t * @return {HTMLElement|null} The added list item, or null if no element was added.\n\t */\n\taddPortletLink( portletId, href, text, id, tooltip, accesskey, nextnode ) {\n\t\tif ( !portletId ) {\n\t\t\t// Avoid confusing id=\"undefined\" lookup\n\t\t\treturn null;\n\t\t}\n\n\t\tconst portlet = document.getElementById( portletId );\n\t\tif ( !portlet ) {\n\t\t\t// Invalid portlet ID\n\t\t\treturn null;\n\t\t}\n\n\t\t// Setup the anchor tag and set any the properties\n\t\tconst link = document.createElement( 'a' );\n\t\tlink.href = href;\n\n\t\tlet linkChild = document.createTextNode( text );\n\t\tlet i = portletLinkOptions[ 'text-wrapper' ].length;\n\t\t// Wrap link using text-wrapper option if provided\n\t\t// Iterate backward since the wrappers are declared from outer to inner,\n\t\t// and we build it up from the inside out.\n\t\twhile ( i-- ) {\n\t\t\tconst wrapper = portletLinkOptions[ 'text-wrapper' ][ i ];\n\t\t\tconst wrapperElement = document.createElement( wrapper.tag );\n\t\t\tif ( wrapper.attributes ) {\n\t\t\t\t$( wrapperElement ).attr( wrapper.attributes );\n\t\t\t}\n\t\t\twrapperElement.appendChild( linkChild );\n\t\t\tlinkChild = wrapperElement;\n\t\t}\n\t\tlink.appendChild( linkChild );\n\n\t\tif ( tooltip ) {\n\t\t\tlink.title = tooltip;\n\t\t}\n\t\tif ( accesskey ) {\n\t\t\tlink.accessKey = accesskey;\n\t\t}\n\n\t\t// Unhide portlet if it was hidden before\n\t\tutil.showPortlet( portletId );\n\n\t\tconst item = $( '<li>' ).append( link )[ 0 ];\n\t\t// mw-list-item-js distinguishes portlet links added via javascript and the server\n\t\titem.className = 'mw-list-item mw-list-item-js';\n\t\tif ( id ) {\n\t\t\titem.id = id;\n\t\t}\n\n\t\t// Select the first (most likely only) unordered list inside the portlet\n\t\tlet ul = portlet.tagName.toLowerCase() === 'ul' ? portlet : portlet.querySelector( 'ul' );\n\t\tif ( !ul ) {\n\t\t\t// If it didn't have an unordered list yet, create one\n\t\t\tul = document.createElement( 'ul' );\n\t\t\tconst portletDiv = portlet.querySelector( 'div' );\n\t\t\tif ( portletDiv ) {\n\t\t\t\t// Support: Legacy skins have a div (such as div.body or div.pBody).\n\t\t\t\t// Append the <ul> to that.\n\t\t\t\tportletDiv.appendChild( ul );\n\t\t\t} else {\n\t\t\t\t// Append it to the portlet directly\n\t\t\t\tportlet.appendChild( ul );\n\t\t\t}\n\t\t}\n\n\t\tlet next;\n\t\tif ( nextnode && ( typeof nextnode === 'string' || nextnode.nodeType || nextnode.jquery ) ) {\n\t\t\t// eslint-disable-next-line no-jquery/variable-pattern\n\t\t\tnextnode = $( ul ).find( nextnode );\n\t\t\tif ( nextnode.length === 1 && nextnode[ 0 ].parentNode === ul ) {\n\t\t\t\t// Insertion point: Before nextnode\n\t\t\t\tnextnode.before( item );\n\t\t\t\tnext = true;\n\t\t\t}\n\t\t\t// Else: Invalid nextnode value (no match, more than one match, or not a direct child)\n\t\t\t// Else: Invalid nextnode type\n\t\t}\n\n\t\tif ( !next ) {\n\t\t\t// Insertion point: End of list (default)\n\t\t\tul.appendChild( item );\n\t\t}\n\n\t\t// Update tooltip for the access key after inserting into DOM\n\t\t// to get a localized access key label (T69946).\n\t\tif ( accesskey ) {\n\t\t\t$( link ).updateTooltipAccessKeys();\n\t\t}\n\n\t\t/**\n\t\t * Fires when a portlet link is successfully created.\n\t\t *\n\t\t * @event ~'util.addPortletLink'\n\t\t * @memberof Hooks\n\t\t * @param {HTMLElement} item the portlet link that was created.\n\t\t * @param {Object} information about the item include id.\n\t\t *\n\t\t * @example\n\t\t * mw.hook( 'util.addPortletLink' ).add( ( link ) => {\n\t\t *     const span = $( '<span class=\"icon\">' );\n\t\t *     link.appendChild( span );\n\t\t * } );\n\t\t */\n\t\tmw.hook( 'util.addPortletLink' ).fire( item, {\n\t\t\tid: id\n\t\t} );\n\t\treturn item;\n\t},\n\n\t/**\n\t * Validate a string as representing a valid e-mail address.\n\t *\n\t * This validation is based on the HTML5 specification.\n\t *\n\t * @example\n\t * mw.util.validateEmail( \"me@example.org\" ) === true;\n\t *\n\t * @param {string} email E-mail address\n\t * @return {boolean|null} True if valid, false if invalid, null if `email` was empty.\n\t */\n\tvalidateEmail( email ) {\n\t\tif ( email === '' ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// HTML5 defines a string as valid e-mail address if it matches\n\t\t// the ABNF:\n\t\t//     1 * ( atext / \".\" ) \"@\" ldh-str 1*( \".\" ldh-str )\n\t\t// With:\n\t\t// - atext   : defined in RFC 5322 section 3.2.3\n\t\t// - ldh-str : defined in RFC 1034 section 3.5\n\t\t//\n\t\t// (see STD 68 / RFC 5234 https://tools.ietf.org/html/std68)\n\t\t// First, define the RFC 5322 'atext' which is pretty easy:\n\t\t// atext = ALPHA / DIGIT / ; Printable US-ASCII\n\t\t//     \"!\" / \"#\" /    ; characters not including\n\t\t//     \"$\" / \"%\" /    ; specials. Used for atoms.\n\t\t//     \"&\" / \"'\" /\n\t\t//     \"*\" / \"+\" /\n\t\t//     \"-\" / \"/\" /\n\t\t//     \"=\" / \"?\" /\n\t\t//     \"^\" / \"_\" /\n\t\t//     \"`\" / \"{\" /\n\t\t//     \"|\" / \"}\" /\n\t\t//     \"~\"\n\t\tconst rfc5322Atext = 'a-z0-9!#$%&\\'*+\\\\-/=?^_`{|}~';\n\n\t\t// Next define the RFC 1034 'ldh-str'\n\t\t//     <domain> ::= <subdomain> | \" \"\n\t\t//     <subdomain> ::= <label> | <subdomain> \".\" <label>\n\t\t//     <label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]\n\t\t//     <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>\n\t\t//     <let-dig-hyp> ::= <let-dig> | \"-\"\n\t\t//     <let-dig> ::= <letter> | <digit>\n\t\tconst rfc1034LdhStr = 'a-z0-9\\\\-';\n\n\t\tconst html5EmailRegexp = new RegExp(\n\t\t\t// start of string\n\t\t\t'^' +\n\t\t\t// User part which is liberal :p\n\t\t\t'[' + rfc5322Atext + '\\\\.]+' +\n\t\t\t// 'at'\n\t\t\t'@' +\n\t\t\t// Domain first part\n\t\t\t'[' + rfc1034LdhStr + ']+' +\n\t\t\t// Optional second part and following are separated by a dot\n\t\t\t'(?:\\\\.[' + rfc1034LdhStr + ']+)*' +\n\t\t\t// End of string\n\t\t\t'$',\n\t\t\t// RegExp is case insensitive\n\t\t\t'i'\n\t\t);\n\t\treturn ( email.match( html5EmailRegexp ) !== null );\n\t},\n\n\t/**\n\t * Whether a string is a valid IPv4 address or not.\n\t *\n\t * Based on \\Wikimedia\\IPUtils::isIPv4 in PHP.\n\t *\n\t * @example\n\t * // Valid\n\t * mw.util.isIPv4Address( '80.100.20.101' );\n\t * mw.util.isIPv4Address( '192.168.1.101' );\n\t *\n\t * // Invalid\n\t * mw.util.isIPv4Address( '192.0.2.0/24' );\n\t * mw.util.isIPv4Address( 'hello' );\n\t *\n\t * @param {string} address\n\t * @param {boolean} [allowBlock=false]\n\t * @return {boolean}\n\t */\n\tisIPv4Address( address, allowBlock ) {\n\n\t\tif ( typeof address !== 'string' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst RE_IP_BYTE = '(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|0?[0-9]?[0-9])';\n\t\tconst RE_IP_ADD = '(?:' + RE_IP_BYTE + '\\\\.){3}' + RE_IP_BYTE;\n\t\tconst block = allowBlock ? '(?:\\\\/(?:3[0-2]|[12]?\\\\d))?' : '';\n\n\t\treturn ( new RegExp( '^' + RE_IP_ADD + block + '$' ).test( address ) );\n\t},\n\n\t/**\n\t * Whether a string is a valid IPv6 address or not.\n\t *\n\t * Based on \\Wikimedia\\IPUtils::isIPv6 in PHP.\n\t *\n\t * @example\n\t * // Valid\n\t * mw.util.isIPv6Address( '2001:db8:a:0:0:0:0:0' );\n\t * mw.util.isIPv6Address( '2001:db8:a::' );\n\t *\n\t * // Invalid\n\t * mw.util.isIPv6Address( '2001:db8:a::/32' );\n\t * mw.util.isIPv6Address( 'hello' );\n\t *\n\t * @param {string} address\n\t * @param {boolean} [allowBlock=false]\n\t * @return {boolean}\n\t */\n\tisIPv6Address( address, allowBlock ) {\n\t\tif ( typeof address !== 'string' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst block = allowBlock ? '(?:\\\\/(?:12[0-8]|1[01][0-9]|[1-9]?\\\\d))?' : '';\n\t\tlet RE_IPV6_ADD =\n\t\t\t'(?:' + // starts with \"::\" (including \"::\")\n\t\t\t\t':(?::|(?::' +\n\t\t\t\t\t'[0-9A-Fa-f]{1,4}' +\n\t\t\t\t'){1,7})' +\n\t\t\t\t'|' + // ends with \"::\" (except \"::\")\n\t\t\t\t'[0-9A-Fa-f]{1,4}' +\n\t\t\t\t'(?::' +\n\t\t\t\t\t'[0-9A-Fa-f]{1,4}' +\n\t\t\t\t'){0,6}::' +\n\t\t\t\t'|' + // contains no \"::\"\n\t\t\t\t'[0-9A-Fa-f]{1,4}' +\n\t\t\t\t'(?::' +\n\t\t\t\t\t'[0-9A-Fa-f]{1,4}' +\n\t\t\t\t'){7}' +\n\t\t\t')';\n\n\t\tif ( new RegExp( '^' + RE_IPV6_ADD + block + '$' ).test( address ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// contains one \"::\" in the middle (single '::' check below)\n\t\tRE_IPV6_ADD =\n\t\t\t'[0-9A-Fa-f]{1,4}' +\n\t\t\t'(?:::?' +\n\t\t\t\t'[0-9A-Fa-f]{1,4}' +\n\t\t\t'){1,6}';\n\n\t\treturn (\n\n\t\t\tnew RegExp( '^' + RE_IPV6_ADD + block + '$' ).test( address ) &&\n\t\t\t/::/.test( address ) &&\n\t\t\t!/::.*::/.test( address )\n\t\t);\n\t},\n\n\t/**\n\t * Check whether a string is a valid IP address.\n\t *\n\t * @since 1.25\n\t * @param {string} address String to check\n\t * @param {boolean} [allowBlock=false] If a block of IPs should be allowed\n\t * @return {boolean}\n\t */\n\tisIPAddress( address, allowBlock ) {\n\t\treturn util.isIPv4Address( address, allowBlock ) ||\n\t\t\tutil.isIPv6Address( address, allowBlock );\n\t},\n\n\t/**\n\t * @typedef {Object} ResizeableThumbnailUrl\n\t * @property {string} name File name (same format as Title.getMainText()).\n\t * @property {number} [width] Thumbnail width, in pixels. Null when the file is not\n\t *   a thumbnail.\n\t * @property {function(number):string} [resizeUrl] A function that takes a width\n\t *   parameter and returns a thumbnail URL (URL-encoded) with that width. The width\n\t *   parameter must be smaller than the width of the original image (or equal to it; that\n\t *   only works if MediaHandler::mustRender returns true for the file). Null when the\n\t *   file in the original URL is not a thumbnail.\n\t *   On wikis with $wgGenerateThumbnailOnParse set to true, this will fall back to using\n\t *   Special:Redirect which is less efficient. Otherwise, it is a direct thumbnail URL.\n\t */\n\n\t/**\n\t * Parse the URL of an image uploaded to MediaWiki, or a thumbnail for such an image,\n\t * and return the image name, thumbnail size and a template that can be used to resize\n\t * the image.\n\t *\n\t * @param {string} url URL to parse (URL-encoded)\n\t * @return {ResizeableThumbnailUrl|null} null if the URL is not a valid MediaWiki\n\t *   image/thumbnail URL.\n\t */\n\tparseImageUrl( url ) {\n\t\tlet name, decodedName, width, urlTemplate;\n\n\t\t// thumb.php-generated thumbnails\n\t\t// thumb.php?f=<name>&w[idth]=<width>[px]\n\t\tif ( /thumb\\.php/.test( url ) ) {\n\t\t\tdecodedName = mw.util.getParamValue( 'f', url );\n\t\t\tname = encodeURIComponent( decodedName );\n\t\t\twidth = mw.util.getParamValue( 'width', url ) || mw.util.getParamValue( 'w', url );\n\t\t\turlTemplate = url.replace( /([&?])w(?:idth)?=[^&]+/g, '' ) + '&width={width}';\n\t\t} else {\n\t\t\tconst regexes = [\n\t\t\t\t// Thumbnails\n\t\t\t\t// /<hash prefix>/<name>/[<options>-]<width>-<name*>[.<ext>]\n\t\t\t\t// where <name*> could be the filename, 'thumbnail.<ext>' (for long filenames)\n\t\t\t\t// or the base-36 SHA1 of the filename.\n\n\t\t\t\t/\\/[\\da-f]\\/[\\da-f]{2}\\/([^\\s/]+)\\/(?:[^\\s/]+-)?(\\d+)px-(?:\\1|thumbnail|[a-z\\d]{31})(\\.[^\\s/]+)?$/,\n\n\t\t\t\t// Full size images\n\t\t\t\t// /<hash prefix>/<name>\n\t\t\t\t/\\/[\\da-f]\\/[\\da-f]{2}\\/([^\\s/]+)$/,\n\n\t\t\t\t// Thumbnails in non-hashed upload directories\n\t\t\t\t// /<name>/[<options>-]<width>-<name*>[.<ext>]\n\n\t\t\t\t/\\/([^\\s/]+)\\/(?:[^\\s/]+-)?(\\d+)px-(?:\\1|thumbnail|[a-z\\d]{31})[^\\s/]*$/,\n\n\t\t\t\t// Full-size images in non-hashed upload directories\n\t\t\t\t// /<name>\n\t\t\t\t/\\/([^\\s/]+)$/\n\t\t\t];\n\t\t\tfor ( let i = 0; i < regexes.length; i++ ) {\n\t\t\t\tconst match = url.match( regexes[ i ] );\n\t\t\t\tif ( match ) {\n\t\t\t\t\tname = match[ 1 ];\n\t\t\t\t\tdecodedName = decodeURIComponent( name );\n\t\t\t\t\twidth = match[ 2 ] || null;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( name ) {\n\t\t\tif ( width !== null ) {\n\t\t\t\twidth = parseInt( width, 10 ) || null;\n\t\t\t}\n\t\t\tif ( config.GenerateThumbnailOnParse ) {\n\t\t\t\t// The wiki cannot generate thumbnails on demand. Use a special page - this means\n\t\t\t\t// an extra redirect and PHP request, but it will generate the thumbnail if it does\n\t\t\t\t// not exist.\n\t\t\t\turlTemplate = mw.util.getUrl( 'Special:Redirect/file/' + decodedName, { width: '{width}' } )\n\t\t\t\t\t// getUrl urlencodes the template variable, fix that\n\t\t\t\t\t.replace( '%7Bwidth%7D', '{width}' );\n\t\t\t} else if ( width && !urlTemplate ) {\n\t\t\t\t// Javascript does not expose regexp capturing group indexes, and the width\n\t\t\t\t// part could in theory also occur in the filename so hide that first.\n\t\t\t\tconst strippedUrl = url.replace( name, '{name}' )\n\t\t\t\t\t.replace( name, '{name}' )\n\t\t\t\t\t.replace( width + 'px-', '{width}px-' );\n\t\t\t\turlTemplate = strippedUrl.replace( /\\{name\\}/g, name );\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tname: decodedName.replace( /_/g, ' ' ),\n\t\t\t\twidth,\n\t\t\t\tresizeUrl: urlTemplate ? ( w ) => urlTemplate.replace( '{width}', w ) : null\n\t\t\t};\n\t\t}\n\t\treturn null;\n\t},\n\n\t/**\n\t * Escape string for safe inclusion in regular expression.\n\t *\n\t * The following characters are escaped:\n\t *\n\t *     \\ { } ( ) | . ? * + - ^ $ [ ]\n\t *\n\t * @since 1.26; moved to mw.util in 1.34\n\t * @param {string} str String to escape\n\t * @return {string} Escaped string\n\t */\n\tescapeRegExp( str ) {\n\t\t// eslint-disable-next-line no-useless-escape\n\t\treturn str.replace( /([\\\\{}()|.?*+\\-^$\\[\\]])/g, '\\\\$1' );\n\t},\n\n\t/**\n\t * Convert an IP into a verbose, uppercase, normalized form.\n\t *\n\t * Both IPv4 and IPv6 addresses are trimmed. Additionally,\n\t * IPv6 addresses in octet notation are expanded to 8 words;\n\t * IPv4 addresses have leading zeros, in each octet, removed.\n\t *\n\t * This functionality has been adapted from \\Wikimedia\\IPUtils::sanitizeIP()\n\t *\n\t * @param {string} ip IP address in quad or octet form (CIDR or not).\n\t * @return {string|null}\n\t */\n\tsanitizeIP( ip ) {\n\t\tif ( typeof ip !== 'string' ) {\n\t\t\treturn null;\n\t\t}\n\t\tip = ip.trim();\n\t\tif ( ip === '' ) {\n\t\t\treturn null;\n\t\t}\n\t\tif ( !this.isIPAddress( ip, true ) ) {\n\t\t\treturn ip;\n\t\t}\n\t\tif ( this.isIPv4Address( ip, true ) ) {\n\t\t\treturn ip.replace( /(^|\\.)0+(\\d)/g, '$1$2' );\n\t\t}\n\t\tip = ip.toUpperCase();\n\t\tconst abbrevPos = ip.indexOf( '::' );\n\t\tif ( abbrevPos !== -1 ) {\n\t\t\tconst CIDRStart = ip.indexOf( '/' );\n\t\t\tconst addressEnd = ( CIDRStart !== -1 ) ? CIDRStart - 1 : ip.length - 1;\n\t\t\tlet repeatStr, extra, pad;\n\t\t\tif ( abbrevPos === 0 ) {\n\t\t\t\trepeatStr = '0:';\n\t\t\t\textra = ip === '::' ? '0' : '';\n\t\t\t\tpad = 9;\n\t\t\t} else if ( abbrevPos === addressEnd - 1 ) {\n\t\t\t\trepeatStr = ':0';\n\t\t\t\textra = '';\n\t\t\t\tpad = 9;\n\t\t\t} else {\n\t\t\t\trepeatStr = ':0';\n\t\t\t\textra = ':';\n\t\t\t\tpad = 8;\n\t\t\t}\n\t\t\tconst count = pad - ( ip.split( ':' ).length - 1 );\n\t\t\tip = ip.replace( '::', repeatStr.repeat( count ) + extra );\n\t\t}\n\t\treturn ip.replace( /(^|:)0+(([0-9A-Fa-f]{1,4}))/g, '$1$2' );\n\t},\n\n\t/**\n\t * Prettify an IP for display to end users.\n\t *\n\t * This will make it more compact and lower-case.\n\t *\n\t * This functionality has been adapted from \\Wikimedia\\IPUtils::prettifyIP()\n\t *\n\t * @param {string} ip IP address in quad or octet form (CIDR or not).\n\t * @return {string|null}\n\t */\n\tprettifyIP( ip ) {\n\t\tip = this.sanitizeIP( ip );\n\t\tif ( ip === null ) {\n\t\t\treturn null;\n\t\t}\n\t\tif ( this.isIPv6Address( ip, true ) ) {\n\t\t\tlet cidr, replaceZeros;\n\t\t\tif ( ip.includes( '/' ) ) {\n\t\t\t\tconst ipCidrSplit = ip.split( '/', 2 );\n\t\t\t\tip = ipCidrSplit[ 0 ];\n\t\t\t\tcidr = ipCidrSplit[ 1 ];\n\t\t\t} else {\n\t\t\t\tcidr = '';\n\t\t\t}\n\t\t\tconst matches = ip.match( /(?:^|:)0(?::0)+(?:$|:)/g );\n\t\t\tif ( matches ) {\n\t\t\t\treplaceZeros = matches[ 0 ];\n\t\t\t\tfor ( let i = 1; i < matches.length; i++ ) {\n\t\t\t\t\tif ( matches[ i ].length > replaceZeros.length ) {\n\t\t\t\t\t\treplaceZeros = matches[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tip = ip.replace( replaceZeros, '::' );\n\n\t\t\tif ( cidr !== '' ) {\n\t\t\t\tip = ip.concat( '/', cidr );\n\t\t\t}\n\t\t\tip = ip.toLowerCase();\n\t\t}\n\t\treturn ip;\n\t},\n\n\t/**\n\t * Checks if the given username matches $wgAutoCreateTempUser.\n\t *\n\t * This functionality has been adapted from MediaWiki\\User\\TempUser\\Pattern::isMatch()\n\t *\n\t * @param {string|null} username\n\t * @return {boolean}\n\t */\n\tisTemporaryUser( username ) {\n\t\t// Just return early if temporary accounts are not known about.\n\t\tif ( !config.AutoCreateTempUser.enabled && !config.AutoCreateTempUser.known ) {\n\t\t\treturn false;\n\t\t}\n\t\tif ( username === null ) {\n\t\t\treturn false;\n\t\t}\n\t\t/** @type {string|string[]} */\n\t\tlet matchPatterns = config.AutoCreateTempUser.matchPattern;\n\t\tif ( typeof matchPatterns === 'string' ) {\n\t\t\tmatchPatterns = [ matchPatterns ];\n\t\t} else if ( matchPatterns === null ) {\n\t\t\tmatchPatterns = [ config.AutoCreateTempUser.genPattern ];\n\t\t}\n\t\tfor ( let i = 0; i < matchPatterns.length; i++ ) {\n\t\t\tconst autoCreateUserMatchPattern = matchPatterns[ i ];\n\t\t\t// Check each match pattern, and if any matches then return a match.\n\t\t\tconst position = autoCreateUserMatchPattern.indexOf( '$1' );\n\n\t\t\t// '$1' was not found in autoCreateUserMatchPattern\n\t\t\tif ( position === -1 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst prefix = autoCreateUserMatchPattern.slice( 0, position );\n\t\t\tconst suffix = autoCreateUserMatchPattern.slice( position + '$1'.length );\n\n\t\t\tlet match = true;\n\t\t\tif ( prefix !== '' ) {\n\t\t\t\tmatch = username.startsWith( prefix );\n\t\t\t}\n\t\t\tif ( match && suffix !== '' ) {\n\t\t\t\tmatch = ( username.endsWith( suffix ) ) &&\n\t\t\t\t\t( username.length >= prefix.length + suffix.length );\n\t\t\t}\n\t\t\tif ( match ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// No match patterns matched the username, so the given username is not a temporary user.\n\t\treturn false;\n\t},\n\n\t/**\n\t * Determine if an input string represents a value of infinity.\n\t * This is used when testing for infinity in the context of expiries,\n\t * such as watchlisting, page protection, and block expiries.\n\t *\n\t * @param {string|null} str\n\t * @return {boolean}\n\t * @stable\n\t */\n\tisInfinity( str ) {\n\t\treturn infinityValues.includes( str );\n\t}\n};\n\n/**\n * Initialisation of mw.util.$content\n *\n * @ignore\n */\nfunction init() {\n\t// The preferred standard is class \"mw-body\".\n\t// You may also use class \"mw-body mw-body-primary\" if you use\n\t// mw-body in multiple locations. Or class \"mw-body-primary\" if\n\t// you use mw-body deeper in the DOM.\n\tconst content = document.querySelector( '.mw-body-primary' ) ||\n\t\tdocument.querySelector( '.mw-body' ) ||\n\t\t// If the skin has no such class, fall back to the parser output\n\t\tdocument.querySelector( '#mw-content-text' ) ||\n\t\t// Should never happen..., except if the skin is still in development.\n\t\tdocument.body;\n\n\tutil.$content = $( content );\n}\n\n// Backwards-compatible alias for mediawiki.RegExp module.\n// @deprecated since 1.34\nmw.RegExp = {};\nmw.log.deprecate( mw.RegExp, 'escape', util.escapeRegExp, 'Use mw.util.escapeRegExp() instead.', 'mw.RegExp.escape' );\n\nif ( window.QUnit ) {\n\t// Not allowed outside unit tests\n\tutil.setOptionsForTest = function ( opts ) {\n\t\tconfig = !opts ? require( './config.json' ) : Object.assign( {}, config, opts );\n\t};\n\tutil.init = init;\n} else {\n\t$( init );\n}\n\nmw.util = util;\nmodule.exports = util;\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.visibleTimeout/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.visibleTimeout/visibleTimeout.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.watchstar.widgets/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.watchstar.widgets/WatchlistExpiryWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets.datetime/CalendarWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets.datetime/DateTimeFormatter.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'FieldSpecificationObject' is undefined.","line":268,"column":1,"nodeType":"Block","endLine":268,"endColumn":1},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'CalendarGridData' is undefined.","line":632,"column":1,"nodeType":"Block","endLine":632,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-jquery/no-map-util","severity":2,"message":"Prefer Array#map to $.map","line":348,"column":14,"nodeType":"CallExpression","endLine":348,"endColumn":53,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"( function () {\n\n\t/**\n\t * @class\n\t * @classdesc Provides various methods needed for formatting dates and times.\n\t * @abstract\n\t * @mixes OO.EventEmitter\n\t *\n\t * @constructor\n\t * @description Create an instance of `mw.widgets.datetime.DateTimeFormatter`.\n\t * @param {Object} [config] Configuration options\n\t * @param {string} [config.format='@default'] May be a key from the\n\t *  {@link mw.widgets.datetime.DateTimeFormatter.formats}, or a format\n\t *  specification as defined by {@link mw.widgets.datetime.DateTimeFormatter#parseFieldSpec}\n\t *  and {@link mw.widgets.datetime.DateTimeFormatter#getFieldForTag}.\n\t * @param {boolean} [config.local=false] Whether dates are local time or UTC\n\t * @param {string[]} [config.fullZones] Time zone indicators. Array of 2 strings, for\n\t *  UTC and local time.\n\t * @param {string[]} [config.shortZones] Abbreviated time zone indicators. Array of 2\n\t *  strings, for UTC and local time.\n\t * @param {Date} [config.defaultDate] Default date, for filling unspecified components.\n\t *  Defaults to the current date and time (with 0 milliseconds).\n\t */\n\tmw.widgets.datetime.DateTimeFormatter = function MwWidgetsDatetimeDateTimeFormatter( config ) {\n\t\tthis.constructor.static.setupDefaults();\n\n\t\tconfig = Object.assign( {\n\t\t\tformat: '@default',\n\t\t\tlocal: false,\n\t\t\tfullZones: this.constructor.static.fullZones,\n\t\t\tshortZones: this.constructor.static.shortZones\n\t\t}, config );\n\n\t\t// Mixin constructors\n\t\tOO.EventEmitter.call( this );\n\n\t\t// Properties\n\t\tif ( this.constructor.static.formats[ config.format ] ) {\n\t\t\tthis.format = this.constructor.static.formats[ config.format ];\n\t\t} else {\n\t\t\tthis.format = config.format;\n\t\t}\n\t\tthis.local = !!config.local;\n\t\tthis.fullZones = config.fullZones;\n\t\tthis.shortZones = config.shortZones;\n\t\tif ( config.defaultDate instanceof Date ) {\n\t\t\tthis.defaultDate = config.defaultDate;\n\t\t} else {\n\t\t\tthis.defaultDate = new Date();\n\t\t\tif ( this.local ) {\n\t\t\t\tthis.defaultDate.setMilliseconds( 0 );\n\t\t\t} else {\n\t\t\t\tthis.defaultDate.setUTCMilliseconds( 0 );\n\t\t\t}\n\t\t}\n\t};\n\n\t/* Setup */\n\n\tOO.initClass( mw.widgets.datetime.DateTimeFormatter );\n\tOO.mixinClass( mw.widgets.datetime.DateTimeFormatter, OO.EventEmitter );\n\n\t/* Static */\n\n\t/**\n\t * Default format specifications. See the {@link #format format} parameter.\n\t *\n\t * @static\n\t * @inheritable\n\t * @type {Object}\n\t * @name mw.widgets.datetime.DateTimeFormatter.formats\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.static.formats = {};\n\n\t/**\n\t * Default time zone indicators.\n\t *\n\t * @static\n\t * @inheritable\n\t * @type {string[]}\n\t * @name mw.widgets.datetime.DateTimeFormatter.fullZones\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.static.fullZones = null;\n\n\t/**\n\t * Default abbreviated time zone indicators.\n\t *\n\t * @static\n\t * @inheritable\n\t * @type {string[]}\n\t * @name mw.widgets.datetime.DateTimeFormatter.shortZones\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.static.shortZones = null;\n\n\tmw.widgets.datetime.DateTimeFormatter.static.setupDefaults = function () {\n\t\tif ( !this.fullZones ) {\n\t\t\tthis.fullZones = [\n\t\t\t\tmw.msg( 'timezone-utc' ),\n\t\t\t\tmw.msg( 'timezone-local' )\n\t\t\t];\n\t\t}\n\t\tif ( !this.shortZones ) {\n\t\t\tthis.shortZones = [\n\t\t\t\t'Z',\n\t\t\t\tthis.fullZones[ 1 ].slice( 0, 1 ).toUpperCase()\n\t\t\t];\n\t\t\tif ( this.shortZones[ 1 ] === 'Z' ) {\n\t\t\t\tthis.shortZones[ 1 ] = 'L';\n\t\t\t}\n\t\t}\n\t};\n\n\t/* Events */\n\n\t/**\n\t * A `local` event is emitted when the 'local' flag is changed.\n\t *\n\t * @event mw.widgets.datetime.DateTimeFormatter.local\n\t * @param {boolean} local Whether dates are local time\n\t */\n\n\t/* Methods */\n\n\t/**\n\t * Whether dates are in local time or UTC.\n\t *\n\t * @return {boolean} True if local time\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.getLocal = function () {\n\t\treturn this.local;\n\t};\n\n\t/**\n\t * Toggle whether dates are in local time or UTC.\n\t *\n\t * @param {boolean} [flag] Set the flag instead of toggling it\n\t * @fires mw.widgets.datetime.DateTimeFormatter.local\n\t * @chainable\n\t * @return {mw.widgets.datetime.DateTimeFormatter}\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.toggleLocal = function ( flag ) {\n\t\tif ( flag === undefined ) {\n\t\t\tflag = !this.local;\n\t\t} else {\n\t\t\tflag = !!flag;\n\t\t}\n\t\tif ( this.local !== flag ) {\n\t\t\tthis.local = flag;\n\t\t\tthis.emit( 'local', this.local );\n\t\t}\n\t\treturn this;\n\t};\n\n\t/**\n\t * Get the default date.\n\t *\n\t * @return {Date}\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.getDefaultDate = function () {\n\t\treturn new Date( this.defaultDate.getTime() );\n\t};\n\n\t/**\n\t * Fetch the field specification array for this object.\n\t *\n\t * See {@link #parseFieldSpec parseFieldSpec} for details on the return value structure.\n\t *\n\t * @return {Array}\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.getFieldSpec = function () {\n\t\treturn this.parseFieldSpec( this.format );\n\t};\n\n\t/**\n\t * Parse a format string into a field specification.\n\t *\n\t * The input is a string containing tags formatted as ${tag|param|param...}\n\t * (for editable fields) and $!{tag|param|param...} (for non-editable fields).\n\t * Most tags are defined by {@link #getFieldForTag getFieldForTag}, but a few\n\t * are defined here:\n\t * - ${intercalary|X|text}: Text that is only displayed when the 'intercalary'\n\t *   component is X.\n\t * - ${not-intercalary|X|text}: Text that is displayed unless the 'intercalary'\n\t *   component is X.\n\t *\n\t * Elements of the returned array are strings or objects. Strings are meant to\n\t * be displayed as-is. Objects are as returned by {@link #getFieldForTag getFieldForTag}.\n\t *\n\t * @protected\n\t * @param {string} format\n\t * @return {Array}\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.parseFieldSpec = function ( format ) {\n\t\tlet m, last, tag, params, spec;\n\n\t\tconst\n\t\t\tret = [],\n\t\t\tre = /(.*?)(\\$(!?)\\{([^}]+)\\})/g;\n\n\t\tlast = 0;\n\t\twhile ( ( m = re.exec( format ) ) !== null ) {\n\t\t\tlast = re.lastIndex;\n\n\t\t\tif ( m[ 1 ] !== '' ) {\n\t\t\t\tret.push( m[ 1 ] );\n\t\t\t}\n\n\t\t\tparams = m[ 4 ].split( '|' );\n\t\t\ttag = params.shift();\n\t\t\tspec = this.getFieldForTag( tag, params );\n\t\t\tif ( spec ) {\n\t\t\t\tif ( m[ 3 ] === '!' ) {\n\t\t\t\t\tspec.editable = false;\n\t\t\t\t}\n\t\t\t\tret.push( spec );\n\t\t\t} else {\n\t\t\t\tret.push( m[ 2 ] );\n\t\t\t}\n\t\t}\n\t\tif ( last < format.length ) {\n\t\t\tret.push( format.slice( last ) );\n\t\t}\n\n\t\treturn ret;\n\t};\n\n\t/**\n\t * @typedef {Object} mw.widgets.datetime.DateTimeFormatter~FieldSpecificationObject\n\t * @property {string|null} component Date component corresponding to this field, if any.\n\t * @property {boolean} editable Whether this field is editable.\n\t * @property {string} type What kind of field this is:\n\t *  - 'static': The field is a static string; component will be null.\n\t *  - 'number': The field is generally numeric.\n\t *  - 'string': The field is generally textual.\n\t *  - 'boolean': The field is a boolean.\n\t *  - 'toggleLocal': The field represents {@link #getLocal this.getLocal()}.\n\t *    Editing should directly call {@link #toggleLocal this.toggleLocal()}.\n\t * @property {boolean} calendarComponent Whether this field is part of a calendar, e.g.\n\t *  part of the date instead of the time.\n\t * @property {number} size Maximum number of characters in the field (when\n\t *  the 'intercalary' component is falsey). If 0, the field should be hidden entirely.\n\t * @property {Object.<string,number>} intercalarySize Map from\n\t *  'intercalary' component values to overridden sizes.\n\t * @property {string} value For type='static', the string to display.\n\t * @property {function(Mixed): string} formatValue A function to format a\n\t *  component value as a display string.\n\t * @property {function(string): Mixed} parseValue A function to parse a\n\t *  display string into a component value. If parsing fails, returns undefined.\n\t */\n\n\t/**\n\t * Turn a tag into a field specification object.\n\t *\n\t * Fields implemented here are:\n\t * - ${intercalary|X|text}: Text that is only displayed when the 'intercalary'\n\t *   component is X.\n\t * - ${not-intercalary|X|text}: Text that is displayed unless the 'intercalary'\n\t *   component is X.\n\t * - ${zone|#}: Timezone offset, \"+0000\" format.\n\t * - ${zone|:}: Timezone offset, \"+00:00\" format.\n\t * - ${zone|short}: Timezone from 'shortZones' configuration setting.\n\t * - ${zone|full}: Timezone from 'fullZones' configuration setting.\n\t *\n\t * @protected\n\t * @abstract\n\t * @param {string} tag\n\t * @param {string[]} params\n\t * @return {FieldSpecificationObject} Field specification object, or null if the tag+params are unrecognized.\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.getFieldForTag = function ( tag, params ) {\n\t\tlet c, spec = null;\n\n\t\tswitch ( tag ) {\n\t\t\tcase 'intercalary':\n\t\t\tcase 'not-intercalary':\n\t\t\t\tif ( params.length < 2 || !params[ 0 ] ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: null,\n\t\t\t\t\tcalendarComponent: false,\n\t\t\t\t\teditable: false,\n\t\t\t\t\ttype: 'static',\n\t\t\t\t\tvalue: params.slice( 1 ).join( '|' ),\n\t\t\t\t\tsize: 0,\n\t\t\t\t\tintercalarySize: {}\n\t\t\t\t};\n\t\t\t\tif ( tag === 'intercalary' ) {\n\t\t\t\t\tspec.intercalarySize[ params[ 0 ] ] = spec.value.length;\n\t\t\t\t} else {\n\t\t\t\t\tspec.size = spec.value.length;\n\t\t\t\t\tspec.intercalarySize[ params[ 0 ] ] = 0;\n\t\t\t\t}\n\t\t\t\treturn spec;\n\n\t\t\tcase 'zone':\n\t\t\t\tswitch ( params[ 0 ] ) {\n\t\t\t\t\tcase '#':\n\t\t\t\t\tcase ':':\n\t\t\t\t\t\tc = params[ 0 ] === '#' ? '' : ':';\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tcomponent: 'zone',\n\t\t\t\t\t\t\tcalendarComponent: false,\n\t\t\t\t\t\t\teditable: true,\n\t\t\t\t\t\t\ttype: 'toggleLocal',\n\t\t\t\t\t\t\tsize: 5 + c.length,\n\t\t\t\t\t\t\tformatValue: function ( v ) {\n\t\t\t\t\t\t\t\tlet o, r;\n\t\t\t\t\t\t\t\tif ( v ) {\n\t\t\t\t\t\t\t\t\to = new Date().getTimezoneOffset();\n\t\t\t\t\t\t\t\t\tr = String( Math.abs( o ) % 60 );\n\t\t\t\t\t\t\t\t\twhile ( r.length < 2 ) {\n\t\t\t\t\t\t\t\t\t\tr = '0' + r;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tr = String( Math.floor( Math.abs( o ) / 60 ) ) + c + r;\n\t\t\t\t\t\t\t\t\twhile ( r.length < 4 + c.length ) {\n\t\t\t\t\t\t\t\t\t\tr = '0' + r;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn ( o <= 0 ? '+' : '−' ) + r;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn '+00' + c + '00';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tparseValue: function ( v ) {\n\t\t\t\t\t\t\t\tlet m;\n\t\t\t\t\t\t\t\tv = String( v ).trim();\n\t\t\t\t\t\t\t\tif ( ( m = /^([+-−])([0-9]{1,2}):?([0-9]{2})$/.test( v ) ) ) {\n\t\t\t\t\t\t\t\t\treturn ( m[ 2 ] * 60 + m[ 3 ] ) * ( m[ 1 ] === '+' ? -1 : 1 );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'short':\n\t\t\t\t\tcase 'full':\n\t\t\t\t\t\tspec = {\n\t\t\t\t\t\t\tcomponent: 'zone',\n\t\t\t\t\t\t\tcalendarComponent: false,\n\t\t\t\t\t\t\teditable: true,\n\t\t\t\t\t\t\ttype: 'toggleLocal',\n\t\t\t\t\t\t\tvalues: params[ 0 ] === 'short' ? this.shortZones : this.fullZones,\n\t\t\t\t\t\t\tformatValue: this.formatSpecValue,\n\t\t\t\t\t\t\tparseValue: this.parseSpecValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tspec.size = Math.max.apply(\n\t\t\t\t\t\t\t// eslint-disable-next-line no-jquery/no-map-util\n\t\t\t\t\t\t\tnull, $.map( spec.values, ( v ) => v.length )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn spec;\n\t\t\t\t}\n\t\t\t\treturn null;\n\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t};\n\n\t/**\n\t * Format a value for a field specification.\n\t *\n\t * 'this' must be the field specification object. The intention is that you\n\t * could just assign this function as the 'formatValue' for each field spec.\n\t *\n\t * Besides the publicly-documented fields, uses the following:\n\t * - values: Enumerated values for the field\n\t * - zeropad: Whether to pad the number with zeros.\n\t *\n\t * @protected\n\t * @param {any} v\n\t * @return {string}\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.formatSpecValue = function ( v ) {\n\t\tif ( v === undefined || v === null ) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif ( typeof v === 'boolean' || this.type === 'toggleLocal' ) {\n\t\t\tv = v ? 1 : 0;\n\t\t}\n\n\t\tif ( this.values ) {\n\t\t\treturn this.values[ v ];\n\t\t}\n\n\t\tv = String( v );\n\t\tif ( this.zeropad ) {\n\t\t\twhile ( v.length < this.size ) {\n\t\t\t\tv = '0' + v;\n\t\t\t}\n\t\t}\n\t\treturn v;\n\t};\n\n\t/**\n\t * Parse a value for a field specification.\n\t *\n\t * 'this' must be the field specification object. The intention is that you\n\t * could just assign this function as the 'parseValue' for each field spec.\n\t *\n\t * Besides the publicly-documented fields, uses the following:\n\t * - values: Enumerated values for the field\n\t *\n\t * @protected\n\t * @param {string} v\n\t * @return {number|string|null}\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.parseSpecValue = function ( v ) {\n\t\tlet k;\n\n\t\tif ( v === '' ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( !this.values ) {\n\t\t\tv = +v;\n\t\t\tif ( this.type === 'boolean' || this.type === 'toggleLocal' ) {\n\t\t\t\treturn isNaN( v ) ? undefined : !!v;\n\t\t\t} else {\n\t\t\t\treturn isNaN( v ) ? undefined : v;\n\t\t\t}\n\t\t}\n\n\t\tif ( v.normalize ) {\n\t\t\tv = v.normalize();\n\t\t}\n\n\t\tconst re = new RegExp( '^\\\\s*' + mw.util.escapeRegExp( v ), 'i' );\n\t\tfor ( k in this.values ) {\n\t\t\tk = +k;\n\t\t\tif ( !isNaN( k ) && re.test( this.values[ k ] ) ) {\n\t\t\t\tif ( this.type === 'boolean' || this.type === 'toggleLocal' ) {\n\t\t\t\t\treturn !!k;\n\t\t\t\t} else {\n\t\t\t\t\treturn k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t};\n\n\t/**\n\t * Get components from a Date object.\n\t *\n\t * Most specific components are defined by the subclass. \"Global\" components\n\t * are:\n\t * - intercalary: {string} Non-falsey values are used to indicate intercalary days.\n\t * - zone: {number} Timezone offset in minutes.\n\t *\n\t * @abstract\n\t * @param {Date|null} date\n\t * @return {Object} Components\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.getComponentsFromDate = function ( date ) {\n\t\t// Should be overridden by subclass\n\t\treturn {\n\t\t\tzone: this.local ? date.getTimezoneOffset() : 0\n\t\t};\n\t};\n\n\t/**\n\t * Get a Date object from components.\n\t *\n\t * @param {Object} components Date components\n\t * @return {Date}\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.getDateFromComponents = function ( /* components */ ) {\n\t\t// Should be overridden by subclass\n\t\treturn new Date();\n\t};\n\n\t/**\n\t * Adjust a date.\n\t *\n\t * @param {Date|null} date To be adjusted\n\t * @param {string} component To adjust\n\t * @param {number} delta Adjustment amount\n\t * @param {string} mode Adjustment mode:\n\t *  - 'overflow': \"Jan 32\" => \"Feb 1\", \"Jan 33\" => \"Feb 2\", \"Feb 0\" => \"Jan 31\", etc.\n\t *  - 'wrap': \"Jan 32\" => \"Jan 1\", \"Jan 33\" => \"Jan 2\", \"Jan 0\" => \"Jan 31\", etc.\n\t *  - 'clip': \"Jan 32\" => \"Jan 31\", \"Feb 32\" => \"Feb 28\" (or 29), \"Feb 0\" => \"Feb 1\", etc.\n\t * @return {Date} Adjusted date\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.adjustComponent = function ( date /* , component, delta, mode */ ) {\n\t\t// Should be overridden by subclass\n\t\treturn date;\n\t};\n\n\t/**\n\t * Get the column headings (weekday abbreviations) for a calendar grid.\n\t *\n\t * Null-valued columns are hidden if getCalendarData() returns no \"day\" object\n\t * for all days in that column.\n\t *\n\t * @abstract\n\t * @return {Array} string or null\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.getCalendarHeadings = function () {\n\t\t// Should be overridden by subclass\n\t\treturn [];\n\t};\n\n\t/**\n\t * Test whether two dates are in the same calendar grid.\n\t *\n\t * @abstract\n\t * @param {Date} date1\n\t * @param {Date} date2\n\t * @return {boolean}\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.sameCalendarGrid = function ( date1, date2 ) {\n\t\t// Should be overridden by subclass\n\t\treturn date1.getTime() === date2.getTime();\n\t};\n\n\t/**\n\t * Test whether the date parts of two Dates are equal.\n\t *\n\t * @param {Date} date1\n\t * @param {Date} date2\n\t * @return {boolean}\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.datePartIsEqual = function ( date1, date2 ) {\n\t\tif ( this.local ) {\n\t\t\treturn (\n\t\t\t\tdate1.getFullYear() === date2.getFullYear() &&\n\t\t\t\tdate1.getMonth() === date2.getMonth() &&\n\t\t\t\tdate1.getDate() === date2.getDate()\n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\tdate1.getUTCFullYear() === date2.getUTCFullYear() &&\n\t\t\t\tdate1.getUTCMonth() === date2.getUTCMonth() &&\n\t\t\t\tdate1.getUTCDate() === date2.getUTCDate()\n\t\t\t);\n\t\t}\n\t};\n\n\t/**\n\t * Test whether the time parts of two Dates are equal.\n\t *\n\t * @param {Date} date1\n\t * @param {Date} date2\n\t * @return {boolean}\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.timePartIsEqual = function ( date1, date2 ) {\n\t\tif ( this.local ) {\n\t\t\treturn (\n\t\t\t\tdate1.getHours() === date2.getHours() &&\n\t\t\t\tdate1.getMinutes() === date2.getMinutes() &&\n\t\t\t\tdate1.getSeconds() === date2.getSeconds() &&\n\t\t\t\tdate1.getMilliseconds() === date2.getMilliseconds()\n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\tdate1.getUTCHours() === date2.getUTCHours() &&\n\t\t\t\tdate1.getUTCMinutes() === date2.getUTCMinutes() &&\n\t\t\t\tdate1.getUTCSeconds() === date2.getUTCSeconds() &&\n\t\t\t\tdate1.getUTCMilliseconds() === date2.getUTCMilliseconds()\n\t\t\t);\n\t\t}\n\t};\n\n\t/**\n\t * Test whether toggleLocal() changes the date part.\n\t *\n\t * @param {Date} date\n\t * @return {boolean}\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.localChangesDatePart = function ( date ) {\n\t\treturn (\n\t\t\tdate.getUTCFullYear() !== date.getFullYear() ||\n\t\t\tdate.getUTCMonth() !== date.getMonth() ||\n\t\t\tdate.getUTCDate() !== date.getDate()\n\t\t);\n\t};\n\n\t/**\n\t * Create a new Date by merging the date part from one with the time part from\n\t * another.\n\t *\n\t * @param {Date} datepart\n\t * @param {Date} timepart\n\t * @return {Date}\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.mergeDateAndTime = function ( datepart, timepart ) {\n\t\tconst ret = new Date( datepart.getTime() );\n\n\t\tif ( this.local ) {\n\t\t\tret.setHours(\n\t\t\t\ttimepart.getHours(),\n\t\t\t\ttimepart.getMinutes(),\n\t\t\t\ttimepart.getSeconds(),\n\t\t\t\ttimepart.getMilliseconds()\n\t\t\t);\n\t\t} else {\n\t\t\tret.setUTCHours(\n\t\t\t\ttimepart.getUTCHours(),\n\t\t\t\ttimepart.getUTCMinutes(),\n\t\t\t\ttimepart.getUTCSeconds(),\n\t\t\t\ttimepart.getUTCMilliseconds()\n\t\t\t);\n\t\t}\n\n\t\treturn ret;\n\t};\n\n\t/**\n\t * @typedef {Object} mw.widgets.datetime.DateTimeFormatter~CalendarGridData\n\t * @property {string} header String to display as the calendar header\n\t * @property {string} monthComponent Component to adjust by ±1 to change months.\n\t * @property {string} dayComponent Component to adjust by ±1 to change days.\n\t * @property {string} [weekComponent] Component to adjust by ±1 to change\n\t *   weeks. If omitted, the dayComponent should be adjusted by ±the number of\n\t *   non-nullable columns returned by this.getCalendarHeadings() to change weeks.\n\t * @property {Array} rows Array of arrays of \"day\" objects or null/undefined.\n\t */\n\n\t/**\n\t * Get data for a calendar grid.\n\t *\n\t * A \"day\" object is:\n\t * - display: {string} Display text for the day.\n\t * - date: {Date} Date to use when the day is selected.\n\t * - extra: {string|null} 'prev' or 'next' on days used to fill out the weeks\n\t *   at the start and end of the month.\n\t *\n\t * In any one result object, 'extra' + 'display' will always be unique.\n\t *\n\t * @abstract\n\t * @param {Date|null} current Current date\n\t * @return {CalendarGridData} Data\n\t */\n\tmw.widgets.datetime.DateTimeFormatter.prototype.getCalendarData = function ( /* components */ ) {\n\t\t// Should be overridden by subclass\n\t\treturn {\n\t\t\theader: '',\n\t\t\tmonthComponent: 'month',\n\t\t\tdayComponent: 'day',\n\t\t\trows: []\n\t\t};\n\t};\n\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":403,"column":7,"nodeType":"CallExpression","endLine":403,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets.datetime/DiscordianDateTimeFormatter.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'FieldSpecificationObject' is undefined.","line":74,"column":1,"nodeType":"Block","endLine":74,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-jquery/no-map-util","severity":2,"message":"Prefer Array#map to $.map","line":201,"column":12,"nodeType":"CallExpression","endLine":201,"endColumn":51,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"( function () {\n\n\t/**\n\t * @classdesc DateTimeFormatter for the Discordian calendar.\n\t *\n\t * Provides various methods needed for formatting dates and times. This\n\t * implementation implements the [Discordian calendar](https://en.wikipedia.org/wiki/Discordian_calendar),\n\t * mainly for testing with something very different from the usual Gregorian\n\t * calendar.\n\t *\n\t * Being intended mainly for testing, niceties like i18n and better\n\t * configurability have been omitted.\n\t *\n\t * @class\n\t * @extends mw.widgets.datetime.DateTimeFormatter\n\t *\n\t * @constructor\n\t * @description Create an instance of `mw.widgets.datetime.DiscordianDateTimeFormatter`.\n\t * @param {Object} [config] Configuration options\n\t */\n\tmw.widgets.datetime.DiscordianDateTimeFormatter = function MwWidgetsDatetimeDiscordianDateTimeFormatter( config ) {\n\t\tconfig = Object.assign( {}, config );\n\n\t\t// Parent constructor\n\t\tmw.widgets.datetime.DiscordianDateTimeFormatter.super.call( this, config );\n\t};\n\n\t/* Setup */\n\n\tOO.inheritClass( mw.widgets.datetime.DiscordianDateTimeFormatter, mw.widgets.datetime.DateTimeFormatter );\n\n\t/* Static */\n\n\t/**\n\t * Default format specifications.\n\t *\n\t * See the `format` parameter in {@link mw.widgets.datetime.DateTimeFormatter}.\n\t *\n\t * @memberof mw.widgets.datetime.DiscordianDateTimeFormatter\n\t * @type {Object.<string,string>}\n\t * @name formats\n\t */\n\tmw.widgets.datetime.DiscordianDateTimeFormatter.static.formats = {\n\t\t'@time': '${hour|0}:${minute|0}:${second|0}',\n\t\t'@date': '$!{dow|full}${not-intercalary|1|, }${season|full}${not-intercalary|1| }${day|#}, ${year|#}',\n\t\t'@datetime': '$!{dow|full}${not-intercalary|1|, }${season|full}${not-intercalary|1| }${day|#}, ${year|#} ${hour|0}:${minute|0}:${second|0} $!{zone|short}',\n\t\t'@default': '$!{dow|full}${not-intercalary|1|, }${season|full}${not-intercalary|1| }${day|#}, ${year|#} ${hour|0}:${minute|0}:${second|0} $!{zone|short}'\n\t};\n\n\t/* Methods */\n\n\t/**\n\t * Turn a tag into a field specification object.\n\t *\n\t * Additional fields implemented here are:\n\t * - ${year|#}: Year as a number\n\t * - ${season|#}: Season as a number\n\t * - ${season|full}: Season as a string\n\t * - ${day|#}: Day of the month as a number\n\t * - ${day|0}: Day of the month as a number with leading 0\n\t * - ${dow|full}: Day of the week as a string\n\t * - ${hour|#}: Hour as a number\n\t * - ${hour|0}: Hour as a number with leading 0\n\t * - ${minute|#}: Minute as a number\n\t * - ${minute|0}: Minute as a number with leading 0\n\t * - ${second|#}: Second as a number\n\t * - ${second|0}: Second as a number with leading 0\n\t * - ${millisecond|#}: Millisecond as a number\n\t * - ${millisecond|0}: Millisecond as a number, zero-padded to 3 digits\n\t *\n\t * @protected\n\t * @param {string} tag\n\t * @param {string[]} params\n\t * @return {FieldSpecificationObject} Field specification object, or null if the tag+params are unrecognized.\n\t */\n\tmw.widgets.datetime.DiscordianDateTimeFormatter.prototype.getFieldForTag = function ( tag, params ) {\n\t\tlet spec = null;\n\n\t\tswitch ( tag + '|' + params[ 0 ] ) {\n\t\t\tcase 'year|#':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: 'Year',\n\t\t\t\t\tcalendarComponent: true,\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tsize: 4,\n\t\t\t\t\tzeropad: false\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'season|#':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: 'Season',\n\t\t\t\t\tcalendarComponent: true,\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tsize: 1,\n\t\t\t\t\tintercalarySize: { 1: 0 },\n\t\t\t\t\tzeropad: false\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'season|full':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: 'Season',\n\t\t\t\t\tcalendarComponent: true,\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tintercalarySize: { 1: 0 },\n\t\t\t\t\tvalues: {\n\t\t\t\t\t\t1: 'Chaos',\n\t\t\t\t\t\t2: 'Discord',\n\t\t\t\t\t\t3: 'Confusion',\n\t\t\t\t\t\t4: 'Bureaucracy',\n\t\t\t\t\t\t5: 'The Aftermath'\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'dow|full':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: 'DOW',\n\t\t\t\t\tcalendarComponent: true,\n\t\t\t\t\teditable: false,\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tintercalarySize: { 1: 0 },\n\t\t\t\t\tvalues: {\n\t\t\t\t\t\t'-1': 'N/A',\n\t\t\t\t\t\t0: 'Sweetmorn',\n\t\t\t\t\t\t1: 'Boomtime',\n\t\t\t\t\t\t2: 'Pungenday',\n\t\t\t\t\t\t3: 'Prickle-Prickle',\n\t\t\t\t\t\t4: 'Setting Orange'\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'day|#':\n\t\t\tcase 'day|0':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: 'Day',\n\t\t\t\t\tcalendarComponent: true,\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsize: 2,\n\t\t\t\t\tintercalarySize: { 1: 13 },\n\t\t\t\t\tzeropad: params[ 0 ] === '0',\n\t\t\t\t\tformatValue: function ( v ) {\n\t\t\t\t\t\tif ( v === 'tib' ) {\n\t\t\t\t\t\t\treturn 'St. Tib\\'s Day';\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn mw.widgets.datetime.DateTimeFormatter.prototype.formatSpecValue.call( this, v );\n\t\t\t\t\t},\n\t\t\t\t\tparseValue: function ( v ) {\n\n\t\t\t\t\t\tif ( /^\\s*(st.?\\s*)?tib('?s)?(\\s*day)?\\s*$/i.test( v ) ) {\n\t\t\t\t\t\t\treturn 'tib';\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn mw.widgets.datetime.DateTimeFormatter.prototype.parseSpecValue.call( this, v );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'hour|#':\n\t\t\tcase 'hour|0':\n\t\t\tcase 'minute|#':\n\t\t\tcase 'minute|0':\n\t\t\tcase 'second|#':\n\t\t\tcase 'second|0':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: tag.charAt( 0 ).toUpperCase() + tag.slice( 1 ),\n\t\t\t\t\tcalendarComponent: false,\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tsize: 2,\n\t\t\t\t\tzeropad: params[ 0 ] === '0'\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'millisecond|#':\n\t\t\tcase 'millisecond|0':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: 'Millisecond',\n\t\t\t\t\tcalendarComponent: false,\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tsize: 3,\n\t\t\t\t\tzeropad: params[ 0 ] === '0'\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\treturn mw.widgets.datetime.DiscordianDateTimeFormatter.super.prototype.getFieldForTag.call( this, tag, params );\n\t\t}\n\n\t\tif ( spec ) {\n\t\t\tif ( spec.editable === undefined ) {\n\t\t\t\tspec.editable = true;\n\t\t\t}\n\t\t\tif ( spec.component !== 'Day' ) {\n\t\t\t\tspec.formatValue = this.formatSpecValue;\n\t\t\t\tspec.parseValue = this.parseSpecValue;\n\t\t\t}\n\t\t\tif ( spec.values ) {\n\t\t\t\tspec.size = Math.max.apply(\n\t\t\t\t\t// eslint-disable-next-line no-jquery/no-map-util\n\t\t\t\t\tnull, $.map( spec.values, ( v ) => v.length )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn spec;\n\t};\n\n\t/**\n\t * Get components from a Date object.\n\t *\n\t * Components are:\n\t * - Year {number}\n\t * - Season {number} 1-5\n\t * - Day {number|string} 1-73 or 'tib'\n\t * - DOW {number} 0-4, or -1 on St. Tib's Day\n\t * - Hour {number} 0-23\n\t * - Minute {number} 0-59\n\t * - Second {number} 0-59\n\t * - Millisecond {number} 0-999\n\t * - intercalary {string} '1' on St. Tib's Day\n\t *\n\t * @param {Date|null} date\n\t * @return {Object} Components\n\t */\n\tmw.widgets.datetime.DiscordianDateTimeFormatter.prototype.getComponentsFromDate = function ( date ) {\n\t\tlet ret, day, month;\n\n\t\tconst monthDays = [ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 ];\n\n\t\tif ( !( date instanceof Date ) ) {\n\t\t\tdate = this.defaultDate;\n\t\t}\n\n\t\tif ( this.local ) {\n\t\t\tday = date.getDate();\n\t\t\tmonth = date.getMonth();\n\t\t\tret = {\n\t\t\t\tYear: date.getFullYear() + 1166,\n\t\t\t\tHour: date.getHours(),\n\t\t\t\tMinute: date.getMinutes(),\n\t\t\t\tSecond: date.getSeconds(),\n\t\t\t\tMillisecond: date.getMilliseconds(),\n\t\t\t\tzone: date.getTimezoneOffset()\n\t\t\t};\n\t\t} else {\n\t\t\tday = date.getUTCDate();\n\t\t\tmonth = date.getUTCMonth();\n\t\t\tret = {\n\t\t\t\tYear: date.getUTCFullYear() + 1166,\n\t\t\t\tHour: date.getUTCHours(),\n\t\t\t\tMinute: date.getUTCMinutes(),\n\t\t\t\tSecond: date.getUTCSeconds(),\n\t\t\t\tMillisecond: date.getUTCMilliseconds(),\n\t\t\t\tzone: 0\n\t\t\t};\n\t\t}\n\n\t\tif ( month === 1 && day === 29 ) {\n\t\t\tret.Season = 1;\n\t\t\tret.Day = 'tib';\n\t\t\tret.DOW = -1;\n\t\t\tret.intercalary = '1';\n\t\t} else {\n\t\t\tday = monthDays[ month ] + day - 1;\n\t\t\tret.Season = Math.floor( day / 73 ) + 1;\n\t\t\tret.Day = ( day % 73 ) + 1;\n\t\t\tret.DOW = day % 5;\n\t\t\tret.intercalary = '';\n\t\t}\n\n\t\treturn ret;\n\t};\n\n\t/**\n\t * @inheritdoc\n\t */\n\tmw.widgets.datetime.DiscordianDateTimeFormatter.prototype.adjustComponent = function ( date, component, delta, mode ) {\n\t\treturn this.getDateFromComponents(\n\t\t\tthis.adjustComponentInternal(\n\t\t\t\tthis.getComponentsFromDate( date ), component, delta, mode\n\t\t\t)\n\t\t);\n\t};\n\n\t/**\n\t * Adjust the components directly.\n\t *\n\t * @private\n\t * @param {Object} components Modified in place\n\t * @param {string} component\n\t * @param {number} delta\n\t * @param {string} mode\n\t * @return {Object} components\n\t */\n\tmw.widgets.datetime.DiscordianDateTimeFormatter.prototype.adjustComponentInternal = function ( components, component, delta, mode ) {\n\t\tlet i, min, max, range, next, preTib, postTib, wasTib;\n\n\t\tif ( delta === 0 ) {\n\t\t\treturn components;\n\t\t}\n\n\t\tswitch ( component ) {\n\t\t\tcase 'Year':\n\t\t\t\tmin = 1166;\n\t\t\t\tmax = 11165;\n\t\t\t\tnext = null;\n\t\t\t\tbreak;\n\t\t\tcase 'Season':\n\t\t\t\tmin = 1;\n\t\t\t\tmax = 5;\n\t\t\t\tnext = 'Year';\n\t\t\t\tbreak;\n\t\t\tcase 'Week':\n\t\t\t\tif ( components.Day === 'tib' ) {\n\t\t\t\t\tcomponents.Day = 59; // Could choose either one...\n\t\t\t\t\tcomponents.Season = 1;\n\t\t\t\t}\n\t\t\t\tmin = 1;\n\t\t\t\tmax = 73;\n\t\t\t\tnext = 'Season';\n\t\t\t\tbreak;\n\t\t\tcase 'Day':\n\t\t\t\tmin = 1;\n\t\t\t\tmax = 73;\n\t\t\t\tnext = 'Season';\n\t\t\t\tbreak;\n\t\t\tcase 'Hour':\n\t\t\t\tmin = 0;\n\t\t\t\tmax = 23;\n\t\t\t\tnext = 'Day';\n\t\t\t\tbreak;\n\t\t\tcase 'Minute':\n\t\t\t\tmin = 0;\n\t\t\t\tmax = 59;\n\t\t\t\tnext = 'Hour';\n\t\t\t\tbreak;\n\t\t\tcase 'Second':\n\t\t\t\tmin = 0;\n\t\t\t\tmax = 59;\n\t\t\t\tnext = 'Minute';\n\t\t\t\tbreak;\n\t\t\tcase 'Millisecond':\n\t\t\t\tmin = 0;\n\t\t\t\tmax = 999;\n\t\t\t\tnext = 'Second';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn components;\n\t\t}\n\n\t\tswitch ( mode ) {\n\t\t\tcase 'overflow':\n\t\t\tcase 'clip':\n\t\t\tcase 'wrap':\n\t\t}\n\n\t\tif ( component === 'Day' ) {\n\t\t\ti = Math.abs( delta );\n\t\t\tdelta = delta < 0 ? -1 : 1;\n\t\t\tpreTib = delta > 0 ? 59 : 60;\n\t\t\tpostTib = delta > 0 ? 60 : 59;\n\t\t\twhile ( i-- > 0 ) {\n\t\t\t\tif ( components.Day === preTib && components.Season === 1 && this.isLeapYear( components.Year ) ) {\n\t\t\t\t\tcomponents.Day = 'tib';\n\t\t\t\t} else if ( components.Day === 'tib' ) {\n\t\t\t\t\tcomponents.Day = postTib;\n\t\t\t\t\tcomponents.Season = 1;\n\t\t\t\t} else {\n\t\t\t\t\tcomponents.Day += delta;\n\t\t\t\t\tif ( components.Day < min ) {\n\t\t\t\t\t\tswitch ( mode ) {\n\t\t\t\t\t\t\tcase 'overflow':\n\t\t\t\t\t\t\t\tcomponents.Day = max;\n\t\t\t\t\t\t\t\tthis.adjustComponentInternal( components, 'Season', -1, mode );\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'wrap':\n\t\t\t\t\t\t\t\tcomponents.Day = max;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'clip':\n\t\t\t\t\t\t\t\tcomponents.Day = min;\n\t\t\t\t\t\t\t\ti = 0;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( components.Day > max ) {\n\t\t\t\t\t\tswitch ( mode ) {\n\t\t\t\t\t\t\tcase 'overflow':\n\t\t\t\t\t\t\t\tcomponents.Day = min;\n\t\t\t\t\t\t\t\tthis.adjustComponentInternal( components, 'Season', 1, mode );\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'wrap':\n\t\t\t\t\t\t\t\tcomponents.Day = min;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'clip':\n\t\t\t\t\t\t\t\tcomponents.Day = max;\n\t\t\t\t\t\t\t\ti = 0;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif ( component === 'Week' ) {\n\t\t\t\tcomponent = 'Day';\n\t\t\t\tdelta *= 5;\n\t\t\t}\n\t\t\tif ( components.Day === 'tib' ) {\n\t\t\t\tcomponents.Season = 1;\n\t\t\t}\n\t\t\tswitch ( mode ) {\n\t\t\t\tcase 'overflow':\n\t\t\t\t\tif ( components.Day === 'tib' && ( component === 'Season' || component === 'Year' ) ) {\n\t\t\t\t\t\tcomponents.Day = 59; // Could choose either one...\n\t\t\t\t\t\twasTib = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\twasTib = false;\n\t\t\t\t\t}\n\t\t\t\t\ti = Math.abs( delta );\n\t\t\t\t\tdelta = delta < 0 ? -1 : 1;\n\t\t\t\t\twhile ( i-- > 0 ) {\n\t\t\t\t\t\tcomponents[ component ] += delta;\n\t\t\t\t\t\tif ( components[ component ] < min ) {\n\t\t\t\t\t\t\tcomponents[ component ] = max;\n\t\t\t\t\t\t\tcomponents = this.adjustComponentInternal( components, next, -1, mode );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( components[ component ] > max ) {\n\t\t\t\t\t\t\tcomponents[ component ] = min;\n\t\t\t\t\t\t\tcomponents = this.adjustComponentInternal( components, next, 1, mode );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( wasTib && components.Season === 1 && this.isLeapYear( components.Year ) ) {\n\t\t\t\t\t\tcomponents.Day = 'tib';\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'wrap':\n\t\t\t\t\trange = max - min + 1;\n\t\t\t\t\tcomponents[ component ] += delta;\n\t\t\t\t\twhile ( components[ component ] < min ) {\n\t\t\t\t\t\tcomponents[ component ] += range;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( components[ component ] > max ) {\n\t\t\t\t\t\tcomponents[ component ] -= range;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'clip':\n\t\t\t\t\tcomponents[ component ] += delta;\n\t\t\t\t\tif ( components[ component ] < min ) {\n\t\t\t\t\t\tcomponents[ component ] = min;\n\t\t\t\t\t}\n\t\t\t\t\tif ( components[ component ] > max ) {\n\t\t\t\t\t\tcomponents[ component ] = max;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( components.Day === 'tib' &&\n\t\t\t\t( components.Season !== 1 || !this.isLeapYear( components.Year ) )\n\t\t\t) {\n\t\t\t\tcomponents.Day = 59; // Could choose either one...\n\t\t\t}\n\t\t}\n\n\t\treturn components;\n\t};\n\n\t/**\n\t * @inheritdoc\n\t */\n\tmw.widgets.datetime.DiscordianDateTimeFormatter.prototype.getDateFromComponents = function ( components ) {\n\t\tlet month, day;\n\n\t\tconst\n\t\t\tdate = new Date(),\n\t\t\tmonthDays = [ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 ];\n\n\t\tcomponents = Object.assign( {}, this.getComponentsFromDate( null ), components );\n\t\tif ( components.Day === 'tib' ) {\n\t\t\tmonth = 1;\n\t\t\tday = 29;\n\t\t} else {\n\t\t\tconst days = components.Season * 73 + components.Day - 74;\n\t\t\tmonth = 0;\n\t\t\twhile ( days >= monthDays[ month + 1 ] ) {\n\t\t\t\tmonth++;\n\t\t\t}\n\t\t\tday = days - monthDays[ month ] + 1;\n\t\t}\n\n\t\tif ( components.zone ) {\n\t\t\t// Can't just use the constructor because that's stupid about ancient years.\n\t\t\tdate.setFullYear( components.Year - 1166, month, day );\n\t\t\tdate.setHours( components.Hour, components.Minute, components.Second, components.Millisecond );\n\t\t} else {\n\t\t\t// Date.UTC() is stupid about ancient years too.\n\t\t\tdate.setUTCFullYear( components.Year - 1166, month, day );\n\t\t\tdate.setUTCHours( components.Hour, components.Minute, components.Second, components.Millisecond );\n\t\t}\n\n\t\treturn date;\n\t};\n\n\t/**\n\t * Get whether the year is a leap year.\n\t *\n\t * @private\n\t * @param {number} year\n\t * @return {boolean}\n\t */\n\tmw.widgets.datetime.DiscordianDateTimeFormatter.prototype.isLeapYear = function ( year ) {\n\t\tyear -= 1166;\n\t\tif ( year % 4 ) {\n\t\t\treturn false;\n\t\t} else if ( year % 100 ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn ( year % 400 ) === 0;\n\t};\n\n\t/**\n\t * @inheritdoc\n\t */\n\tmw.widgets.datetime.DiscordianDateTimeFormatter.prototype.getCalendarHeadings = function () {\n\t\treturn [ 'SM', 'BT', 'PD', 'PP', null, 'SO' ];\n\t};\n\n\t/**\n\t * @inheritdoc\n\t */\n\tmw.widgets.datetime.DiscordianDateTimeFormatter.prototype.sameCalendarGrid = function ( date1, date2 ) {\n\t\tconst components1 = this.getComponentsFromDate( date1 ),\n\t\t\tcomponents2 = this.getComponentsFromDate( date2 );\n\n\t\treturn components1.Year === components2.Year && components1.Season === components2.Season;\n\t};\n\n\t/**\n\t * @inheritdoc\n\t */\n\tmw.widgets.datetime.DiscordianDateTimeFormatter.prototype.getCalendarData = function ( date ) {\n\t\tconst\n\t\t\tret = {\n\t\t\t\tdayComponent: 'Day',\n\t\t\t\tweekComponent: 'Week',\n\t\t\t\tmonthComponent: 'Season'\n\t\t\t},\n\t\t\tseasons = [ 'Chaos', 'Discord', 'Confusion', 'Bureaucracy', 'The Aftermath' ],\n\t\t\tseasonStart = [ 0, -3, -1, -4, -2 ];\n\n\t\tif ( !( date instanceof Date ) ) {\n\t\t\tdate = this.defaultDate;\n\t\t}\n\n\t\tconst components = this.getComponentsFromDate( date );\n\t\tcomponents.Day = 1;\n\t\tconst season = components.Season;\n\n\t\tret.header = seasons[ season - 1 ] + ' ' + components.Year;\n\n\t\tif ( seasonStart[ season - 1 ] ) {\n\t\t\tthis.adjustComponentInternal( components, 'Day', seasonStart[ season - 1 ], 'overflow' );\n\t\t}\n\n\t\tret.rows = [];\n\t\tdo {\n\t\t\tconst row = [];\n\t\t\tfor ( let i = 0; i < 6; i++ ) {\n\t\t\t\tconst dt = this.getDateFromComponents( components );\n\t\t\t\trow[ i ] = {\n\t\t\t\t\tdisplay: components.Day === 'tib' ? 'Tib' : String( components.Day ),\n\t\t\t\t\tdate: dt,\n\t\t\t\t\textra: components.Season < season ? 'prev' : components.Season > season ? 'next' : null\n\t\t\t\t};\n\n\t\t\t\tthis.adjustComponentInternal( components, 'Day', 1, 'overflow' );\n\t\t\t\tif ( components.Day !== 'tib' && i === 3 ) {\n\t\t\t\t\trow[ ++i ] = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tret.rows.push( row );\n\t\t} while ( components.Season === season );\n\n\t\treturn ret;\n\t};\n\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets.datetime/ProlepticGregorianDateTimeFormatter.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'FieldSpecificationObject' is undefined.","line":306,"column":1,"nodeType":"Block","endLine":306,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":42,"column":4,"nodeType":"CallExpression","endLine":44,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":49,"column":4,"nodeType":"CallExpression","endLine":51,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":56,"column":4,"nodeType":"CallExpression","endLine":58,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":63,"column":4,"nodeType":"CallExpression","endLine":65,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":176,"column":4,"nodeType":"CallExpression","endLine":178,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":183,"column":4,"nodeType":"CallExpression","endLine":185,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":190,"column":4,"nodeType":"CallExpression","endLine":192,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":197,"column":4,"nodeType":"CallExpression","endLine":199,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-map-util","severity":2,"message":"Prefer Array#map to $.map","line":416,"column":12,"nodeType":"CallExpression","endLine":416,"endColumn":51,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"( function () {\n\n\t/**\n\t * @classdesc DateTimeFormatter for the proleptic Gregorian calendar.\n\t *\n\t * Provides various methods needed for formatting dates and times. This\n\t * implementation implements the proleptic Gregorian calendar over years\n\t * 0000–9999.\n\t *\n\t * @class\n\t * @extends mw.widgets.datetime.DateTimeFormatter\n\t *\n\t * @constructor\n\t * @description Create an instance of `mw.widgets.datetime.ProlepticGregorianDateTimeFormatter`.\n\t * @param {Object} [config] Configuration options\n\t * @param {Object} [config.fullMonthNames] Mapping 1–12 to full month names.\n\t * @param {Object} [config.shortMonthNames] Mapping 1–12 to abbreviated month names.\n\t *  If {@link #fullMonthNames fullMonthNames} is given and this is not,\n\t *  defaults to the first three characters from that setting.\n\t * @param {Object} [config.fullDayNames] Mapping 0–6 to full day of week names. 0 is Sunday, 6 is Saturday.\n\t * @param {Object} [config.shortDayNames] Mapping 0–6 to abbreviated day of week names. 0 is Sunday, 6 is Saturday.\n\t *  If {@link #fullDayNames fullDayNames} is given and this is not, defaults to\n\t *  the first three characters from that setting.\n\t * @param {string[]} [config.dayLetters] Weekday column headers for a calendar. Array of 7 strings.\n\t *  If {@link #fullDayNames fullDayNames} or {@link #shortDayNames shortDayNames}\n\t *  are given and this is not, defaults to the first character from\n\t *  shortDayNames.\n\t * @param {string[]} [config.hour12Periods] AM and PM texts. Array of 2 strings, AM and PM.\n\t * @param {number} [config.weekStartsOn=0] What day the week starts on: 0 is Sunday, 1 is Monday, 6 is Saturday.\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter = function MwWidgetsDatetimeProlepticGregorianDateTimeFormatter( config ) {\n\t\tthis.constructor.static.setupDefaults();\n\n\t\tconfig = Object.assign( {\n\t\t\tweekStartsOn: 0,\n\t\t\thour12Periods: this.constructor.static.hour12Periods\n\t\t}, config );\n\n\t\tif ( config.fullMonthNames && !config.shortMonthNames ) {\n\t\t\tconfig.shortMonthNames = {};\n\t\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t\t$.each( config.fullMonthNames, ( k, v ) => {\n\t\t\t\tconfig.shortMonthNames[ k ] = v.slice( 0, 3 );\n\t\t\t} );\n\t\t}\n\t\tif ( config.shortDayNames && !config.dayLetters ) {\n\t\t\tconfig.dayLetters = [];\n\t\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t\t$.each( config.shortDayNames, ( k, v ) => {\n\t\t\t\tconfig.dayLetters[ k ] = v.slice( 0, 1 );\n\t\t\t} );\n\t\t}\n\t\tif ( config.fullDayNames && !config.dayLetters ) {\n\t\t\tconfig.dayLetters = [];\n\t\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t\t$.each( config.fullDayNames, ( k, v ) => {\n\t\t\t\tconfig.dayLetters[ k ] = v.slice( 0, 1 );\n\t\t\t} );\n\t\t}\n\t\tif ( config.fullDayNames && !config.shortDayNames ) {\n\t\t\tconfig.shortDayNames = {};\n\t\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t\t$.each( config.fullDayNames, ( k, v ) => {\n\t\t\t\tconfig.shortDayNames[ k ] = v.slice( 0, 3 );\n\t\t\t} );\n\t\t}\n\t\tconfig = Object.assign( {\n\t\t\tfullMonthNames: this.constructor.static.fullMonthNames,\n\t\t\tshortMonthNames: this.constructor.static.shortMonthNames,\n\t\t\tfullDayNames: this.constructor.static.fullDayNames,\n\t\t\tshortDayNames: this.constructor.static.shortDayNames,\n\t\t\tdayLetters: this.constructor.static.dayLetters\n\t\t}, config );\n\n\t\t// Parent constructor\n\t\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.super.call( this, config );\n\n\t\t// Properties\n\t\tthis.weekStartsOn = config.weekStartsOn % 7;\n\t\tthis.fullMonthNames = config.fullMonthNames;\n\t\tthis.shortMonthNames = config.shortMonthNames;\n\t\tthis.fullDayNames = config.fullDayNames;\n\t\tthis.shortDayNames = config.shortDayNames;\n\t\tthis.dayLetters = config.dayLetters;\n\t\tthis.hour12Periods = config.hour12Periods;\n\t};\n\n\t/* Setup */\n\n\tOO.inheritClass( mw.widgets.datetime.ProlepticGregorianDateTimeFormatter, mw.widgets.datetime.DateTimeFormatter );\n\n\t/* Static */\n\n\t/**\n\t * Default format specifications.\n\t *\n\t * See the `format` parameter in {@link mw.widgets.datetime.DateTimeFormatter}.\n\t *\n\t * @memberof mw.widgets.datetime.ProlepticGregorianDateTimeFormatter\n\t * @type {Object.<string,string>}\n\t * @name formats\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.formats = {\n\t\t'@time': '${hour|0}:${minute|0}:${second|0}',\n\t\t'@date': '$!{dow|short} ${day|#} ${month|short} ${year|#}',\n\t\t'@datetime': '$!{dow|short} ${day|#} ${month|short} ${year|#} ${hour|0}:${minute|0}:${second|0} $!{zone|short}',\n\t\t'@default': '$!{dow|short} ${day|#} ${month|short} ${year|#} ${hour|0}:${minute|0}:${second|0} $!{zone|short}'\n\t};\n\n\t/**\n\t * Default full month names.\n\t *\n\t * @static\n\t * @inheritable\n\t * @type {Object}\n\t * @name mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.fullMonthNames\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.fullMonthNames = null;\n\n\t/**\n\t * Default abbreviated month names.\n\t *\n\t * @static\n\t * @inheritable\n\t * @type {Object}\n\t * @name mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.shortMonthNames\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.shortMonthNames = null;\n\n\t/**\n\t * Default full day of week names.\n\t *\n\t * @static\n\t * @inheritable\n\t * @type {Object}\n\t * @name mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.fullDayNames\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.fullDayNames = null;\n\n\t/**\n\t * Default abbreviated day of week names.\n\t *\n\t * @static\n\t * @inheritable\n\t * @type {Object}\n\t * @name mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.shortDayNames\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.shortDayNames = null;\n\n\t/**\n\t * Default day letters.\n\t *\n\t * @static\n\t * @inheritable\n\t * @type {string[]}\n\t * @name mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.dayLetters\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.dayLetters = null;\n\n\t/**\n\t * Default AM/PM indicators.\n\t *\n\t * @static\n\t * @inheritable\n\t * @type {string[]}\n\t * @name mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.hour12Periods\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.hour12Periods = null;\n\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.setupDefaults = function () {\n\t\tmw.widgets.datetime.DateTimeFormatter.static.setupDefaults.call( this );\n\n\t\tif ( this.fullMonthNames && !this.shortMonthNames ) {\n\t\t\tthis.shortMonthNames = {};\n\t\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t\t$.each( this.fullMonthNames, ( k, v ) => {\n\t\t\t\tthis.shortMonthNames[ k ] = v.slice( 0, 3 );\n\t\t\t} );\n\t\t}\n\t\tif ( this.shortDayNames && !this.dayLetters ) {\n\t\t\tthis.dayLetters = [];\n\t\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t\t$.each( this.shortDayNames, ( k, v ) => {\n\t\t\t\tthis.dayLetters[ k ] = v.slice( 0, 1 );\n\t\t\t} );\n\t\t}\n\t\tif ( this.fullDayNames && !this.dayLetters ) {\n\t\t\tthis.dayLetters = [];\n\t\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t\t$.each( this.fullDayNames, ( k, v ) => {\n\t\t\t\tthis.dayLetters[ k ] = v.slice( 0, 1 );\n\t\t\t} );\n\t\t}\n\t\tif ( this.fullDayNames && !this.shortDayNames ) {\n\t\t\tthis.shortDayNames = {};\n\t\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t\t$.each( this.fullDayNames, ( k, v ) => {\n\t\t\t\tthis.shortDayNames[ k ] = v.slice( 0, 3 );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !this.fullMonthNames ) {\n\t\t\tthis.fullMonthNames = {\n\t\t\t\t1: mw.msg( 'january' ),\n\t\t\t\t2: mw.msg( 'february' ),\n\t\t\t\t3: mw.msg( 'march' ),\n\t\t\t\t4: mw.msg( 'april' ),\n\t\t\t\t5: mw.msg( 'may_long' ),\n\t\t\t\t6: mw.msg( 'june' ),\n\t\t\t\t7: mw.msg( 'july' ),\n\t\t\t\t8: mw.msg( 'august' ),\n\t\t\t\t9: mw.msg( 'september' ),\n\t\t\t\t10: mw.msg( 'october' ),\n\t\t\t\t11: mw.msg( 'november' ),\n\t\t\t\t12: mw.msg( 'december' )\n\t\t\t};\n\t\t}\n\t\tif ( !this.shortMonthNames ) {\n\t\t\tthis.shortMonthNames = {\n\t\t\t\t1: mw.msg( 'jan' ),\n\t\t\t\t2: mw.msg( 'feb' ),\n\t\t\t\t3: mw.msg( 'mar' ),\n\t\t\t\t4: mw.msg( 'apr' ),\n\t\t\t\t5: mw.msg( 'may' ),\n\t\t\t\t6: mw.msg( 'jun' ),\n\t\t\t\t7: mw.msg( 'jul' ),\n\t\t\t\t8: mw.msg( 'aug' ),\n\t\t\t\t9: mw.msg( 'sep' ),\n\t\t\t\t10: mw.msg( 'oct' ),\n\t\t\t\t11: mw.msg( 'nov' ),\n\t\t\t\t12: mw.msg( 'dec' )\n\t\t\t};\n\t\t}\n\n\t\tif ( !this.fullDayNames ) {\n\t\t\tthis.fullDayNames = {\n\t\t\t\t0: mw.msg( 'sunday' ),\n\t\t\t\t1: mw.msg( 'monday' ),\n\t\t\t\t2: mw.msg( 'tuesday' ),\n\t\t\t\t3: mw.msg( 'wednesday' ),\n\t\t\t\t4: mw.msg( 'thursday' ),\n\t\t\t\t5: mw.msg( 'friday' ),\n\t\t\t\t6: mw.msg( 'saturday' )\n\t\t\t};\n\t\t}\n\t\tif ( !this.shortDayNames ) {\n\t\t\tthis.shortDayNames = {\n\t\t\t\t0: mw.msg( 'sun' ),\n\t\t\t\t1: mw.msg( 'mon' ),\n\t\t\t\t2: mw.msg( 'tue' ),\n\t\t\t\t3: mw.msg( 'wed' ),\n\t\t\t\t4: mw.msg( 'thu' ),\n\t\t\t\t5: mw.msg( 'fri' ),\n\t\t\t\t6: mw.msg( 'sat' )\n\t\t\t};\n\t\t}\n\t\tif ( !this.dayLetters ) {\n\t\t\tconst dayLetters = [];\n\t\t\tconst shortDayNames = this.shortDayNames;\n\t\t\tfor ( const dayOfWeek in shortDayNames ) {\n\t\t\t\tconst shortDayName = shortDayNames[ dayOfWeek ];\n\t\t\t\tdayLetters[ dayOfWeek ] = shortDayName.slice( 0, 1 );\n\t\t\t}\n\t\t\tthis.dayLetters = dayLetters;\n\t\t}\n\n\t\tif ( !this.hour12Periods ) {\n\t\t\tthis.hour12Periods = [\n\t\t\t\tmw.msg( 'period-am' ),\n\t\t\t\tmw.msg( 'period-pm' )\n\t\t\t];\n\t\t}\n\t};\n\n\t/* Methods */\n\n\t/**\n\t * Turn a tag into a field specification object.\n\t *\n\t * Additional fields implemented here are:\n\t * - ${year|#}: Year as a number\n\t * - ${year|0}: Year as a number, zero-padded to 4 digits\n\t * - ${month|#}: Month as a number\n\t * - ${month|0}: Month as a number with leading 0\n\t * - ${month|short}: Month from 'shortMonthNames' configuration setting\n\t * - ${month|full}: Month from 'fullMonthNames' configuration setting\n\t * - ${day|#}: Day of the month as a number\n\t * - ${day|0}: Day of the month as a number with leading 0\n\t * - ${dow|short}: Day of the week from 'shortDayNames' configuration setting\n\t * - ${dow|full}: Day of the week from 'fullDayNames' configuration setting\n\t * - ${hour|#}: Hour as a number\n\t * - ${hour|0}: Hour as a number with leading 0\n\t * - ${hour|12}: Hour in a 12-hour clock as a number\n\t * - ${hour|012}: Hour in a 12-hour clock as a number, with leading 0\n\t * - ${hour|period}: Value from 'hour12Periods' configuration setting\n\t * - ${minute|#}: Minute as a number\n\t * - ${minute|0}: Minute as a number with leading 0\n\t * - ${second|#}: Second as a number\n\t * - ${second|0}: Second as a number with leading 0\n\t * - ${millisecond|#}: Millisecond as a number\n\t * - ${millisecond|0}: Millisecond as a number, zero-padded to 3 digits\n\t *\n\t * @protected\n\t * @param {string} tag\n\t * @param {string[]} params\n\t * @return {FieldSpecificationObject} Field specification object, or null if the tag+params are unrecognized.\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.prototype.getFieldForTag = function ( tag, params ) {\n\t\tlet spec = null;\n\n\t\tswitch ( tag + '|' + params[ 0 ] ) {\n\t\t\tcase 'year|#':\n\t\t\tcase 'year|0':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: 'year',\n\t\t\t\t\tcalendarComponent: true,\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tsize: 4,\n\t\t\t\t\tzeropad: params[ 0 ] === '0'\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'month|short':\n\t\t\tcase 'month|full':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: 'month',\n\t\t\t\t\tcalendarComponent: true,\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tvalues: params[ 0 ] === 'short' ? this.shortMonthNames : this.fullMonthNames\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'dow|short':\n\t\t\tcase 'dow|full':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: 'dow',\n\t\t\t\t\tcalendarComponent: true,\n\t\t\t\t\teditable: false,\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tvalues: params[ 0 ] === 'short' ? this.shortDayNames : this.fullDayNames\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'month|#':\n\t\t\tcase 'month|0':\n\t\t\tcase 'day|#':\n\t\t\tcase 'day|0':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: tag,\n\t\t\t\t\tcalendarComponent: true,\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tsize: 2,\n\t\t\t\t\tzeropad: params[ 0 ] === '0'\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'hour|#':\n\t\t\tcase 'hour|0':\n\t\t\tcase 'minute|#':\n\t\t\tcase 'minute|0':\n\t\t\tcase 'second|#':\n\t\t\tcase 'second|0':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: tag,\n\t\t\t\t\tcalendarComponent: false,\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tsize: 2,\n\t\t\t\t\tzeropad: params[ 0 ] === '0'\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'hour|12':\n\t\t\tcase 'hour|012':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: 'hour12',\n\t\t\t\t\tcalendarComponent: false,\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tsize: 2,\n\t\t\t\t\tzeropad: params[ 0 ] === '012'\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'hour|period':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: 'hour12period',\n\t\t\t\t\tcalendarComponent: false,\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\tvalues: this.hour12Periods\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'millisecond|#':\n\t\t\tcase 'millisecond|0':\n\t\t\t\tspec = {\n\t\t\t\t\tcomponent: 'millisecond',\n\t\t\t\t\tcalendarComponent: false,\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tsize: 3,\n\t\t\t\t\tzeropad: params[ 0 ] === '0'\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\treturn mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.super.prototype.getFieldForTag.call( this, tag, params );\n\t\t}\n\n\t\tif ( spec ) {\n\t\t\tif ( spec.editable === undefined ) {\n\t\t\t\tspec.editable = true;\n\t\t\t}\n\t\t\tspec.formatValue = this.formatSpecValue;\n\t\t\tspec.parseValue = this.parseSpecValue;\n\t\t\tif ( spec.values ) {\n\t\t\t\tspec.size = Math.max.apply(\n\t\t\t\t\t// eslint-disable-next-line no-jquery/no-map-util\n\t\t\t\t\tnull, $.map( spec.values, ( v ) => v.length )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn spec;\n\t};\n\n\t/**\n\t * Get components from a Date object.\n\t *\n\t * Components are:\n\t * - year {number}\n\t * - month {number} (1-12)\n\t * - day {number} (1-31)\n\t * - dow {number} (0-6, 0 is Sunday)\n\t * - hour {number} (0-23)\n\t * - hour12 {number} (1-12)\n\t * - hour12period {boolean}\n\t * - minute {number} (0-59)\n\t * - second {number} (0-59)\n\t * - millisecond {number} (0-999)\n\t * - zone {number}\n\t *\n\t * @param {Date|null} date\n\t * @return {Object} Components\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.prototype.getComponentsFromDate = function ( date ) {\n\t\tlet ret;\n\n\t\tif ( !( date instanceof Date ) ) {\n\t\t\tdate = this.defaultDate;\n\t\t}\n\n\t\tif ( this.local ) {\n\t\t\tret = {\n\t\t\t\tyear: date.getFullYear(),\n\t\t\t\tmonth: date.getMonth() + 1,\n\t\t\t\tday: date.getDate(),\n\t\t\t\tdow: date.getDay() % 7,\n\t\t\t\thour: date.getHours(),\n\t\t\t\tminute: date.getMinutes(),\n\t\t\t\tsecond: date.getSeconds(),\n\t\t\t\tmillisecond: date.getMilliseconds(),\n\t\t\t\tzone: date.getTimezoneOffset()\n\t\t\t};\n\t\t} else {\n\t\t\tret = {\n\t\t\t\tyear: date.getUTCFullYear(),\n\t\t\t\tmonth: date.getUTCMonth() + 1,\n\t\t\t\tday: date.getUTCDate(),\n\t\t\t\tdow: date.getUTCDay() % 7,\n\t\t\t\thour: date.getUTCHours(),\n\t\t\t\tminute: date.getUTCMinutes(),\n\t\t\t\tsecond: date.getUTCSeconds(),\n\t\t\t\tmillisecond: date.getUTCMilliseconds(),\n\t\t\t\tzone: 0\n\t\t\t};\n\t\t}\n\n\t\tret.hour12period = ret.hour >= 12 ? 1 : 0;\n\t\tret.hour12 = ret.hour % 12;\n\t\tif ( ret.hour12 === 0 ) {\n\t\t\tret.hour12 = 12;\n\t\t}\n\n\t\treturn ret;\n\t};\n\n\t/**\n\t * @inheritdoc\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.prototype.getDateFromComponents = function ( components ) {\n\t\tconst date = new Date();\n\n\t\tcomponents = Object.assign( {}, components );\n\t\tif ( components.hour === undefined && components.hour12 !== undefined && components.hour12period !== undefined ) {\n\t\t\tcomponents.hour = ( components.hour12 % 12 ) + ( components.hour12period ? 12 : 0 );\n\t\t}\n\t\tcomponents = Object.assign( {}, this.getComponentsFromDate( null ), components );\n\n\t\tif ( components.zone ) {\n\t\t\t// Can't just use the constructor because that's stupid about ancient years.\n\t\t\tdate.setFullYear( components.year, components.month - 1, components.day );\n\t\t\tdate.setHours( components.hour, components.minute, components.second, components.millisecond );\n\t\t} else {\n\t\t\t// Date.UTC() is stupid about ancient years too.\n\t\t\tdate.setUTCFullYear( components.year, components.month - 1, components.day );\n\t\t\tdate.setUTCHours( components.hour, components.minute, components.second, components.millisecond );\n\t\t}\n\n\t\treturn date;\n\t};\n\n\t/**\n\t * @inheritdoc\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.prototype.adjustComponent = function ( date, component, delta, mode ) {\n\t\tlet min, max;\n\n\t\tif ( !( date instanceof Date ) ) {\n\t\t\tdate = this.defaultDate;\n\t\t}\n\t\tconst components = this.getComponentsFromDate( date );\n\n\t\tswitch ( component ) {\n\t\t\tcase 'year':\n\t\t\t\tmin = 0;\n\t\t\t\tmax = 9999;\n\t\t\t\tbreak;\n\t\t\tcase 'month':\n\t\t\t\tmin = 1;\n\t\t\t\tmax = 12;\n\t\t\t\tbreak;\n\t\t\tcase 'day':\n\t\t\t\tmin = 1;\n\t\t\t\tmax = this.getDaysInMonth( components.month, components.year );\n\t\t\t\tbreak;\n\t\t\tcase 'hour':\n\t\t\t\tmin = 0;\n\t\t\t\tmax = 23;\n\t\t\t\tbreak;\n\t\t\tcase 'minute':\n\t\t\tcase 'second':\n\t\t\t\tmin = 0;\n\t\t\t\tmax = 59;\n\t\t\t\tbreak;\n\t\t\tcase 'millisecond':\n\t\t\t\tmin = 0;\n\t\t\t\tmax = 999;\n\t\t\t\tbreak;\n\t\t\tcase 'hour12period':\n\t\t\t\tcomponent = 'hour';\n\t\t\t\tmin = 0;\n\t\t\t\tmax = 23;\n\t\t\t\tdelta *= 12;\n\t\t\t\tbreak;\n\t\t\tcase 'hour12':\n\t\t\t\tcomponent = 'hour';\n\t\t\t\tmin = components.hour12period ? 12 : 0;\n\t\t\t\tmax = components.hour12period ? 23 : 11;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn new Date( date.getTime() );\n\t\t}\n\n\t\tcomponents[ component ] += delta;\n\t\tconst range = max - min + 1;\n\t\tswitch ( mode ) {\n\t\t\tcase 'overflow':\n\t\t\t\t// Date() will mostly handle it automatically. But months need\n\t\t\t\t// manual handling to prevent e.g. Jan 31 => Mar 3.\n\t\t\t\tif ( component === 'month' || component === 'year' ) {\n\t\t\t\t\twhile ( components.month < 1 ) {\n\t\t\t\t\t\tcomponents[ component ] += 12;\n\t\t\t\t\t\tcomponents.year--;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( components.month > 12 ) {\n\t\t\t\t\t\tcomponents[ component ] -= 12;\n\t\t\t\t\t\tcomponents.year++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'wrap':\n\t\t\t\twhile ( components[ component ] < min ) {\n\t\t\t\t\tcomponents[ component ] += range;\n\t\t\t\t}\n\t\t\t\twhile ( components[ component ] > max ) {\n\t\t\t\t\tcomponents[ component ] -= range;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'clip':\n\t\t\t\tif ( components[ component ] < min ) {\n\t\t\t\t\tcomponents[ component ] = min;\n\t\t\t\t}\n\t\t\t\tif ( components[ component ] < max ) {\n\t\t\t\t\tcomponents[ component ] = max;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t\tif ( component === 'month' || component === 'year' ) {\n\t\t\tcomponents.day = Math.min( components.day, this.getDaysInMonth( components.month, components.year ) );\n\t\t}\n\n\t\treturn this.getDateFromComponents( components );\n\t};\n\n\t/**\n\t * Get the number of days in a month.\n\t *\n\t * @protected\n\t * @param {number} month\n\t * @param {number} year\n\t * @return {number}\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.prototype.getDaysInMonth = function ( month, year ) {\n\t\tswitch ( month ) {\n\t\t\tcase 4:\n\t\t\tcase 6:\n\t\t\tcase 9:\n\t\t\tcase 11:\n\t\t\t\treturn 30;\n\t\t\tcase 2:\n\t\t\t\tif ( year % 4 ) {\n\t\t\t\t\treturn 28;\n\t\t\t\t} else if ( year % 100 ) {\n\t\t\t\t\treturn 29;\n\t\t\t\t}\n\t\t\t\treturn ( year % 400 ) ? 28 : 29;\n\t\t\tdefault:\n\t\t\t\treturn 31;\n\t\t}\n\t};\n\n\t/**\n\t * @inheritdoc\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.prototype.getCalendarHeadings = function () {\n\t\tconst a = this.dayLetters;\n\n\t\tif ( this.weekStartsOn ) {\n\t\t\treturn a.slice( this.weekStartsOn ).concat( a.slice( 0, this.weekStartsOn ) );\n\t\t} else {\n\t\t\treturn a.slice( 0 ); // clone\n\t\t}\n\t};\n\n\t/**\n\t * @inheritdoc\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.prototype.sameCalendarGrid = function ( date1, date2 ) {\n\t\tif ( this.local ) {\n\t\t\treturn date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth();\n\t\t} else {\n\t\t\treturn date1.getUTCFullYear() === date2.getUTCFullYear() && date1.getUTCMonth() === date2.getUTCMonth();\n\t\t}\n\t};\n\n\t/**\n\t * @inheritdoc\n\t */\n\tmw.widgets.datetime.ProlepticGregorianDateTimeFormatter.prototype.getCalendarData = function ( date ) {\n\t\tconst getDate = this.local ? 'getDate' : 'getUTCDate',\n\t\t\tsetDate = this.local ? 'setDate' : 'setUTCDate';\n\n\t\tconst ret = {\n\t\t\tdayComponent: 'day',\n\t\t\tmonthComponent: 'month'\n\t\t};\n\n\t\tif ( !( date instanceof Date ) ) {\n\t\t\tdate = this.defaultDate;\n\t\t}\n\n\t\tlet dt = new Date( date.getTime() );\n\t\tdt[ setDate ]( 1 );\n\t\tconst t = dt.getTime();\n\n\t\tlet d, e;\n\t\tif ( this.local ) {\n\t\t\tret.header = this.fullMonthNames[ dt.getMonth() + 1 ] + ' ' + dt.getFullYear();\n\t\t\td = dt.getDay() % 7;\n\t\t\te = this.getDaysInMonth( dt.getMonth() + 1, dt.getFullYear() );\n\t\t} else {\n\t\t\tret.header = this.fullMonthNames[ dt.getUTCMonth() + 1 ] + ' ' + dt.getUTCFullYear();\n\t\t\td = dt.getUTCDay() % 7;\n\t\t\te = this.getDaysInMonth( dt.getUTCMonth() + 1, dt.getUTCFullYear() );\n\t\t}\n\n\t\tif ( this.weekStartsOn ) {\n\t\t\td = ( d + 7 - this.weekStartsOn ) % 7;\n\t\t}\n\t\td = 1 - d;\n\n\t\tret.rows = [];\n\t\twhile ( d <= e ) {\n\t\t\tconst row = [];\n\t\t\tfor ( let i = 0; i < 7; i++, d++ ) {\n\t\t\t\tdt = new Date( t );\n\t\t\t\tdt[ setDate ]( d );\n\t\t\t\trow[ i ] = {\n\t\t\t\t\tdisplay: String( dt[ getDate ]() ),\n\t\t\t\t\tdate: dt,\n\t\t\t\t\textra: d < 1 ? 'prev' : d > e ? 'next' : null\n\t\t\t\t};\n\t\t\t}\n\t\t\tret.rows.push( row );\n\t\t}\n\n\t\treturn ret;\n\t};\n\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets.datetime/mediawiki.widgets.datetime.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets.visibleLengthLimit/mediawiki.widgets.visibleLengthLimit.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/.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/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.APIResultsProvider.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.APIResultsQueue.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResourceProvider.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResourceQueue.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResultWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaSearchProvider.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaSearchQueue.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaSearchWidget.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-sizzle","severity":2,"message":"Selector extensions are not allowed","line":453,"column":8,"nodeType":"CallExpression","endLine":453,"endColumn":38,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaUserUploadsProvider.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaUserUploadsQueue.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/Table/mw.widgets.RowWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/Table/mw.widgets.RowWidgetModel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/Table/mw.widgets.TableWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/Table/mw.widgets.TableWidgetModel.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/index.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.AbandonEditDialog.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.CalendarWidget.js","messages":[],"suppressedMessages":[{"ruleId":"no-case-declarations","severity":2,"message":"Unexpected lexical declaration in case block.","line":215,"column":5,"nodeType":"VariableDeclaration","messageId":"unexpected","endLine":215,"endColumn":104,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-case-declarations","severity":2,"message":"Unexpected lexical declaration in case block.","line":253,"column":5,"nodeType":"VariableDeclaration","messageId":"unexpected","endLine":253,"endColumn":66,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-case-declarations","severity":2,"message":"Unexpected lexical declaration in case block.","line":286,"column":5,"nodeType":"VariableDeclaration","messageId":"unexpected","endLine":286,"endColumn":21,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.CategoryMultiselectWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.CategoryTagItemWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.CheckMatrixWidget.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":46,"column":3,"nodeType":"CallExpression","endLine":48,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":55,"column":3,"nodeType":"CallExpression","endLine":87,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":72,"column":4,"nodeType":"CallExpression","endLine":84,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":149,"column":4,"nodeType":"CallExpression","endLine":151,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.ComplexNamespaceInputWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.CopyTextLayout.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.DateInputWidget.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":598,"column":4,"nodeType":"CallExpression","endLine":598,"endColumn":41,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.ExpiryInputWidget.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":146,"column":8,"nodeType":"CallExpression","endLine":146,"endColumn":60,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":149,"column":15,"nodeType":"CallExpression","endLine":149,"endColumn":77,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.MenuTagMultiselectWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.NamespaceInputWidget.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'DropdownOptions' is undefined.","line":50,"column":1,"nodeType":"Block","endLine":50,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-jquery/no-map-util","severity":2,"message":"Prefer Array#map to $.map","line":66,"column":19,"nodeType":"CallExpression","endLine":79,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/*!\n * MediaWiki Widgets - NamespaceInputWidget class.\n *\n * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt\n * @license The MIT License (MIT); see LICENSE.txt\n */\n( function () {\n\n\t/**\n\t * @classdesc Displays a dropdown box with the choice of available namespaces.\n\t *\n\t * @class\n\t * @extends OO.ui.DropdownInputWidget\n\t *\n\t * @constructor\n\t * @description Create an instance of `mw.widgets.NamespaceInputWidget`.\n\t * @param {Object} [config] Configuration options\n\t * @param {string|null} [config.includeAllValue] Value for \"all namespaces\" option, if any\n\t * @param {boolean} [config.userLang=false] Display namespaces in user language\n\t * @param {number[]} [config.exclude] List of namespace numbers to exclude from the selector\n\t */\n\tmw.widgets.NamespaceInputWidget = function MwWidgetsNamespaceInputWidget( config ) {\n\t\t// Configuration initialization\n\t\tconfig = Object.assign( {}, config, { options: this.constructor.static.getNamespaceDropdownOptions( config ) } );\n\n\t\t// Parent constructor\n\t\tmw.widgets.NamespaceInputWidget.super.call( this, config );\n\n\t\t// Initialization\n\t\tthis.$element.addClass( 'mw-widget-namespaceInputWidget' );\n\t};\n\n\t/* Setup */\n\n\tOO.inheritClass( mw.widgets.NamespaceInputWidget, OO.ui.DropdownInputWidget );\n\n\t/* Static methods */\n\n\t/**\n\t * @typedef {Object} mw.widgets.NamespaceInputWidget~DropdownOptions\n\t * @property {any} data\n\t * @property {string} label\n\t */\n\n\t/**\n\t * Get a list of namespace options, sorted by ID.\n\t *\n\t * @method getNamespaceDropdownOptions\n\t * @param {Object} [config] Configuration options\n\t * @return {DropdownOptions[]} Dropdown options\n\t * @memberof mw.widgets.NamespaceInputWidget\n\t */\n\tmw.widgets.NamespaceInputWidget.static.getNamespaceDropdownOptions = function ( config ) {\n\t\tconst exclude = config.exclude || [],\n\t\t\tinclude = config.include || null,\n\t\t\tmainNamespace = mw.config.get( 'wgNamespaceIds' )[ '' ],\n\t\t\twidgetData = require( './data.json' );\n\n\t\t// Use namespace names in the user language also when it's a variant of the content language.\n\t\t// This is to keep the behaviour more consistent with the no-js version.\n\t\tconst namespaces = config.userLang || widgetData.isContLangVariant ?\n\t\t\twidgetData.formattedNamespaces :\n\t\t\tmw.config.get( 'wgFormattedNamespaces' );\n\n\t\t// eslint-disable-next-line no-jquery/no-map-util\n\t\tconst options = $.map( namespaces, ( name, ns ) => {\n\t\t\tif (\n\t\t\t\tns < mainNamespace ||\n\t\t\t\texclude.includes( Number( ns ) ) ||\n\t\t\t\t( Array.isArray( include ) && !include.includes( Number( ns ) ) )\n\t\t\t) {\n\t\t\t\treturn null; // skip\n\t\t\t}\n\t\t\tns = String( ns );\n\t\t\tif ( ns === String( mainNamespace ) ) {\n\t\t\t\tname = mw.msg( 'blanknamespace' );\n\t\t\t}\n\t\t\treturn { data: ns, label: name };\n\t\t} ).sort(\n\t\t\t// wgFormattedNamespaces is an object, and so technically doesn't have to be ordered\n\t\t\t( a, b ) => a.data - b.data\n\t\t);\n\n\t\tif ( config.includeAllValue !== null && config.includeAllValue !== undefined ) {\n\t\t\toptions.unshift( {\n\t\t\t\tdata: config.includeAllValue,\n\t\t\t\tlabel: mw.msg( 'namespacesall' )\n\t\t\t} );\n\t\t}\n\n\t\treturn options;\n\t};\n\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.NamespacesMenuOptionWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.NamespacesMultiselectWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.OrderedMultiselectWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":196,"column":3,"nodeType":"CallExpression","endLine":213,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.SelectWithInputWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.SizeFilterWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.TagMultiselectWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.TitleSearchWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.TitlesMultiselectWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.ToggleSwitchWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.UserInputWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/mediawiki.widgets/mw.widgets.UsersMultiselectWidget.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/moment/moment-dmy.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/moment/moment-locale-overrides.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/moment/moment-module.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/oojs-global.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/ooui-local.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/startup/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/startup/clientprefs.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/startup/mediawiki.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/startup/mediawiki.loader.js","messages":[{"ruleId":"jsdoc/valid-types","severity":1,"message":"Syntax error in namepath: ~'resourceloader.exception'","line":61,"column":1,"nodeType":"Block","endLine":61,"endColumn":1}],"suppressedMessages":[{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":43,"column":14,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":43,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":43,"column":30,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":43,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":43,"column":46,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":43,"endColumn":55,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":43,"column":62,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":43,"endColumn":71,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '<<'.","line":43,"column":78,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":43,"endColumn":88,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '^='.","line":44,"column":4,"nodeType":"AssignmentExpression","messageId":"unexpected","endLine":44,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-bitwise","severity":2,"message":"Unexpected use of '>>>'.","line":47,"column":12,"nodeType":"BinaryExpression","messageId":"unexpected","endLine":47,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-new-func","severity":2,"message":"The Function constructor is eval.","line":464,"column":17,"nodeType":"NewExpression","messageId":"noFunctionConstructor","endLine":464,"endColumn":56,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-eval","severity":2,"message":"eval can be harmful.","line":782,"column":8,"nodeType":"Identifier","messageId":"unexpected","endLine":782,"endColumn":12,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-mixed-spaces-and-tabs","severity":2,"message":"Mixed spaces and tabs.","line":1779,"column":5,"nodeType":"Program","messageId":"mixedSpacesAndTabs","endLine":1779,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/*!\n * Defines mw.loader, the infrastructure for loading ResourceLoader\n * modules.\n *\n * This file is appended directly to the code in startup/mediawiki.js\n */\n/* global $VARS, $CODE, mw */\n\n( function () {\n\t'use strict';\n\n\tvar store,\n\t\thasOwn = Object.hasOwnProperty;\n\n\t/**\n\t * Client for ResourceLoader server end point.\n\t *\n\t * This client is in charge of maintaining the module registry and state\n\t * machine, initiating network (batch) requests for loading modules, as\n\t * well as dependency resolution and execution of source code.\n\t *\n\t * @see <https://www.mediawiki.org/wiki/ResourceLoader/Features>\n\t * @namespace mw.loader\n\t */\n\n\t/**\n\t * FNV132 hash function\n\t *\n\t * This function implements the 32-bit version of FNV-1.\n\t * It is equivalent to hash( 'fnv132', ... ) in PHP, except\n\t * its output is base 36 rather than hex.\n\t * See <https://en.wikipedia.org/wiki/Fowler–Noll–Vo_hash_function>\n\t *\n\t * @private\n\t * @param {string} str String to hash\n\t * @return {string} hash as a five-character base 36 string\n\t */\n\tfunction fnv132( str ) {\n\t\tvar hash = 0x811C9DC5;\n\n\t\t/* eslint-disable no-bitwise */\n\t\tfor ( var i = 0; i < str.length; i++ ) {\n\t\t\thash += ( hash << 1 ) + ( hash << 4 ) + ( hash << 7 ) + ( hash << 8 ) + ( hash << 24 );\n\t\t\thash ^= str.charCodeAt( i );\n\t\t}\n\n\t\thash = ( hash >>> 0 ).toString( 36 ).slice( 0, 5 );\n\t\t/* eslint-enable no-bitwise */\n\n\t\twhile ( hash.length < 5 ) {\n\t\t\thash = '0' + hash;\n\t\t}\n\t\treturn hash;\n\t}\n\n\t/**\n\t * Fired via mw.track on various resource loading errors.\n\t *\n\t * eslint-disable jsdoc/valid-types\n\t *\n\t * @event ~'resourceloader.exception'\n\t * @ignore\n\t * @param {Error|Mixed} e The error that was thrown. Almost always an Error\n\t *   object, but in theory module code could manually throw something else, and that\n\t *   might also end up here.\n\t * @param {string} [module] Name of the module which caused the error. Omitted if the\n\t *   error is not module-related or the module cannot be easily identified due to\n\t *   batched handling.\n\t * @param {string} source Source of the error. Possible values:\n\t *\n\t *   - load-callback: exception thrown by user callback\n\t *   - module-execute: exception thrown by module code\n\t *   - resolve: failed to sort dependencies for a module in mw.loader.load\n\t *   - store-eval: could not evaluate module code cached in localStorage\n\t *   - store-localstorage-json: JSON conversion error in mw.loader.store\n\t *   - store-localstorage-update: localStorage conversion error in mw.loader.store.\n\t */\n\n\t/**\n\t * Mapping of registered modules.\n\t *\n\t * See #implement and #execute for exact details on support for script, style and messages.\n\t *\n\t * @example // Format:\n\t * {\n\t *     'moduleName': {\n\t *         // From mw.loader.register()\n\t *         'version': '#####' (five-character hash)\n\t *         'dependencies': ['required.foo', 'bar.also', ...]\n\t *         'group': string, integer, (or) null\n\t *         'source': 'local', (or) 'anotherwiki'\n\t *         'skip': 'return !!window.Example;', (or) null, (or) boolean result of skip\n\t *         'module': export Object\n\t *\n\t *         // Set by execute() or mw.loader.state()\n\t *         // See mw.loader.getState() for documentation of the state machine\n\t *         'state': 'registered', 'loading', 'loaded', 'executing', 'ready', 'error', or 'missing'\n\t *\n\t *         // Optionally added at run-time by mw.loader.impl()\n\t *         'script': closure, array of urls, or string\n\t *         'style': { ... } (see #execute)\n\t *         'messages': { 'key': 'value', ... }\n\t *     }\n\t * }\n\t *\n\t * @property {Object}\n\t * @private\n\t */\n\tvar registry = Object.create( null ),\n\t\t// Mapping of sources, keyed by source-id, values are strings.\n\t\t//\n\t\t// Format:\n\t\t//\n\t\t//     {\n\t\t//         'sourceId': 'http://example.org/w/load.php'\n\t\t//     }\n\t\t//\n\t\tsources = Object.create( null ),\n\n\t\t// For queueModuleScript()\n\t\thandlingPendingRequests = false,\n\t\tpendingRequests = [],\n\n\t\t// List of modules to be loaded\n\t\tqueue = [],\n\n\t\t/**\n\t\t * List of callback jobs waiting for modules to be ready.\n\t\t *\n\t\t * Jobs are created by #enqueue() and run by #doPropagation().\n\t\t * Typically when a job is created for a module, the job's dependencies contain\n\t\t * both the required module and all its recursive dependencies.\n\t\t *\n\t\t * @example // Format:\n\t\t * {\n\t\t *     'dependencies': [ module names ],\n\t\t *     'ready': Function callback\n\t\t *     'error': Function callback\n\t\t * }\n\t\t *\n\t\t * @property {Object[]} jobs\n\t\t * @private\n\t\t */\n\t\tjobs = [],\n\n\t\t// For #setAndPropagate() and #doPropagation()\n\t\twillPropagate = false,\n\t\terrorModules = [],\n\n\t\t/**\n\t\t * @private\n\t\t * @property {Array} baseModules\n\t\t */\n\t\tbaseModules = $VARS.baseModules,\n\n\t\t/**\n\t\t * For #addEmbeddedCSS() and #addLink()\n\t\t *\n\t\t * @private\n\t\t * @property {HTMLElement|null} marker\n\t\t */\n\t\tmarker = document.querySelector( 'meta[name=\"ResourceLoaderDynamicStyles\"]' ),\n\n\t\t// For #addEmbeddedCSS()\n\t\tlastCssBuffer;\n\n\t/**\n\t * Append an HTML element to `document.head` or before a specified node.\n\t *\n\t * @private\n\t * @param {HTMLElement} el\n\t * @param {Node|null} [nextNode]\n\t */\n\tfunction addToHead( el, nextNode ) {\n\t\tif ( nextNode && nextNode.parentNode ) {\n\t\t\tnextNode.parentNode.insertBefore( el, nextNode );\n\t\t} else {\n\t\t\tdocument.head.appendChild( el );\n\t\t}\n\t}\n\n\t/**\n\t * Create a new style element and add it to the DOM.\n\t * Stable for use in gadgets.\n\t *\n\t * @method mw.loader.addStyleTag\n\t * @param {string} text CSS text\n\t * @param {Node|null} [nextNode] The element where the style tag\n\t *  should be inserted before\n\t * @return {HTMLStyleElement} Reference to the created style element\n\t */\n\tfunction newStyleTag( text, nextNode ) {\n\t\tvar el = document.createElement( 'style' );\n\t\tel.appendChild( document.createTextNode( text ) );\n\t\taddToHead( el, nextNode );\n\t\treturn el;\n\t}\n\n\t/**\n\t * @private\n\t * @param {Object} cssBuffer\n\t */\n\tfunction flushCssBuffer( cssBuffer ) {\n\t\t// Make sure the next call to addEmbeddedCSS() starts a new buffer.\n\t\t// This must be done before we run the callbacks, as those may end up\n\t\t// queueing new chunks which would be lost otherwise (T105973).\n\t\t//\n\t\t// There can be more than one buffer in-flight (given \"@import\", and\n\t\t// generally due to race conditions). Only tell addEmbeddedCSS() to\n\t\t// start a new buffer if we're currently flushing the last one that it\n\t\t// started. If we're flushing an older buffer, keep the last one open.\n\t\tif ( cssBuffer === lastCssBuffer ) {\n\t\t\tlastCssBuffer = null;\n\t\t}\n\t\tnewStyleTag( cssBuffer.cssText, marker );\n\t\tfor ( var i = 0; i < cssBuffer.callbacks.length; i++ ) {\n\t\t\tcssBuffer.callbacks[ i ]();\n\t\t}\n\t}\n\n\t/**\n\t * Add a bit of CSS text to the current browser page.\n\t *\n\t * The creation and insertion of the `<style>` element is debounced for two reasons:\n\t *\n\t * - Performing the insertion before the next paint round via requestAnimationFrame\n\t *   avoids forced or wasted style recomputations, which are expensive in browsers.\n\t * - Reduce how often new stylesheets are inserted by letting additional calls to this\n\t *   function accumulate into a buffer for at least one JavaScript tick. Modules are\n\t *   received from the server in batches, which means there is likely going to be many\n\t *   calls to this function in a row within the same tick / the same call stack.\n\t *   See also T47810.\n\t *\n\t * @private\n\t * @param {string} cssText CSS text to be added in a `<style>` tag.\n\t * @param {Function} callback Called after the insertion has occurred.\n\t */\n\tfunction addEmbeddedCSS( cssText, callback ) {\n\t\t// Start a new buffer if one of the following is true:\n\t\t// - We've never started a buffer before, this will be our first.\n\t\t// - The last buffer we created was flushed meanwhile, so start a new one.\n\t\t// - The next CSS chunk syntactically needs to be at the start of a stylesheet (T37562).\n\t\tif ( !lastCssBuffer || cssText.startsWith( '@import' ) ) {\n\t\t\tlastCssBuffer = {\n\t\t\t\tcssText: '',\n\t\t\t\tcallbacks: []\n\t\t\t};\n\t\t\trequestAnimationFrame( flushCssBuffer.bind( null, lastCssBuffer ) );\n\t\t}\n\n\t\t// Linebreak for somewhat distinguishable sections\n\t\tlastCssBuffer.cssText += '\\n' + cssText;\n\t\tlastCssBuffer.callbacks.push( callback );\n\t}\n\n\t/**\n\t * See also `ResourceLoader.php#makeVersionQuery` on the server.\n\t *\n\t * @private\n\t * @param {string[]} modules List of module names\n\t * @return {string} Hash of concatenated version hashes.\n\t */\n\tfunction getCombinedVersion( modules ) {\n\t\tvar hashes = modules.reduce( function ( result, module ) {\n\t\t\treturn result + registry[ module ].version;\n\t\t}, '' );\n\t\treturn fnv132( hashes );\n\t}\n\n\t/**\n\t * Determine whether all dependencies are in state 'ready', which means we may\n\t * execute the module or job now.\n\t *\n\t * @private\n\t * @param {string[]} modules Names of modules to be checked\n\t * @return {boolean} True if all modules are in state 'ready', false otherwise\n\t */\n\tfunction allReady( modules ) {\n\t\tfor ( var i = 0; i < modules.length; i++ ) {\n\t\t\tif ( mw.loader.getState( modules[ i ] ) !== 'ready' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\t/**\n\t * Determine whether all direct and base dependencies are in state 'ready'\n\t *\n\t * @private\n\t * @param {string} module Name of the module to be checked\n\t * @return {boolean} True if all direct/base dependencies are in state 'ready'; false otherwise\n\t */\n\tfunction allWithImplicitReady( module ) {\n\t\treturn allReady( registry[ module ].dependencies ) &&\n\t\t\t( baseModules.includes( module ) || allReady( baseModules ) );\n\t}\n\n\t/**\n\t * Determine whether all dependencies are in state 'ready', which means we may\n\t * execute the module or job now.\n\t *\n\t * @private\n\t * @param {string[]} modules Names of modules to be checked\n\t * @return {boolean|string} False if no modules are in state 'error' or 'missing';\n\t *  failed module otherwise\n\t */\n\tfunction anyFailed( modules ) {\n\t\tfor ( var i = 0; i < modules.length; i++ ) {\n\t\t\tvar state = mw.loader.getState( modules[ i ] );\n\t\t\tif ( state === 'error' || state === 'missing' ) {\n\t\t\t\treturn modules[ i ];\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Handle propagation of module state changes and reactions to them.\n\t *\n\t * - When a module reaches a failure state, this should be propagated to\n\t *   modules that depend on the failed module.\n\t * - When a module reaches a final state, pending job callbacks for the\n\t *   module from mw.loader.using() should be called.\n\t * - When a module reaches the 'ready' state from #execute(), consider\n\t *   executing dependent modules now having their dependencies satisfied.\n\t * - When a module reaches the 'loaded' state from mw.loader.impl,\n\t *   consider executing it, if it has no unsatisfied dependencies.\n\t *\n\t * @private\n\t */\n\tfunction doPropagation() {\n\t\tvar didPropagate = true;\n\t\tvar module;\n\n\t\t// Keep going until the last iteration performed no actions.\n\t\twhile ( didPropagate ) {\n\t\t\tdidPropagate = false;\n\n\t\t\t// Stage 1: Propagate failures\n\t\t\twhile ( errorModules.length ) {\n\t\t\t\tvar errorModule = errorModules.shift(),\n\t\t\t\t\tbaseModuleError = baseModules.includes( errorModule );\n\t\t\t\tfor ( module in registry ) {\n\t\t\t\t\tif ( registry[ module ].state !== 'error' && registry[ module ].state !== 'missing' ) {\n\t\t\t\t\t\tif ( baseModuleError && !baseModules.includes( module ) ) {\n\t\t\t\t\t\t\t// Propate error from base module to all regular (non-base) modules\n\t\t\t\t\t\t\tregistry[ module ].state = 'error';\n\t\t\t\t\t\t\tdidPropagate = true;\n\t\t\t\t\t\t} else if ( registry[ module ].dependencies.includes( errorModule ) ) {\n\t\t\t\t\t\t\t// Propagate error from dependency to depending module\n\t\t\t\t\t\t\tregistry[ module ].state = 'error';\n\t\t\t\t\t\t\t// .. and propagate it further\n\t\t\t\t\t\t\terrorModules.push( module );\n\t\t\t\t\t\t\tdidPropagate = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Stage 2: Execute 'loaded' modules with no unsatisfied dependencies\n\t\t\tfor ( module in registry ) {\n\t\t\t\tif ( registry[ module ].state === 'loaded' && allWithImplicitReady( module ) ) {\n\t\t\t\t\t// Recursively execute all dependent modules that were already loaded\n\t\t\t\t\t// (waiting for execution) and no longer have unsatisfied dependencies.\n\t\t\t\t\t// Base modules may have dependencies amongst eachother to ensure correct\n\t\t\t\t\t// execution order. Regular modules wait for all base modules.\n\t\t\t\t\texecute( module );\n\t\t\t\t\tdidPropagate = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Stage 3: Invoke job callbacks that are no longer blocked\n\t\t\tfor ( var i = 0; i < jobs.length; i++ ) {\n\t\t\t\tvar job = jobs[ i ];\n\t\t\t\tvar failed = anyFailed( job.dependencies );\n\t\t\t\tif ( failed !== false || allReady( job.dependencies ) ) {\n\t\t\t\t\tjobs.splice( i, 1 );\n\t\t\t\t\ti -= 1;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ( failed !== false && job.error ) {\n\t\t\t\t\t\t\tjob.error( new Error( 'Failed dependency: ' + failed ), job.dependencies );\n\t\t\t\t\t\t} else if ( failed === false && job.ready ) {\n\t\t\t\t\t\t\tjob.ready();\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// A user-defined callback raised an exception.\n\t\t\t\t\t\t// Swallow it to protect our state machine!\n\t\t\t\t\t\tmw.trackError( {\n\t\t\t\t\t\t\texception: e,\n\t\t\t\t\t\t\tsource: 'load-callback'\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\tdidPropagate = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twillPropagate = false;\n\t}\n\n\t/**\n\t * Update a module's state in the registry and make sure any necessary\n\t * propagation will occur, by adding a (debounced) call to doPropagation().\n\t * See #doPropagation for more about propagation.\n\t * See #registry for more about how states are used.\n\t *\n\t * @private\n\t * @param {string} module\n\t * @param {string} state\n\t */\n\tfunction setAndPropagate( module, state ) {\n\t\tregistry[ module ].state = state;\n\t\tif ( state === 'ready' ) {\n\t\t\t// Queue to later be synced to the local module store.\n\t\t\tstore.add( module );\n\t\t} else if ( state === 'error' || state === 'missing' ) {\n\t\t\terrorModules.push( module );\n\t\t} else if ( state !== 'loaded' ) {\n\t\t\t// We only have something to do in doPropagation for the\n\t\t\t// 'loaded', 'ready', 'error', and 'missing' states.\n\t\t\t// Avoid scheduling and propagation cost for frequent and short-lived\n\t\t\t// transition states, such as 'loading' and 'executing'.\n\t\t\treturn;\n\t\t}\n\t\tif ( willPropagate ) {\n\t\t\t// Already scheduled, or, we're already in a doPropagation stack.\n\t\t\treturn;\n\t\t}\n\t\twillPropagate = true;\n\t\t// Yield for two reasons:\n\t\t// * Allow successive calls to mw.loader.impl() from the same\n\t\t//   load.php response, or from the same asyncEval() to be in the\n\t\t//   propagation batch.\n\t\t// * Allow the browser to breathe between the reception of\n\t\t//   module source code and the execution of it.\n\t\t//\n\t\t// Use a high priority because the user may be waiting for interactions\n\t\t// to start being possible. But, first provide a moment (up to 'timeout')\n\t\t// for native input event handling (e.g. scrolling/typing/clicking).\n\t\tmw.requestIdleCallback( doPropagation, { timeout: 1 } );\n\t}\n\n\t/**\n\t * Resolve dependencies and detect circular references.\n\t *\n\t * @private\n\t * @param {string} module Name of the top-level module whose dependencies shall be\n\t *  resolved and sorted.\n\t * @param {Array} resolved Returns a topological sort of the given module and its\n\t *  dependencies, such that later modules depend on earlier modules. The array\n\t *  contains the module names. If the array contains already some module names,\n\t *  this function appends its result to the pre-existing array.\n\t * @param {Set} [unresolved] Used to detect loops in the dependency graph.\n\t * @throws {Error} If an unknown module or a circular dependency is encountered\n\t */\n\tfunction sortDependencies( module, resolved, unresolved ) {\n\t\tif ( !( module in registry ) ) {\n\t\t\tthrow new Error( 'Unknown module: ' + module );\n\t\t}\n\n\t\tif ( typeof registry[ module ].skip === 'string' ) {\n\t\t\t// eslint-disable-next-line no-new-func\n\t\t\tvar skip = ( new Function( registry[ module ].skip )() );\n\t\t\tregistry[ module ].skip = !!skip;\n\t\t\tif ( skip ) {\n\t\t\t\tregistry[ module ].dependencies = [];\n\t\t\t\tsetAndPropagate( module, 'ready' );\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Create unresolved if not passed in\n\t\tif ( !unresolved ) {\n\t\t\tunresolved = new Set();\n\t\t}\n\n\t\t// Track down dependencies\n\t\tvar deps = registry[ module ].dependencies;\n\t\tunresolved.add( module );\n\t\tfor ( var i = 0; i < deps.length; i++ ) {\n\t\t\tif ( !resolved.includes( deps[ i ] ) ) {\n\t\t\t\tif ( unresolved.has( deps[ i ] ) ) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'Circular reference detected: ' + module + ' -> ' + deps[ i ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tsortDependencies( deps[ i ], resolved, unresolved );\n\t\t\t}\n\t\t}\n\n\t\tresolved.push( module );\n\t}\n\n\t/**\n\t * Get names of module that a module depends on, in their proper dependency order.\n\t *\n\t * @private\n\t * @param {string[]} modules Array of string module names\n\t * @return {Array} List of dependencies, including 'module'.\n\t * @throws {Error} If an unregistered module or a dependency loop is encountered\n\t */\n\tfunction resolve( modules ) {\n\t\t// Always load base modules\n\t\tvar resolved = baseModules.slice();\n\t\tfor ( var i = 0; i < modules.length; i++ ) {\n\t\t\tsortDependencies( modules[ i ], resolved );\n\t\t}\n\t\treturn resolved;\n\t}\n\n\t/**\n\t * Like #resolve(), except it will silently ignore modules that\n\t * are missing or have missing dependencies.\n\t *\n\t * @private\n\t * @param {string[]} modules Array of string module names\n\t * @return {Array} List of dependencies.\n\t */\n\tfunction resolveStubbornly( modules ) {\n\t\t// Always load base modules\n\t\tvar resolved = baseModules.slice();\n\t\tfor ( var i = 0; i < modules.length; i++ ) {\n\t\t\tvar saved = resolved.slice();\n\t\t\ttry {\n\t\t\t\tsortDependencies( modules[ i ], resolved );\n\t\t\t} catch ( err ) {\n\t\t\t\tresolved = saved;\n\t\t\t\t// This module is not currently known, or has invalid dependencies.\n\t\t\t\t//\n\t\t\t\t// Most likely due to a cached reference after the module was\n\t\t\t\t// removed, otherwise made redundant, or omitted from the registry\n\t\t\t\t// by the ResourceLoader \"target\" system.\n\t\t\t\t//\n\t\t\t\t// These errors can be common, e.g. queuing an unavailable module\n\t\t\t\t// unconditionally from the server-side is OK and should fail gracefully.\n\t\t\t\tmw.log.warn( 'Skipped unavailable module ' + modules[ i ] );\n\n\t\t\t\t// Do not track this error as an exception when the module:\n\t\t\t\t// - Is valid, but gracefully filtered out by target system.\n\t\t\t\t// - Was recently valid, but is still referenced in stale cache.\n\t\t\t\t//\n\t\t\t\t// Basically the only reason to track this as exception is when the error\n\t\t\t\t// was circular or invalid dependencies. What the above scenarios have in\n\t\t\t\t// common is that they don't register the module client-side.\n\t\t\t\tif ( modules[ i ] in registry ) {\n\t\t\t\t\tmw.trackError( {\n\t\t\t\t\t\texception: err,\n\t\t\t\t\t\tsource: 'resolve'\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn resolved;\n\t}\n\n\t/**\n\t * Resolve a relative file path.\n\t *\n\t * For example, resolveRelativePath( '../foo.js', 'resources/src/bar/bar.js' )\n\t * returns 'resources/src/foo.js'.\n\t *\n\t * @private\n\t * @param {string} relativePath Relative file path, starting with ./ or ../\n\t * @param {string} basePath Path of the file (not directory) relativePath is relative to\n\t * @return {string|null} Resolved path, or null if relativePath does not start with ./ or ../\n\t */\n\tfunction resolveRelativePath( relativePath, basePath ) {\n\n\t\tvar relParts = relativePath.match( /^((?:\\.\\.?\\/)+)(.*)$/ );\n\t\tif ( !relParts ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar baseDirParts = basePath.split( '/' );\n\t\t// basePath looks like 'foo/bar/baz.js', so baseDirParts looks like [ 'foo', 'bar, 'baz.js' ]\n\t\t// Remove the file component at the end, so that we are left with only the directory path\n\t\tbaseDirParts.pop();\n\n\t\tvar prefixes = relParts[ 1 ].split( '/' );\n\t\t// relParts[ 1 ] looks like '../../', so prefixes looks like [ '..', '..', '' ]\n\t\t// Remove the empty element at the end\n\t\tprefixes.pop();\n\n\t\t// For every ../ in the path prefix, remove one directory level from baseDirParts\n\t\tvar prefix;\n\t\tvar reachedRoot = false;\n\t\twhile ( ( prefix = prefixes.pop() ) !== undefined ) {\n\t\t\tif ( prefix === '..' ) {\n\t\t\t\t// Once we reach the package's base dir, preserve all remaining \"..\".\n\t\t\t\treachedRoot = !baseDirParts.length || reachedRoot;\n\t\t\t\tif ( !reachedRoot ) {\n\t\t\t\t\tbaseDirParts.pop();\n\t\t\t\t} else {\n\t\t\t\t\tbaseDirParts.push( prefix );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If there's anything left of the base path, prepend it to the file path\n\t\treturn ( baseDirParts.length ? baseDirParts.join( '/' ) + '/' : '' ) + relParts[ 2 ];\n\t}\n\n\t/**\n\t * Make a require() function scoped to a package file\n\t *\n\t * @private\n\t * @param {Object} moduleObj Module object from the registry\n\t * @param {string} basePath Path of the file this is scoped to. Used for relative paths.\n\t * @return {Function}\n\t */\n\tfunction makeRequireFunction( moduleObj, basePath ) {\n\t\treturn function require( moduleName ) {\n\t\t\tvar fileName = resolveRelativePath( moduleName, basePath );\n\t\t\tif ( fileName === null ) {\n\t\t\t\t// Not a relative path, so it's either a module name or,\n\t\t\t\t// (if in test mode) a private file imported from another module.\n\t\t\t\treturn mw.loader.require( moduleName );\n\t\t\t}\n\n\t\t\tif ( hasOwn.call( moduleObj.packageExports, fileName ) ) {\n\t\t\t\t// File has already been executed, return the cached result\n\t\t\t\treturn moduleObj.packageExports[ fileName ];\n\t\t\t}\n\n\t\t\tvar scriptFiles = moduleObj.script.files;\n\t\t\tif ( !hasOwn.call( scriptFiles, fileName ) ) {\n\t\t\t\tthrow new Error( 'Cannot require undefined file ' + fileName );\n\t\t\t}\n\n\t\t\tvar result,\n\t\t\t\tfileContent = scriptFiles[ fileName ];\n\t\t\tif ( typeof fileContent === 'function' ) {\n\t\t\t\tvar moduleParam = { exports: {} };\n\t\t\t\tfileContent( makeRequireFunction( moduleObj, fileName ), moduleParam, moduleParam.exports );\n\t\t\t\tresult = moduleParam.exports;\n\t\t\t} else {\n\t\t\t\t// fileContent is raw data (such as a JSON object), just pass it through\n\t\t\t\tresult = fileContent;\n\t\t\t}\n\t\t\tmoduleObj.packageExports[ fileName ] = result;\n\t\t\treturn result;\n\t\t};\n\t}\n\n\t/**\n\t * Load and execute a script.\n\t *\n\t * @private\n\t * @param {string} src URL to script, will be used as the src attribute in the script tag\n\t * @param {Function} [callback] Callback to run after request resolution\n\t * @param {string[]} [modules] List of modules being requested, for state to be marked as error\n\t * in case the script fails to load\n\t * @return {HTMLElement}\n\t */\n\tfunction addScript( src, callback, modules ) {\n\t\t// Use a <script> element rather than XHR. Using XHR changes the request\n\t\t// headers (potentially missing a cache hit), and reduces caching in general\n\t\t// since browsers cache XHR much less (if at all). And XHR means we retrieve\n\t\t// text, so we'd need to eval, which then messes up line numbers.\n\t\t// The drawback is that <script> does not offer progress events, feedback is\n\t\t// only given after downloading, parsing, and execution have completed.\n\t\tvar script = document.createElement( 'script' );\n\t\tscript.src = src;\n\t\tfunction onComplete() {\n\t\t\tif ( script.parentNode ) {\n\t\t\t\tscript.parentNode.removeChild( script );\n\t\t\t}\n\t\t\tif ( callback ) {\n\t\t\t\tcallback();\n\t\t\t\tcallback = null;\n\t\t\t}\n\t\t}\n\t\tscript.onload = onComplete;\n\t\tscript.onerror = function () {\n\t\t\tonComplete();\n\t\t\tif ( modules ) {\n\t\t\t\tfor ( var i = 0; i < modules.length; i++ ) {\n\t\t\t\t\tsetAndPropagate( modules[ i ], 'error' );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tdocument.head.appendChild( script );\n\t\treturn script;\n\t}\n\n\t/**\n\t * Queue the loading and execution of a script for a particular module.\n\t *\n\t * This does for legacy debug mode what runScript() does for production.\n\t *\n\t * @private\n\t * @param {string} src URL of the script\n\t * @param {string} moduleName Name of currently executing module\n\t * @param {Function} callback Callback to run after addScript() resolution\n\t */\n\tfunction queueModuleScript( src, moduleName, callback ) {\n\t\tpendingRequests.push( function () {\n\t\t\t// Keep in sync with execute()/runScript().\n\t\t\tif ( moduleName !== 'jquery' ) {\n\t\t\t\twindow.require = mw.loader.require;\n\t\t\t\twindow.module = registry[ moduleName ].module;\n\t\t\t}\n\t\t\taddScript( src, function () {\n\t\t\t\t// 'module.exports' should not persist after the file is executed to\n\t\t\t\t// avoid leakage to unrelated code. 'require' should be kept, however,\n\t\t\t\t// as asynchronous access to 'require' is allowed and expected. (T144879)\n\t\t\t\tdelete window.module;\n\t\t\t\tcallback();\n\t\t\t\t// Start the next one (if any)\n\t\t\t\tif ( pendingRequests[ 0 ] ) {\n\t\t\t\t\tpendingRequests.shift()();\n\t\t\t\t} else {\n\t\t\t\t\thandlingPendingRequests = false;\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t\tif ( !handlingPendingRequests && pendingRequests[ 0 ] ) {\n\t\t\thandlingPendingRequests = true;\n\t\t\tpendingRequests.shift()();\n\t\t}\n\t}\n\n\t/**\n\t * Utility function for execute()\n\t *\n\t * @ignore\n\t * @param {string} url URL\n\t * @param {string} [media] Media attribute\n\t * @param {Node|null} [nextNode]\n\t * @return {HTMLElement}\n\t */\n\tfunction addLink( url, media, nextNode ) {\n\t\tvar el = document.createElement( 'link' );\n\n\t\tel.rel = 'stylesheet';\n\t\tif ( media ) {\n\t\t\tel.media = media;\n\t\t}\n\t\t// If you end up here from an IE exception \"SCRIPT: Invalid property value.\",\n\t\t// see #addEmbeddedCSS, T33676, T43331, and T49277 for details.\n\t\tel.href = url;\n\n\t\taddToHead( el, nextNode );\n\t\treturn el;\n\t}\n\n\t/**\n\t * Evaluate in the global scope.\n\t *\n\t * This is used by MediaWiki user scripts, where it is (for example)\n\t * important that `var` makes a global variable.\n\t *\n\t * @private\n\t * @param {string} code JavaScript code\n\t */\n\tfunction globalEval( code ) {\n\t\tvar script = document.createElement( 'script' );\n\t\tscript.text = code;\n\t\tdocument.head.appendChild( script );\n\t\tscript.parentNode.removeChild( script );\n\t}\n\n\t/**\n\t * Evaluate JS code using indirect eval().\n\t *\n\t * This is used by mw.loader.store. It is important that we protect the\n\t * integrity of mw.loader's private variables (from accidental clashes\n\t * or re-assignment), which means we can't use regular `eval()`.\n\t *\n\t * Optimization: This exists separately from globalEval(), because that\n\t * involves slow DOM overhead.\n\t *\n\t * @private\n\t * @param {string} code JavaScript code\n\t */\n\tfunction indirectEval( code ) {\n\t\t// See http://perfectionkills.com/global-eval-what-are-the-options/\n\t\t// for an explanation of this syntax.\n\t\t// eslint-disable-next-line no-eval\n\t\t( 1, eval )( code );\n\t}\n\n\t/**\n\t * Add one or more modules to the module load queue.\n\t *\n\t * See also #work().\n\t *\n\t * @private\n\t * @param {string[]} dependencies Array of module names in the registry\n\t * @param {Function} [ready] Callback to execute when all dependencies are ready\n\t * @param {Function} [error] Callback to execute when any dependency fails\n\t */\n\tfunction enqueue( dependencies, ready, error ) {\n\t\tif ( allReady( dependencies ) ) {\n\t\t\t// Run ready immediately\n\t\t\tif ( ready ) {\n\t\t\t\tready();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tvar failed = anyFailed( dependencies );\n\t\tif ( failed !== false ) {\n\t\t\tif ( error ) {\n\t\t\t\t// Execute error immediately if any dependencies have errors\n\t\t\t\terror(\n\t\t\t\t\tnew Error( 'Dependency ' + failed + ' failed to load' ),\n\t\t\t\t\tdependencies\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Not all dependencies are ready, add to the load queue...\n\n\t\t// Add ready and error callbacks if they were given\n\t\tif ( ready || error ) {\n\t\t\tjobs.push( {\n\t\t\t\t// Narrow down the list to modules that are worth waiting for\n\t\t\t\tdependencies: dependencies.filter( function ( module ) {\n\t\t\t\t\tvar state = registry[ module ].state;\n\t\t\t\t\treturn state === 'registered' || state === 'loaded' || state === 'loading' || state === 'executing';\n\t\t\t\t} ),\n\t\t\t\tready: ready,\n\t\t\t\terror: error\n\t\t\t} );\n\t\t}\n\n\t\tdependencies.forEach( function ( module ) {\n\t\t\t// Only queue modules that are still in the initial 'registered' state\n\t\t\t// (e.g. not ones already loading or loaded etc.).\n\t\t\tif ( registry[ module ].state === 'registered' && !queue.includes( module ) ) {\n\t\t\t\tqueue.push( module );\n\t\t\t}\n\t\t} );\n\n\t\tmw.loader.work();\n\t}\n\n\t/**\n\t * Executes a loaded module, making it ready to use\n\t *\n\t * @private\n\t * @param {string} module Module name to execute\n\t */\n\tfunction execute( module ) {\n\t\tif ( registry[ module ].state !== 'loaded' ) {\n\t\t\tthrow new Error( 'Module in state \"' + registry[ module ].state + '\" may not execute: ' + module );\n\t\t}\n\n\t\tregistry[ module ].state = 'executing';\n\t\t$CODE.profileExecuteStart();\n\n\t\tvar runScript = function () {\n\t\t\t$CODE.profileScriptStart();\n\t\t\tvar script = registry[ module ].script;\n\t\t\tvar markModuleReady = function () {\n\t\t\t\t$CODE.profileScriptEnd();\n\t\t\t\tsetAndPropagate( module, 'ready' );\n\t\t\t};\n\t\t\tvar nestedAddScript = function ( arr, offset ) {\n\t\t\t\t// Recursively call queueModuleScript() in its own callback\n\t\t\t\t// for each element of arr.\n\t\t\t\tif ( offset >= arr.length ) {\n\t\t\t\t\t// We're at the end of the array\n\t\t\t\t\tmarkModuleReady();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tqueueModuleScript( arr[ offset ], module, function () {\n\t\t\t\t\tnestedAddScript( arr, offset + 1 );\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\ttry {\n\t\t\t\tif ( Array.isArray( script ) ) {\n\t\t\t\t\tnestedAddScript( script, 0 );\n\t\t\t\t} else if ( typeof script === 'function' ) {\n\t\t\t\t\t// Keep in sync with queueModuleScript() for debug mode\n\t\t\t\t\tif ( module === 'jquery' ) {\n\t\t\t\t\t\t// This is a special case for when 'jquery' itself is being loaded.\n\t\t\t\t\t\t// - The standard jquery.js distribution does not set `window.jQuery`\n\t\t\t\t\t\t//   in CommonJS-compatible environments (Node.js, AMD, RequireJS, etc.).\n\t\t\t\t\t\t// - MediaWiki's 'jquery' module also bundles jquery.migrate.js, which\n\t\t\t\t\t\t//   in a CommonJS-compatible environment, will use require('jquery'),\n\t\t\t\t\t\t//   but that can't work when we're still inside that module.\n\t\t\t\t\t\tscript();\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Pass jQuery twice so that the signature of the closure which wraps\n\t\t\t\t\t\t// the script can bind both '$' and 'jQuery'.\n\t\t\t\t\t\tscript( window.$, window.$, mw.loader.require, registry[ module ].module );\n\t\t\t\t\t}\n\t\t\t\t\tmarkModuleReady();\n\t\t\t\t} else if ( typeof script === 'object' && script !== null ) {\n\t\t\t\t\tvar mainScript = script.files[ script.main ];\n\t\t\t\t\tif ( typeof mainScript !== 'function' ) {\n\t\t\t\t\t\tthrow new Error( 'Main file in module ' + module + ' must be a function' );\n\t\t\t\t\t}\n\t\t\t\t\t// jQuery parameters are not passed for multi-file modules\n\t\t\t\t\tmainScript(\n\t\t\t\t\t\tmakeRequireFunction( registry[ module ], script.main ),\n\t\t\t\t\t\tregistry[ module ].module,\n\t\t\t\t\t\tregistry[ module ].module.exports\n\t\t\t\t\t);\n\t\t\t\t\tmarkModuleReady();\n\t\t\t\t} else if ( typeof script === 'string' ) {\n\t\t\t\t\t// Site and user modules are legacy scripts that run in the global scope.\n\t\t\t\t\t// This is transported as a string instead of a function to avoid needing\n\t\t\t\t\t// to use string manipulation to undo the function wrapper.\n\t\t\t\t\tglobalEval( script );\n\t\t\t\t\tmarkModuleReady();\n\n\t\t\t\t} else {\n\t\t\t\t\t// Module without script\n\t\t\t\t\tmarkModuleReady();\n\t\t\t\t}\n\t\t\t} catch ( e ) {\n\t\t\t\t// Use mw.trackError instead of mw.log because these errors are common in production mode\n\t\t\t\t// (e.g. undefined variable), and mw.log is only enabled in debug mode.\n\t\t\t\tsetAndPropagate( module, 'error' );\n\t\t\t\t$CODE.profileScriptEnd();\n\t\t\t\tmw.trackError( {\n\t\t\t\t\texception: e,\n\t\t\t\t\tmodule: module,\n\t\t\t\t\tsource: 'module-execute'\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\n\t\t// Emit deprecation warnings\n\t\tif ( registry[ module ].deprecationWarning ) {\n\t\t\tmw.log.warn( registry[ module ].deprecationWarning );\n\t\t}\n\n\t\t// Add localizations to message system\n\t\tif ( registry[ module ].messages ) {\n\t\t\tmw.messages.set( registry[ module ].messages );\n\t\t}\n\n\t\t// Initialise templates\n\t\tif ( registry[ module ].templates ) {\n\t\t\tmw.templates.set( module, registry[ module ].templates );\n\t\t}\n\n\t\t// Adding of stylesheets is asynchronous via addEmbeddedCSS().\n\t\t// The below function uses a counting semaphore to make sure we don't call\n\t\t// runScript() until after this module's stylesheets have been inserted\n\t\t// into the DOM.\n\t\tvar cssPending = 0;\n\t\tvar cssHandle = function () {\n\t\t\t// Increase semaphore, when creating a callback for addEmbeddedCSS.\n\t\t\tcssPending++;\n\t\t\treturn function () {\n\t\t\t\t// Decrease semaphore, when said callback is invoked.\n\t\t\t\tcssPending--;\n\t\t\t\tif ( cssPending === 0 ) {\n\t\t\t\t\t// Paranoia:\n\t\t\t\t\t// This callback is exposed to addEmbeddedCSS, which is outside the execute()\n\t\t\t\t\t// function and is not concerned with state-machine integrity. In turn,\n\t\t\t\t\t// addEmbeddedCSS() actually exposes stuff further via requestAnimationFrame.\n\t\t\t\t\t// If increment and decrement callbacks happen in the wrong order, or start\n\t\t\t\t\t// again afterwards, then this branch could be reached multiple times.\n\t\t\t\t\t// To protect the integrity of the state-machine, prevent that from happening\n\t\t\t\t\t// by making runScript() cannot be called more than once.  We store a private\n\t\t\t\t\t// reference when we first reach this branch, then deference the original, and\n\t\t\t\t\t// call our reference to it.\n\t\t\t\t\tvar runScriptCopy = runScript;\n\t\t\t\t\trunScript = undefined;\n\t\t\t\t\trunScriptCopy();\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\n\t\t// Process styles (see also mw.loader.impl)\n\t\t// * { \"css\": [css, ..] }\n\t\t// * { \"url\": { <media>: [url, ..] } }\n\t\tvar style = registry[ module ].style;\n\t\tif ( style ) {\n\t\t\t// Array of CSS strings under key 'css'\n\t\t\t// { \"css\": [css, ..] }\n\t\t\tif ( 'css' in style ) {\n\t\t\t\tfor ( var i = 0; i < style.css.length; i++ ) {\n\t\t\t\t\taddEmbeddedCSS( style.css[ i ], cssHandle() );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Plain object with array of urls under a media-type key\n\t\t\t// { \"url\": { <media>: [url, ..] } }\n\t\t\tif ( 'url' in style ) {\n\t\t\t\tfor ( var media in style.url ) {\n\t\t\t\t\tvar urls = style.url[ media ];\n\t\t\t\t\tfor ( var j = 0; j < urls.length; j++ ) {\n\t\t\t\t\t\taddLink( urls[ j ], media, marker );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// End profiling of execute()-self before we call runScript(),\n\t\t// which we want to measure separately without overlap.\n\t\t$CODE.profileExecuteEnd();\n\n\t\tif ( module === 'user' ) {\n\t\t\t// Implicit dependency on the site module. Not a real dependency because it should\n\t\t\t// run after 'site' regardless of whether it succeeds or fails.\n\t\t\t// Note: This is a simplified version of mw.loader.using(), inlined here because\n\t\t\t// mw.loader.using() is part of mediawiki.base (depends on jQuery; T192623).\n\t\t\tvar siteDeps;\n\t\t\tvar siteDepErr;\n\t\t\ttry {\n\t\t\t\tsiteDeps = resolve( [ 'site' ] );\n\t\t\t} catch ( e ) {\n\t\t\t\tsiteDepErr = e;\n\t\t\t\trunScript();\n\t\t\t}\n\t\t\tif ( !siteDepErr ) {\n\t\t\t\tenqueue( siteDeps, runScript, runScript );\n\t\t\t}\n\t\t} else if ( cssPending === 0 ) {\n\t\t\t// Regular module without styles\n\t\t\trunScript();\n\t\t}\n\t\t// else: runScript will get called via cssHandle()\n\t}\n\n\tfunction sortQuery( o ) {\n\t\tvar sorted = {};\n\t\tvar list = [];\n\n\t\tfor ( var key in o ) {\n\t\t\tlist.push( key );\n\t\t}\n\t\tlist.sort();\n\t\tfor ( var i = 0; i < list.length; i++ ) {\n\t\t\tsorted[ list[ i ] ] = o[ list[ i ] ];\n\t\t}\n\t\treturn sorted;\n\t}\n\n\t/**\n\t * Converts a module map of the form `{ foo: [ 'bar', 'baz' ], bar: [ 'baz, 'quux' ] }`\n\t * to a query string of the form `foo.bar,baz|bar.baz,quux`.\n\t *\n\t * See `ResourceLoader::makePackedModulesString()` in PHP, of which this is a port.\n\t * On the server, unpacking is done by `ResourceLoader::expandModuleNames()`.\n\t *\n\t * Note: This is only half of the logic, the other half has to be in #batchRequest(),\n\t * because its implementation needs to keep track of potential string size in order\n\t * to decide when to split the requests due to url size.\n\t *\n\t * @typedef {Object} ModuleString\n\t * @property {string} str Module query string\n\t * @property {Array} list List of module names in matching order\n\t *\n\t * @private\n\t * @param {Object} moduleMap Module map\n\t * @return {ModuleString}\n\t */\n\tfunction buildModulesString( moduleMap ) {\n\t\tvar str = [];\n\t\tvar list = [];\n\t\tvar p;\n\n\t\tfunction restore( suffix ) {\n\t\t\treturn p + suffix;\n\t\t}\n\n\t\tfor ( var prefix in moduleMap ) {\n\t\t\tp = prefix === '' ? '' : prefix + '.';\n\t\t\tstr.push( p + moduleMap[ prefix ].join( ',' ) );\n\t\t\tlist.push.apply( list, moduleMap[ prefix ].map( restore ) );\n\t\t}\n\t\treturn {\n\t\t\tstr: str.join( '|' ),\n\t\t\tlist: list\n\t\t};\n\t}\n\n\t/**\n\t * @private\n\t * @param {Object} params Map of parameter names to values\n\t * @return {string}\n\t */\n\tfunction makeQueryString( params ) {\n\t\t// Optimisation: This is a fairly hot code path with batchRequest() loops.\n\t\t// Avoid overhead from Object.keys and Array.forEach.\n\t\t// String concatenation is faster than array pushing and joining, see\n\t\t// https://phabricator.wikimedia.org/P19931\n\t\tvar str = '';\n\t\tfor ( var key in params ) {\n\t\t\t// Parameters are separated by &, added before all parameters other than\n\t\t\t// the first\n\t\t\tstr += ( str ? '&' : '' ) + encodeURIComponent( key ) + '=' +\n\t\t\t\tencodeURIComponent( params[ key ] );\n\t\t}\n\t\treturn str;\n\t}\n\n\t/**\n\t * Create network requests for a batch of modules.\n\t *\n\t * This is an internal method for #work(). This must not be called directly\n\t * unless the modules are already registered, and no request is in progress,\n\t * and the module state has already been set to `loading`.\n\t *\n\t * @private\n\t * @param {string[]} batch\n\t */\n\tfunction batchRequest( batch ) {\n\t\tif ( !batch.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar sourceLoadScript, currReqBase, moduleMap;\n\n\t\t/**\n\t\t * Start the currently drafted request to the server.\n\t\t *\n\t\t * @ignore\n\t\t */\n\t\tfunction doRequest() {\n\t\t\t// Optimisation: Inherit (Object.create), not copy ($.extend)\n\t\t\tvar query = Object.create( currReqBase ),\n\t\t\t\tpacked = buildModulesString( moduleMap );\n\t\t\tquery.modules = packed.str;\n\t\t\t// The packing logic can change the effective order, even if the input was\n\t\t\t// sorted. As such, the call to getCombinedVersion() must use this\n\t\t\t// effective order to ensure that the combined version will match the hash\n\t\t\t// expected by the server based on combining versions from the module\n\t\t\t// query string in-order. (T188076)\n\t\t\tquery.version = getCombinedVersion( packed.list );\n\t\t\tquery = sortQuery( query );\n\t\t\taddScript( sourceLoadScript + '?' + makeQueryString( query ), null, packed.list );\n\t\t}\n\n\t\t// Always order modules alphabetically to help reduce cache\n\t\t// misses for otherwise identical content.\n\t\tbatch.sort();\n\n\t\t// Query parameters common to all requests\n\t\tvar reqBase = $VARS.reqBase;\n\n\t\t// Split module list by source and by group.\n\t\tvar splits = Object.create( null );\n\t\tfor ( var b = 0; b < batch.length; b++ ) {\n\t\t\tvar bSource = registry[ batch[ b ] ].source;\n\t\t\tvar bGroup = registry[ batch[ b ] ].group;\n\t\t\tif ( !splits[ bSource ] ) {\n\t\t\t\tsplits[ bSource ] = Object.create( null );\n\t\t\t}\n\t\t\tif ( !splits[ bSource ][ bGroup ] ) {\n\t\t\t\tsplits[ bSource ][ bGroup ] = [];\n\t\t\t}\n\t\t\tsplits[ bSource ][ bGroup ].push( batch[ b ] );\n\t\t}\n\n\t\tfor ( var source in splits ) {\n\t\t\tsourceLoadScript = sources[ source ];\n\n\t\t\tfor ( var group in splits[ source ] ) {\n\n\t\t\t\t// Cache access to currently selected list of\n\t\t\t\t// modules for this group from this source.\n\t\t\t\tvar modules = splits[ source ][ group ];\n\n\t\t\t\t// Query parameters common to requests for this module group\n\t\t\t\t// Optimisation: Inherit (Object.create), not copy ($.extend)\n\t\t\t\tcurrReqBase = Object.create( reqBase );\n\t\t\t\t// User modules require a user name in the query string.\n\t\t\t\tif ( group === $VARS.groupUser && mw.config.get( 'wgUserName' ) !== null ) {\n\t\t\t\t\tcurrReqBase.user = mw.config.get( 'wgUserName' );\n\t\t\t\t}\n\n\t\t\t\t// In addition to currReqBase, doRequest() will also add 'modules' and 'version'.\n\t\t\t\t// > '&modules='.length === 9\n\t\t\t\t// > '&version=12345'.length === 14\n\t\t\t\t// > 9 + 14 = 23\n\t\t\t\tvar currReqBaseLength = makeQueryString( currReqBase ).length + 23;\n\n\t\t\t\t// We may need to split up the request to honor the query string length limit,\n\t\t\t\t// so build it piece by piece. `length` does not include the characters from\n\t\t\t\t// the request base, see below\n\t\t\t\tvar length = 0;\n\t\t\t\tmoduleMap = Object.create( null ); // { prefix: [ suffixes ] }\n\n\t\t\t\tfor ( var i = 0; i < modules.length; i++ ) {\n\t\t\t\t\t// Determine how many bytes this module would add to the query string\n\t\t\t\t\tvar lastDotIndex = modules[ i ].lastIndexOf( '.' ),\n\t\t\t\t\t\tprefix = modules[ i ].slice( 0, Math.max( 0, lastDotIndex ) ),\n\t\t\t\t\t\tsuffix = modules[ i ].slice( lastDotIndex + 1 ),\n\t\t\t\t\t\tbytesAdded = moduleMap[ prefix ] ?\n\t\t\t\t\t\t\tsuffix.length + 3 : // '%2C'.length == 3\n\t\t\t\t\t\t\tmodules[ i ].length + 3; // '%7C'.length == 3\n\n\t\t\t\t\t// If the url would become too long, create a new one, but don't create empty requests.\n\t\t\t\t\t// The value of `length` only reflects the request-specific bytes relating to the\n\t\t\t\t\t// accumulated entries in moduleMap so far. It does not include the base length,\n\t\t\t\t\t// which we account for separately with `currReqBaseLength` so that length is 0\n\t\t\t\t\t// when moduleMap is empty.\n\t\t\t\t\tif ( length && length + currReqBaseLength + bytesAdded > mw.loader.maxQueryLength ) {\n\t\t\t\t\t\t// Dispatch what we've got...\n\t\t\t\t\t\tdoRequest();\n\t\t\t\t\t\t// .. and start preparing a new request.\n\t\t\t\t\t\tlength = 0;\n\t\t\t\t\t\tmoduleMap = Object.create( null );\n\t\t\t\t\t}\n\t\t\t\t\tif ( !moduleMap[ prefix ] ) {\n\t\t\t\t\t\tmoduleMap[ prefix ] = [];\n\t\t\t\t\t}\n\t\t\t\t\tlength += bytesAdded;\n\t\t\t\t\tmoduleMap[ prefix ].push( suffix );\n\t\t\t\t}\n\t\t\t\t// Optimization: Skip `length` check.\n\t\t\t\t// moduleMap will contain at least one module here. The loop above leaves the last module\n\t\t\t\t// undispatched (and maybe some before it), so for moduleMap to be empty here, there must\n\t\t\t\t// have been no modules to iterate in the current group to start with, but we only create\n\t\t\t\t// a group in `splits` when the first module in the group is seen, so there are always\n\t\t\t\t// modules in the group when this code is reached.\n\t\t\t\tdoRequest();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t * @param {string[]} implementations Array containing pieces of JavaScript code in the\n\t *  form of calls to mw.loader#impl().\n\t * @param {Function} cb Callback in case of failure\n\t * @param {Error} cb.err\n\t * @param {number} [offset] Integer offset into implementations to start at\n\t */\n\tfunction asyncEval( implementations, cb, offset ) {\n\t\tif ( !implementations.length ) {\n\t\t\treturn;\n\t\t}\n\t\toffset = offset || 0;\n\t\tmw.requestIdleCallback( function ( deadline ) {\n\t\t\tasyncEvalTask( deadline, implementations, cb, offset );\n\t\t} );\n\t}\n\n\t/**\n\t * Idle callback for asyncEval\n\t *\n\t * @private\n\t * @param {IdleDeadline} deadline\n\t * @param {string[]} implementations\n\t * @param {Function} cb\n\t * @param {Error} cb.err\n\t * @param {number} offset\n\t */\n\tfunction asyncEvalTask( deadline, implementations, cb, offset ) {\n\t\tfor ( var i = offset; i < implementations.length; i++ ) {\n\t\t\tif ( deadline.timeRemaining() <= 0 ) {\n\t\t\t\tasyncEval( implementations, cb, i );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tindirectEval( implementations[ i ] );\n\t\t\t} catch ( err ) {\n\t\t\t\tcb( err );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Make a versioned key for a specific module.\n\t *\n\t * @private\n\t * @param {string} module Module name\n\t * @return {string|null} Module key in format '`[name]@[version]`',\n\t *  or null if the module does not exist\n\t */\n\tfunction getModuleKey( module ) {\n\t\treturn module in registry ? ( module + '@' + registry[ module ].version ) : null;\n\t}\n\n\t/**\n\t * @private\n\t * @param {string} key Module name or '`[name]@[version]`'\n\t * @return {Object}\n\t */\n\tfunction splitModuleKey( key ) {\n\t\t// Module names may contain '@' but version strings may not, so the last '@' is the delimiter\n\t\tvar index = key.lastIndexOf( '@' );\n\t\t// If the key doesn't contain '@' or starts with it, the whole thing is the module name\n\t\tif ( index === -1 || index === 0 ) {\n\t\t\treturn {\n\t\t\t\tname: key,\n\t\t\t\tversion: ''\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tname: key.slice( 0, index ),\n\t\t\tversion: key.slice( index + 1 )\n\t\t};\n\t}\n\n\t/**\n\t * @private\n\t * @param {string} module\n\t * @param {string} [version]\n\t * @param {string[]} [dependencies]\n\t * @param {string} [group]\n\t * @param {string} [source]\n\t * @param {string} [skip]\n\t */\n\tfunction registerOne( module, version, dependencies, group, source, skip ) {\n\t\tif ( module in registry ) {\n\t\t\tthrow new Error( 'module already registered: ' + module );\n\t\t}\n\n\t\tregistry[ module ] = {\n\t\t\t// Exposed to execute() for mw.loader.impl() closures.\n\t\t\t// Import happens via require().\n\t\t\tmodule: {\n\t\t\t\texports: {}\n\t\t\t},\n\t\t\t// module.export objects for each package file inside this module\n\t\t\tpackageExports: {},\n\t\t\tversion: version || '',\n\t\t\tdependencies: dependencies || [],\n\t\t\tgroup: typeof group === 'undefined' ? null : group,\n\t\t\tsource: typeof source === 'string' ? source : 'local',\n\t\t\tstate: 'registered',\n\t\t\tskip: typeof skip === 'string' ? skip : null\n\t\t};\n\t}\n\n\t/* Public Members */\n\n\tmw.loader = {\n\t\t/**\n\t\t * The module registry is exposed as an aid for debugging and inspecting page\n\t\t * state; it is not a public interface for modifying the registry.\n\t\t *\n\t\t * @see #registry\n\t\t * @property {Object}\n\t\t * @private\n\t\t */\n\t\tmoduleRegistry: registry,\n\n\t\t/**\n\t\t * Exposed for testing and debugging only.\n\t\t *\n\t\t * @see #batchRequest\n\t\t * @property {number}\n\t\t * @private\n\t\t */\n\t\tmaxQueryLength: $VARS.maxQueryLength,\n\n\t\taddStyleTag: newStyleTag,\n\n\t\t// Exposed for internal use only. Documented as @private.\n\t\taddScriptTag: addScript,\n\t\t// Exposed for internal use only. Documented as @private.\n\t\taddLinkTag: addLink,\n\n\t\t// Exposed for internal use only. Documented as @private.\n\t\tenqueue: enqueue,\n\n\t\t// Exposed for internal use only. Documented as @private.\n\t\tresolve: resolve,\n\n\t\t/**\n\t\t * Start loading of all queued module dependencies.\n\t\t *\n\t\t * @private\n\t\t */\n\t\twork: function () {\n\t\t\tstore.init();\n\n\t\t\tvar q = queue.length,\n\t\t\t\tstoredImplementations = [],\n\t\t\t\tstoredNames = [],\n\t\t\t\trequestNames = [],\n\t\t\t\tbatch = new Set();\n\n\t\t\t// Iterate the list of requested modules, and do one of three things:\n\t\t\t// - 1) Nothing (if already loaded or being loaded).\n\t\t\t// - 2) Eval the cached implementation from the module store.\n\t\t\t// - 3) Request from network.\n\t\t\twhile ( q-- ) {\n\t\t\t\tvar module = queue[ q ];\n\t\t\t\t// Only consider modules which are the initial 'registered' state,\n\t\t\t\t// and ignore duplicates\n\t\t\t\tif ( mw.loader.getState( module ) === 'registered' &&\n\t\t\t\t\t!batch.has( module )\n\t\t\t\t) {\n\t\t\t\t\t// Progress the state machine\n\t\t\t\t\tregistry[ module ].state = 'loading';\n\t\t\t\t\tbatch.add( module );\n\n\t\t\t\t\tvar implementation = store.get( module );\n\t\t\t\t\tif ( implementation ) {\n\t\t\t\t\t\t// Module store enabled and contains this module/version\n\t\t\t\t\t\tstoredImplementations.push( implementation );\n\t\t\t\t\t\tstoredNames.push( module );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Module store disabled or doesn't have this module/version\n\t\t\t\t\t\trequestNames.push( module );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Now that the queue has been processed into a batch, clear the queue.\n\t\t\t// This MUST happen before we initiate any eval or network request. Otherwise,\n\t\t\t// it is possible for a cached script to instantly trigger the same work queue\n\t\t\t// again; all before we've cleared it causing each request to include modules\n\t\t\t// which are already loaded.\n\t\t\tqueue = [];\n\n\t\t\tasyncEval( storedImplementations, function ( err ) {\n\t\t\t\t// Not good, the cached mw.loader.impl calls failed! This should\n\t\t\t\t// never happen, barring ResourceLoader bugs, browser bugs and PEBKACs.\n\t\t\t\t// Depending on how corrupt the string is, it is likely that some\n\t\t\t\t// modules' impl() succeeded while the ones after the error will\n\t\t\t\t// never run and leave their modules in the 'loading' state forever.\n\t\t\t\tstore.stats.failed++;\n\n\t\t\t\t// Since this is an error not caused by an individual module but by\n\t\t\t\t// something that infected the implement call itself, don't take any\n\t\t\t\t// risks and clear everything in this cache.\n\t\t\t\tstore.clear();\n\n\t\t\t\tmw.trackError( {\n\t\t\t\t\texception: err,\n\t\t\t\t\tsource: 'store-eval'\n\t\t\t\t} );\n\t\t\t\t// For any failed ones, fallback to requesting from network\n\t\t\t\tvar failed = storedNames.filter( function ( name ) {\n\t\t\t\t\treturn registry[ name ].state === 'loading';\n\t\t\t\t} );\n\t\t\t\tbatchRequest( failed );\n\t\t\t} );\n\n\t\t\tbatchRequest( requestNames );\n\t\t},\n\n\t\t/**\n\t\t * Register a source.\n\t\t *\n\t\t * The #work() method will use this information to split up requests by source.\n\t\t *\n\t\t * @example\n\t\t * mw.loader.addSource( { mediawikiwiki: 'https://www.mediawiki.org/w/load.php' } );\n\t\t *\n\t\t * @private\n\t\t * @param {Object} ids An object mapping ids to load.php end point urls\n\t\t * @throws {Error} If source id is already registered\n\t\t */\n\t\taddSource: function ( ids ) {\n\t\t\tfor ( var id in ids ) {\n\t\t\t\tif ( id in sources ) {\n\t\t\t\t\tthrow new Error( 'source already registered: ' + id );\n\t\t\t\t}\n\t\t\t\tsources[ id ] = ids[ id ];\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Register a module, letting the system know about it and its properties.\n\t\t *\n\t\t * The startup module calls this method.\n\t\t *\n\t\t * When using multiple module registration by passing an array, dependencies that\n\t\t * are specified as references to modules within the array will be resolved before\n\t\t * the modules are registered.\n\t\t *\n\t\t * @param {string|Array} modules Module name or array of arrays, each containing\n\t\t *  a list of arguments compatible with this method\n\t\t * @param {string} [version] Module version hash (falls backs to empty string)\n\t\t * @param {string[]} [dependencies] Array of module names on which this module depends.\n\t\t * @param {string} [group=null] Group which the module is in\n\t\t * @param {string} [source='local'] Name of the source\n\t\t * @param {string} [skip=null] Script body of the skip function\n\t\t * @private\n\t\t */\n\t\tregister: function ( modules ) {\n\t\t\tif ( typeof modules !== 'object' ) {\n\t\t\t\tregisterOne.apply( null, arguments );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Need to resolve indexed dependencies:\n\t\t\t// ResourceLoader uses an optimisation to save space which replaces module\n\t\t\t// names in dependency lists with the index of that module within the\n\t\t\t// array of module registration data if it exists. The benefit is a significant\n\t\t\t// reduction in the data size of the startup module. This loop changes\n\t\t\t// those dependency lists back to arrays of strings.\n\t\t\tfunction resolveIndex( dep ) {\n\t\t\t\treturn typeof dep === 'number' ? modules[ dep ][ 0 ] : dep;\n\t\t\t}\n\n\t\t\tfor ( var i = 0; i < modules.length; i++ ) {\n\t\t\t\tvar deps = modules[ i ][ 2 ];\n\t\t\t\tif ( deps ) {\n\t\t\t\t\tfor ( var j = 0; j < deps.length; j++ ) {\n\t\t\t\t\t\tdeps[ j ] = resolveIndex( deps[ j ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Optimisation: Up to 55% faster.\n\t\t\t\t// Typically register() is called exactly once on a page, and with a batch.\n\t\t\t\t// See <https://gist.github.com/Krinkle/f06fdb3de62824c6c16f02a0e6ce0e66>\n\t\t\t\t// Benchmarks taught us that the code for adding an object to `registry`\n\t\t\t\t// should be in a function that has only one signature and does no arguments\n\t\t\t\t// manipulation.\n\t\t\t\t// JS semantics make it hard to optimise recursion to a different\n\t\t\t\t// signature of itself, hence we moved this out.\n\t\t\t\tregisterOne.apply( null, modules[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Implement a module given the components of the module.\n\t\t *\n\t\t * See #impl for a full description of the parameters.\n\t\t *\n\t\t * Prior to MW 1.41, this was used internally, but now it is only kept\n\t\t * for backwards compatibility.\n\t\t *\n\t\t * Does not support mw.loader.store caching.\n\t\t *\n\t\t * @param {string} module\n\t\t * @param {Function|Array|string|Object} [script]\n\t\t * @param {Object} [style]\n\t\t * @param {Object} [messages] List of key/value pairs to be added to mw#messages.\n\t\t * @param {Object} [templates] List of key/value pairs to be added to mw#templates.\n\t\t * @param {string|null} [deprecationWarning] Deprecation warning if any\n\t\t * @private\n\t\t */\n\t\timplement: function ( module, script, style, messages, templates, deprecationWarning ) {\n\t\t\tvar split = splitModuleKey( module ),\n\t\t\t\tname = split.name,\n\t\t\t\tversion = split.version;\n\n\t\t\t// Automatically register module\n\t\t\tif ( !( name in registry ) ) {\n\t\t\t\tmw.loader.register( name );\n\t\t\t}\n\t\t\t// Check for duplicate implementation\n\t\t\tif ( registry[ name ].script !== undefined ) {\n\t\t\t\tthrow new Error( 'module already implemented: ' + name );\n\t\t\t}\n\t\t\tregistry[ name ].version = version;\n\t\t\tregistry[ name ].declarator = null; // not supported\n\t\t\tregistry[ name ].script = script;\n\t\t\tregistry[ name ].style = style;\n\t\t\tregistry[ name ].messages = messages;\n\t\t\tregistry[ name ].templates = templates;\n\t\t\tregistry[ name ].deprecationWarning = deprecationWarning;\n\t\t\t// The module may already have been marked as erroneous\n\t\t\tif ( registry[ name ].state !== 'error' && registry[ name ].state !== 'missing' ) {\n\t\t\t\tsetAndPropagate( name, 'loaded' );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Implement a module given a function which returns the components of the module\n\t\t *\n\t\t * @param {Function} declarator\n\t\t *\n\t\t * The declarator should return an array with the following keys:\n\t\t *\n\t\t *  - 0. {string} module Name of module and current module version. Formatted\n\t\t *    as '`[name]@[version]`\". This version should match the requested version\n\t\t *    (from #batchRequest and #registry). This avoids race conditions (T117587).\n\t\t *\n\t\t *  - 1. {Function|Array|string|Object} [script] Module code. This can be a function,\n\t\t *    a list of URLs to load via `<script src>`, a string for `globalEval()`, or an\n\t\t *    object like {\"files\": {\"foo.js\":function, \"bar.js\": function, ...}, \"main\": \"foo.js\"}.\n\t\t *    If an object is provided, the main file will be executed immediately, and the other\n\t\t *    files will only be executed if loaded via require(). If a function or string is\n\t\t *    provided, it will be executed/evaluated immediately. If an array is provided, all\n\t\t *    URLs in the array will be loaded immediately, and executed as soon as they arrive.\n\t\t *\n\t\t *  - 2. {Object} [style] Should follow one of the following patterns:\n\t\t *\n\t\t *     { \"css\": [css, ..] }\n\t\t *     { \"url\": { (media): [url, ..] } }\n\t\t *\n\t\t *    The reason css strings are not concatenated anymore is T33676. We now check\n\t\t *    whether it's safe to extend the stylesheet.\n\t\t *\n\t\t *  - 3. {Object} [messages] List of key/value pairs to be added to mw#messages.\n\t\t *  - 4. {Object} [templates] List of key/value pairs to be added to mw#templates.\n\t\t *  - 5. {String|null} [deprecationWarning] Deprecation warning if any\n\t\t *\n\t\t * The declarator must not use any scope variables, since it will be serialized with\n\t\t * Function.prototype.toString() and later restored and executed in the global scope.\n\t\t *\n\t\t * The elements are all optional except the name.\n\t\t * @private\n\t\t */\n\t\timpl: function ( declarator ) {\n\t\t\tvar data = declarator(),\n\t\t\t\tmodule = data[ 0 ],\n\t\t\t\tscript = data[ 1 ] || null,\n\t\t\t\tstyle = data[ 2 ] || null,\n\t\t\t\tmessages = data[ 3 ] || null,\n\t\t\t\ttemplates = data[ 4 ] || null,\n\t\t\t\tdeprecationWarning = data[ 5 ] || null,\n\t\t\t\tsplit = splitModuleKey( module ),\n\t\t\t\tname = split.name,\n\t\t\t\tversion = split.version;\n\n\t\t\t// Automatically register module\n\t\t\tif ( !( name in registry ) ) {\n\t\t\t\tmw.loader.register( name );\n\t\t\t}\n\t\t\t// Check for duplicate implementation\n\t\t\tif ( registry[ name ].script !== undefined ) {\n\t\t\t\tthrow new Error( 'module already implemented: ' + name );\n\t\t\t}\n\t\t\t// Without this reset, if there is a version mismatch between the\n\t\t\t// requested and received module version, then mw.loader.store would\n\t\t\t// cache the response under the requested key. Thus poisoning the cache\n\t\t\t// indefinitely with a stale value. (T117587)\n\t\t\tregistry[ name ].version = version;\n\t\t\t// Attach components\n\t\t\tregistry[ name ].declarator = declarator;\n\t\t\tregistry[ name ].script = script;\n\t\t\tregistry[ name ].style = style;\n\t\t\tregistry[ name ].messages = messages;\n\t\t\tregistry[ name ].templates = templates;\n\t\t\tregistry[ name ].deprecationWarning = deprecationWarning;\n\t\t\t// The module may already have been marked as erroneous\n\t\t\tif ( registry[ name ].state !== 'error' && registry[ name ].state !== 'missing' ) {\n\t\t\t\tsetAndPropagate( name, 'loaded' );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Load an external script or one or more modules.\n\t\t *\n\t\t * This method takes a list of unrelated modules. Use cases:\n\t\t *\n\t\t * - A web page will be composed of many different widgets. These widgets independently\n\t\t *   queue their ResourceLoader modules (`OutputPage::addModules()`). If any of them\n\t\t *   have problems, or are no longer known (e.g. cached HTML), the other modules\n\t\t *   should still be loaded.\n\t\t * - This method is used for preloading, which must not throw. Later code that\n\t\t *   calls #using() will handle the error.\n\t\t *\n\t\t * @param {string|Array} modules Either the name of a module, array of modules,\n\t\t *  or a URL of an external script or style\n\t\t * @param {string} [type='text/javascript'] MIME type to use if calling with a URL of an\n\t\t *  external script or style; acceptable values are \"text/css\" and\n\t\t *  \"text/javascript\"; if no type is provided, text/javascript is assumed.\n\t\t * @throws {Error} If type is invalid\n\t\t */\n\t\tload: function ( modules, type ) {\n\n\t\t\tif ( typeof modules === 'string' && /^(https?:)?\\/?\\//.test( modules ) ) {\n\t\t\t\t// Called with a url like so:\n\t\t\t\t// - \"https://example.org/x.js\"\n\t\t\t\t// - \"http://example.org/x.js\"\n\t\t\t\t// - \"//example.org/x.js\"\n\t\t\t\t// - \"/x.js\"\n\t\t\t\tif ( type === 'text/css' ) {\n\t\t\t\t\taddLink( modules );\n\t\t\t\t} else if ( type === 'text/javascript' || type === undefined ) {\n\t\t\t\t\taddScript( modules );\n\t\t\t\t} else {\n\t\t\t\t\t// Unknown type\n\t\t\t\t\tthrow new Error( 'Invalid type ' + type );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// One or more modules\n\t\t\t\tmodules = typeof modules === 'string' ? [ modules ] : modules;\n\t\t\t\t// Resolve modules into a flat list for internal queuing.\n\t\t\t\t// This also filters out unknown modules and modules with\n\t\t\t\t// unknown dependencies, allowing the rest to continue. (T36853)\n\t\t\t\t// Omit ready and error parameters, we don't have callbacks\n\t\t\t\tenqueue( resolveStubbornly( modules ) );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Change the state of one or more modules.\n\t\t *\n\t\t * @param {Object} states Object of module name/state pairs\n\t\t * @private\n\t\t */\n\t\tstate: function ( states ) {\n\t\t\tfor ( var module in states ) {\n\t\t\t\tif ( !( module in registry ) ) {\n\t\t\t\t\tmw.loader.register( module );\n\t\t\t\t}\n\t\t\t\tsetAndPropagate( module, states[ module ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get the state of a module.\n\t\t *\n\t\t * Possible states for the public API:\n\t\t *\n\t\t * - `registered`: The module is available for loading but not yet requested.\n\t\t * - `loading`, `loaded`, or `executing`: The module is currently being loaded.\n\t\t * - `ready`: The module was successfully and fully loaded.\n\t\t * - `error`: The module or one its dependencies has failed to load, e.g. due to\n\t\t *    uncaught error from the module's script files.\n\t\t * - `missing`: The module was requested but is not defined according to the server.\n\t\t *\n\t\t * Internal mw.loader state machine:\n\t\t *\n\t\t * - `registered`:\n\t\t *    The module is known to the system but not yet required.\n\t\t *    Meta data is stored by `register()`.\n\t\t *    Calls to that method are generated server-side by StartupModule.\n\t\t * - `loading`:\n\t\t *    The module was required through mw.loader (either directly or as dependency of\n\t\t *    another module). The client will fetch module contents from mw.loader.store\n\t\t *    or from the server. The contents should later be received by `implement()`.\n\t\t * - `loaded`:\n\t\t *    The module has been received by `implement()`.\n\t\t *    Once the module has no more dependencies in-flight, the module will be executed,\n\t\t *    controlled via `setAndPropagate()` and `doPropagation()`.\n\t\t * - `executing`:\n\t\t *    The module is being executed (apply messages and stylesheets, execute scripts)\n\t\t *    by `execute()`.\n\t\t * - `ready`:\n\t\t *    The module has been successfully executed.\n\t\t * - `error`:\n\t\t *    The module (or one of its dependencies) produced an uncaught error during execution.\n\t\t * - `missing`:\n\t\t *    The module was registered client-side and requested, but the server denied knowledge\n\t\t *    of the module's existence.\n\t\t *\n\t\t * @param {string} module Name of module\n\t\t * @return {string|null} The state, or null if the module (or its state) is not\n\t\t *  in the registry.\n\t\t */\n\t\tgetState: function ( module ) {\n\t\t\treturn module in registry ? registry[ module ].state : null;\n\t\t},\n\n\t\t/**\n\t\t * Get the exported value of a module.\n\t\t *\n\t\t * This static method is publicly exposed for debugging purposes\n\t\t * only and must not be used in production code. In production code,\n\t\t * please use the dynamically provided `require()` function instead.\n\t\t *\n\t\t * In case of lazy-loaded modules via mw.loader#using(), the returned\n\t\t * Promise provides the function, see #using() for examples.\n\t\t *\n\t\t * @private\n\t\t * @since 1.27\n\t\t * @param {string} moduleName Module name\n\t\t * @return {any} Exported value\n\t\t */\n\t\trequire: function ( moduleName ) {\n\t\t\tif ( moduleName.startsWith( './' ) || moduleName.startsWith( '../' ) ) {\n\t\t\t\tthrow new Error( 'Module names cannot start with \"./\" or \"../\". Did you mean to use Package files?' );\n\t\t\t}\n\n\t\t\tvar path;\n\t\t\tif ( window.QUnit ) {\n\t\t\t\t// Comply with Node specification\n\t\t\t\t// https://nodejs.org/docs/v20.1.0/api/modules.html#all-together\n\t\t\t\t//\n\t\t\t\t// > Interpret X as a combination of NAME and SUBPATH, where the NAME\n\t\t\t\t// > may have a \"@scope/\" prefix and the subpath begins with a slash (`/`).\n\t\t\t\t//\n\t\t\t\t// Regex inspired by Node [1], but simplified to suite our purposes\n\t\t\t\t// and split in two in order to keep the Regex Star Height under 2,\n\t\t\t\t// as per ESLint security/detect-unsafe-regex.\n\t\t\t\t//\n\t\t\t\t// These patterns match \"@scope/module/dir/file.js\" and \"module/dir/file.js\"\n\t\t\t\t// respectively. They must not match \"module.name\" or \"@scope/module.name\".\n\t\t\t\t//\n\t\t\t\t// [1] https://github.com/nodejs/node/blob/v20.1.0/lib/internal/modules/cjs/loader.js#L554-L560\n\t\t\t\tvar paths = moduleName.startsWith( '@' ) ?\n\t\t\t\t\t/^(@[^/]+\\/[^/]+)\\/(.*)$/.exec( moduleName ) :\n\t\t\t\t\t// eslint-disable-next-line no-mixed-spaces-and-tabs\n\t\t\t\t\t        /^([^/]+)\\/(.*)$/.exec( moduleName );\n\t\t\t\tif ( paths ) {\n\t\t\t\t\tmoduleName = paths[ 1 ];\n\t\t\t\t\tpath = paths[ 2 ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Only ready modules can be required\n\t\t\tif ( mw.loader.getState( moduleName ) !== 'ready' ) {\n\t\t\t\t// Module may've forgotten to declare a dependency\n\t\t\t\tthrow new Error( 'Module \"' + moduleName + '\" is not loaded' );\n\t\t\t}\n\n\t\t\treturn path ?\n\t\t\t\tmakeRequireFunction( registry[ moduleName ], '' )( './' + path ) :\n\t\t\t\tregistry[ moduleName ].module.exports;\n\t\t}\n\t};\n\n\tvar hasPendingFlush = false,\n\t\thasPendingWrites = false;\n\n\t/**\n\t * Actually update the store\n\t *\n\t * @see #requestUpdate\n\t * @private\n\t */\n\tfunction flushWrites() {\n\t\t// Process queued module names, serialise their contents to the in-memory store.\n\t\twhile ( store.queue.length ) {\n\t\t\tstore.set( store.queue.shift() );\n\t\t}\n\n\t\t// Optimization: Don't reserialize the entire store and rewrite localStorage,\n\t\t// if no module was added or changed.\n\t\tif ( hasPendingWrites ) {\n\t\t\t// Remove anything from the in-memory store that came from previous page\n\t\t\t// loads that no longer corresponds with current module names and versions.\n\t\t\tstore.prune();\n\n\t\t\ttry {\n\t\t\t\t// Replacing the content of the module store might fail if the new\n\t\t\t\t// contents would exceed the browser's localStorage size limit. To\n\t\t\t\t// avoid clogging the browser with stale data, always remove the old\n\t\t\t\t// value before attempting to store a new one.\n\t\t\t\tlocalStorage.removeItem( store.key );\n\t\t\t\tlocalStorage.setItem( store.key, JSON.stringify( {\n\t\t\t\t\titems: store.items,\n\t\t\t\t\tvary: store.vary,\n\t\t\t\t\t// Store with 1e7 ms accuracy (1e4 seconds, or ~ 2.7 hours),\n\t\t\t\t\t// which is enough for the purpose of expiring after ~ 30 days.\n\t\t\t\t\tasOf: Math.ceil( Date.now() / 1e7 )\n\t\t\t\t} ) );\n\t\t\t} catch ( e ) {\n\t\t\t\tmw.trackError( {\n\t\t\t\t\texception: e,\n\t\t\t\t\tsource: 'store-localstorage-update'\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\t// Let the next call to requestUpdate() create a new timer.\n\t\thasPendingFlush = hasPendingWrites = false;\n\t}\n\n\t// We use a local variable `store` so that its easier to access, but also need to set\n\t// this in mw.loader so its exported - combine the two\n\n\t/**\n\t * On browsers that implement the localStorage API, the module store serves as a\n\t * smart complement to the browser cache. Unlike the browser cache, the module store\n\t * can slice a concatenated response from ResourceLoader into its constituent\n\t * modules and cache each of them separately, using each module's versioning scheme\n\t * to determine when the cache should be invalidated.\n\t *\n\t * @private\n\t * @singleton\n\t * @class mw.loader.store\n\t * @ignore\n\t */\n\tmw.loader.store = store = {\n\t\t// Whether the store is in use on this page.\n\t\tenabled: null,\n\n\t\t// The contents of the store, mapping '[name]@[version]' keys\n\t\t// to module implementations.\n\t\titems: {},\n\n\t\t// Names of modules to be stored during the next update.\n\t\t// See add() and update().\n\t\tqueue: [],\n\n\t\t// Cache hit stats\n\t\tstats: { hits: 0, misses: 0, expired: 0, failed: 0 },\n\n\t\t/**\n\t\t * The localStorage key for the entire module store. The key references\n\t\t * $wgDBname to prevent clashes between wikis which share a common host.\n\t\t *\n\t\t * @property {string}\n\t\t */\n\t\tkey: $VARS.storeKey,\n\n\t\t/**\n\t\t * A string containing various factors by which the module cache should vary.\n\t\t *\n\t\t * Defined by ResourceLoader\\StartupModule::getStoreVary() in PHP.\n\t\t *\n\t\t * @property {string}\n\t\t */\n\t\tvary: $VARS.storeVary,\n\n\t\t/**\n\t\t * Initialize the store.\n\t\t *\n\t\t * Retrieves store from localStorage and (if successfully retrieved) decoding\n\t\t * the stored JSON value to a plain object.\n\t\t */\n\t\tinit: function () {\n\t\t\t// Init only once per page\n\t\t\tif ( this.enabled === null ) {\n\t\t\t\tthis.enabled = false;\n\t\t\t\tif ( $VARS.storeEnabled ) {\n\t\t\t\t\tthis.load();\n\t\t\t\t} else {\n\t\t\t\t\t// Clear any previous store to free up space. (T66721)\n\t\t\t\t\tthis.clear();\n\t\t\t\t}\n\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Internal helper for init(). Separated for ease of testing.\n\t\t */\n\t\tload: function () {\n\t\t\t// These are the scenarios to think about:\n\t\t\t//\n\t\t\t// 1. localStorage is disallowed by the browser.\n\t\t\t//    This means `localStorage.getItem` throws.\n\t\t\t//    The store stays disabled.\n\t\t\t//\n\t\t\t// 2. localStorage did not contain our store key.\n\t\t\t//    This usually means the browser has a cold cache for this site,\n\t\t\t//    and thus localStorage.getItem returns null.\n\t\t\t//    The store will be enabled, and `items` starts fresh.\n\t\t\t//\n\t\t\t// 3. localStorage contains parseable data, but it's not usable.\n\t\t\t//    This means the data is too old, or is not valid for mw.loader.store.vary\n\t\t\t//    (e.g. user switched skin or language).\n\t\t\t//    The store will be enabled, and `items` starts fresh.\n\t\t\t//\n\t\t\t// 4. localStorage contains invalid JSON data.\n\t\t\t//    This means the data was corrupted, and `JSON.parse` throws.\n\t\t\t//    The store will be enabled, and `items` starts fresh.\n\t\t\t//\n\t\t\t// 5. localStorage contains valid and usable JSON.\n\t\t\t//    This means we have a warm cache from a previous visit.\n\t\t\t//    The store will be enabled, and `items` starts with the stored data.\n\n\t\t\ttry {\n\t\t\t\tvar raw = localStorage.getItem( this.key );\n\n\t\t\t\t// If we make it here, localStorage is enabled and available.\n\t\t\t\t// The rest of the function may fail, but that only affects what we load from\n\t\t\t\t// the cache. We'll still enable the store to allow storing new modules.\n\t\t\t\tthis.enabled = true;\n\n\t\t\t\t// If getItem returns null, JSON.parse() will cast to string and re-parse, still null.\n\t\t\t\tvar data = JSON.parse( raw );\n\t\t\t\tif ( data &&\n\t\t\t\t\tdata.vary === this.vary &&\n\t\t\t\t\tdata.items &&\n\t\t\t\t\t// Only use if it's been less than 30 days since the data was written\n\t\t\t\t\t// 30 days = 2,592,000 s = 2,592,000,000 ms = ± 259e7 ms\n\t\t\t\t\tDate.now() < ( data.asOf * 1e7 ) + 259e7\n\t\t\t\t) {\n\t\t\t\t\t// The data is not corrupt, matches our vary context, and has not expired.\n\t\t\t\t\tthis.items = data.items;\n\t\t\t\t}\n\t\t\t} catch ( e ) {\n\t\t\t\t// Ignore error from localStorage or JSON.parse.\n\t\t\t\t// Don't print any warning (T195647).\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Retrieve a module from the store and update cache hit stats.\n\t\t *\n\t\t * @param {string} module Module name\n\t\t * @return {string|boolean} Module implementation or false if unavailable\n\t\t */\n\t\tget: function ( module ) {\n\t\t\tif ( this.enabled ) {\n\t\t\t\tvar key = getModuleKey( module );\n\t\t\t\tif ( key in this.items ) {\n\t\t\t\t\tthis.stats.hits++;\n\t\t\t\t\treturn this.items[ key ];\n\t\t\t\t}\n\n\t\t\t\tthis.stats.misses++;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * Queue the name of a module that the next update should consider storing.\n\t\t *\n\t\t * @since 1.32\n\t\t * @param {string} module Module name\n\t\t */\n\t\tadd: function ( module ) {\n\t\t\tif ( this.enabled ) {\n\t\t\t\tthis.queue.push( module );\n\t\t\t\tthis.requestUpdate();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add the contents of the named module to the in-memory store.\n\t\t *\n\t\t * This method does not guarantee that the module will be stored.\n\t\t * Inspection of the module's meta data and size will ultimately decide that.\n\t\t *\n\t\t * This method is considered internal to mw.loader.store and must only\n\t\t * be called if the store is enabled.\n\t\t *\n\t\t * @private\n\t\t * @param {string} module Module name\n\t\t */\n\t\tset: function ( module ) {\n\t\t\tvar descriptor = registry[ module ],\n\t\t\t\tkey = getModuleKey( module );\n\n\t\t\tif (\n\t\t\t\t// Already stored a copy of this exact version\n\t\t\t\tkey in this.items ||\n\t\t\t\t// Module failed to load\n\t\t\t\t!descriptor ||\n\t\t\t\tdescriptor.state !== 'ready' ||\n\t\t\t\t// Unversioned, private, or site-/user-specific\n\t\t\t\t!descriptor.version ||\n\t\t\t\tdescriptor.group === $VARS.groupPrivate ||\n\t\t\t\tdescriptor.group === $VARS.groupUser ||\n\t\t\t\t// Legacy descriptor, registered with mw.loader.implement\n\t\t\t\t!descriptor.declarator\n\t\t\t) {\n\t\t\t\t// Decline to store\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar script = String( descriptor.declarator );\n\t\t\t// Modules whose serialised form exceeds 100 kB won't be stored (T66721).\n\t\t\tif ( script.length > 1e5 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar srcParts = [\n\t\t\t\t'mw.loader.impl(',\n\t\t\t\tscript,\n\t\t\t\t');\\n'\n\t\t\t];\n\t\t\tif ( $VARS.sourceMapLinks ) {\n\t\t\t\tsrcParts.push( '// Saved in localStorage at ', ( new Date() ).toISOString(), '\\n' );\n\t\t\t\tvar sourceLoadScript = sources[ descriptor.source ];\n\t\t\t\tvar query = Object.create( $VARS.reqBase );\n\t\t\t\tquery.modules = module;\n\t\t\t\tquery.version = getCombinedVersion( [ module ] );\n\t\t\t\tquery = sortQuery( query );\n\t\t\t\tsrcParts.push(\n\t\t\t\t\t'//# sourceURL=',\n\t\t\t\t\t// Use absolute URL so that Firefox console stack trace links will work\n\t\t\t\t\t( new URL( sourceLoadScript, location ) ).href,\n\t\t\t\t\t'?',\n\t\t\t\t\tmakeQueryString( query ),\n\t\t\t\t\t'\\n'\n\t\t\t\t);\n\n\t\t\t\tquery.sourcemap = '1';\n\t\t\t\tquery = sortQuery( query );\n\t\t\t\tsrcParts.push(\n\t\t\t\t\t'//# sourceMappingURL=',\n\t\t\t\t\tsourceLoadScript,\n\t\t\t\t\t'?',\n\t\t\t\t\tmakeQueryString( query )\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.items[ key ] = srcParts.join( '' );\n\t\t\thasPendingWrites = true;\n\t\t},\n\n\t\t/**\n\t\t * Iterate through the module store, removing any item that does not correspond\n\t\t * (in name and version) to an item in the module registry.\n\t\t */\n\t\tprune: function () {\n\t\t\tfor ( var key in this.items ) {\n\t\t\t\t// key is in the form [name]@[version], slice to get just the name\n\t\t\t\t// to provide to getModuleKey, which will return a key in the same\n\t\t\t\t// form but with the latest version\n\t\t\t\tif ( getModuleKey( splitModuleKey( key ).name ) !== key ) {\n\t\t\t\t\tthis.stats.expired++;\n\t\t\t\t\tdelete this.items[ key ];\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Clear the entire module store right now.\n\t\t */\n\t\tclear: function () {\n\t\t\tthis.items = {};\n\t\t\ttry {\n\t\t\t\tlocalStorage.removeItem( this.key );\n\t\t\t} catch ( e ) {}\n\t\t},\n\n\t\t/**\n\t\t * Request a sync of the in-memory store back to persisted localStorage.\n\t\t *\n\t\t * This function debounces updates. The debouncing logic should account\n\t\t * for the following factors:\n\t\t *\n\t\t * - Writing to localStorage is an expensive operation that must not happen\n\t\t *   during the critical path of initialising and executing module code.\n\t\t *   Instead, it should happen at a later time after modules have been given\n\t\t *   time and priority to do their thing first.\n\t\t *\n\t\t * - This method is called from mw.loader.store.add(), which will be called\n\t\t *   hundreds of times on a typical page, including within the same call-stack\n\t\t *   and eventloop-tick. This is because responses from load.php happen in\n\t\t *   batches. As such, we want to allow all modules from the same load.php\n\t\t *   response to be written to disk with a single flush, not many.\n\t\t *\n\t\t * - Repeatedly deleting and creating timers is non-trivial.\n\t\t *\n\t\t * - localStorage is shared by all pages from the same origin, if multiple\n\t\t *   pages are loaded with different module sets, the possibility exists that\n\t\t *   modules saved by one page will be clobbered by another. The impact of\n\t\t *   this is minor, it merely causes a less efficient cache use, and the\n\t\t *   problem would be corrected by subsequent page views.\n\t\t *\n\t\t * This method is considered internal to mw.loader.store and must only\n\t\t * be called if the store is enabled.\n\t\t *\n\t\t * @private\n\t\t * @method\n\t\t */\n\t\trequestUpdate: function () {\n\t\t\t// On the first call to requestUpdate(), create a timer that\n\t\t\t// waits at least two seconds, then calls onTimeout.\n\t\t\t// The main purpose is to allow the current batch of load.php\n\t\t\t// responses to complete before we do anything. This batch can\n\t\t\t// trigger many hundreds of calls to requestUpdate().\n\t\t\tif ( !hasPendingFlush ) {\n\t\t\t\thasPendingFlush = setTimeout(\n\t\t\t\t\t// Defer the actual write via requestIdleCallback\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tmw.requestIdleCallback( flushWrites );\n\t\t\t\t\t},\n\t\t\t\t\t2000\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t};\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/startup/mediawiki.requestIdleCallback.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/startup/profiler.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/startup/startup.js","messages":[],"suppressedMessages":[{"ruleId":"no-implicit-globals","severity":2,"message":"Unexpected function declaration in the global scope, wrap in an IIFE for a local variable, assign as global property for a global variable.","line":27,"column":1,"nodeType":"FunctionDeclaration","messageId":"globalNonLexicalBinding","endLine":80,"endColumn":2,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-promise-prototype-finally","severity":2,"message":"ES2018 'Promise.prototype.finally' method is forbidden.","line":53,"column":36,"nodeType":"MemberExpression","messageId":"forbidden","endLine":53,"endColumn":66,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"dot-notation","severity":2,"message":"[\"finally\"] is better written in dot notation.","line":53,"column":55,"nodeType":"Literal","messageId":"useDot","endLine":53,"endColumn":64,"fix":{"range":[1802,1815],"text":".finally"},"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-new","severity":2,"message":"Do not use 'new' for side effects.","line":73,"column":5,"nodeType":"ExpressionStatement","messageId":"noNewStatement","endLine":73,"endColumn":43,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-new-func","severity":2,"message":"The Function constructor is eval.","line":73,"column":5,"nodeType":"NewExpression","messageId":"noFunctionConstructor","endLine":73,"endColumn":42,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/vue/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/vue/composition-api.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/vue/errorLogger.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/vue/i18n.js","messages":[],"suppressedMessages":[{"ruleId":"mediawiki/msg-doc","severity":2,"message":"All possible message keys should be documented. See https://w.wiki/4r9a for details.","line":33,"column":11,"nodeType":"CallExpression","endLine":33,"endColumn":43,"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":51,"column":15,"nodeType":"CallExpression","endLine":51,"endColumn":40,"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":57,"column":15,"nodeType":"CallExpression","endLine":57,"endColumn":57,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/src/vue/index.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-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/sql/abstractSchemaChanges/patch-categorylinks-target_id.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-change_tag-ct_rc_id.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-change_tag-rename-indexes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-drop-cl_collation_ext.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-drop-page_restrictions-pr_user.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-drop-rev_page_id.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-externallinks-drop-el_to.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-externallinks-el_to_default.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-externallinks-el_to_path.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-filearchive-fa_id.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-filearchive-fa_size_to_bigint.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-image-img_size_to_bigint.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-ipblocks-ipb_id.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-ipblocks_restrictions-ir_ipb_id.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-ipblocks_restrictions-ir_value.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-iwlinks-drop-iwl_prefix_from_title.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-logging-rename-indexes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-objectcache-modtoken.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-oldimage-oi_size_to_bigint.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-oldimage-oi_timestamp.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-page-drop-page_restrictions.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-page-page_links_updated-noinfinite.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-page-rename-name_title-index.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-page_props-pp_page.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-page_restrictions-pr_page.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-pagelinks-drop-pl_title.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-pagelinks-target_id.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-recentchanges-rc_id-bigint.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-recentchanges-rc_id.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-recentchanges-rc_new_name_timestamp.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-revision-cleanup.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-revision-rename-index.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-searchindex-pk-titlelength.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-site_identifiers-rename-indexes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-sites-drop_indexes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-sites-rename-indexes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-templatelinks-drop-tl_title.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-templatelinks-target_id.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-templatelinks-tl_title-nullable.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-uploadstash-us_size_to_bigint.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-user-user_editcount.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-user-user_is_temp.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-user_autocreate_serial-uas_year.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-user_properties-rename-index.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-user_table-updates.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/abstractSchemaChanges/patch-watchlist-namespace_title-rename-index.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/sql/tables.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/.api-testing-quibble.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/CreationLegacy.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/PageHistory.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":143,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":143,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":167,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":167,"endColumn":45,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":174,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":174,"endColumn":47,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":195,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":195,"endColumn":45,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":202,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":202,"endColumn":47,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":214,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":214,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":228,"column":5,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":228,"endColumn":37,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":258,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":258,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":270,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":270,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":291,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":291,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":304,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":304,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":316,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":316,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":328,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":328,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":350,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":350,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":362,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":362,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":374,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":374,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":389,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":389,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":404,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":404,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":419,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":419,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":432,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":432,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":461,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":461,"endColumn":38,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":463,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":463,"endColumn":38,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":474,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":474,"endColumn":37,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":494,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":494,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":512,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":512,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":529,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":529,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/PageLanguageLinks.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":35,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":35,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/PageLegacy.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/PageMediaLinks.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":35,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":35,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/RevisionCompare.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":51,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":51,"endColumn":41,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/RevisionLegacy.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/Search.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":48,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":48,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":73,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":73,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":91,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":91,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":108,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":108,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":119,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":119,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":127,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":127,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":144,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":144,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":164,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":164,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":176,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":176,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":184,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":184,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":206,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":206,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":217,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":217,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":225,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":225,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":242,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":242,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":264,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":264,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":286,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":286,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/Swagger.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/Transform.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":89,"column":2,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":89,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"security/detect-non-literal-fs-filename","severity":1,"message":"Found readFileSync from package \"fs\" with non literal argument at index 0","line":1180,"column":10,"nodeType":"CallExpression","endLine":1180,"endColumn":78,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/UpdateLegacy.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/content.v1/Creation.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":83,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":83,"endColumn":40,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":105,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":105,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":129,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":129,"endColumn":40,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":139,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":139,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mocha/no-exports","severity":2,"message":"Unexpected export from a test file","line":305,"column":1,"nodeType":"AssignmentExpression","messageId":"unexpectedExport","endLine":309,"endColumn":2,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/content.v1/Page.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":100,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":100,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":115,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":115,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":171,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":171,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":185,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":185,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":282,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":282,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":295,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":295,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":319,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":319,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":345,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":345,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":438,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":438,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":453,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":453,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":470,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":470,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mocha/no-exports","severity":2,"message":"Unexpected export from a test file","line":539,"column":1,"nodeType":"AssignmentExpression","messageId":"unexpectedExport","endLine":543,"endColumn":2,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/content.v1/Revision.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":55,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":55,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":83,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":83,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":147,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":147,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mocha/no-exports","severity":2,"message":"Unexpected export from a test file","line":227,"column":1,"nodeType":"AssignmentExpression","messageId":"unexpectedExport","endLine":231,"endColumn":2,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/REST/content.v1/Update.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":77,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":77,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":98,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":98,"endColumn":40,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":108,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":108,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":135,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":135,"endColumn":40,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":143,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":143,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":169,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":169,"endColumn":37,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":198,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":198,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mocha/no-exports","severity":2,"message":"Unexpected export from a test file","line":423,"column":1,"nodeType":"AssignmentExpression","messageId":"unexpectedExport","endLine":427,"endColumn":2,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Autopatrolling.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Backlinks.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Block.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Categories.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Delete.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/DiffCompare.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Edit.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/ExternalLinks.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Links.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/ListUsers.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Move.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/NewTalkNotification.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/PageProtection.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Parse.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Patrolling.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Preferences.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/PrefixSearch.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/RecentChanges.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/ReparseDependentPages.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Revision.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Rollback.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/SiteStats.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Tag.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Undo.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/UserBlock.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/UserContribs.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/UserInfo.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/api-testing/action/Watchlist.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/.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/tests/jest/__mocks__/mediawiki.DateFormatter.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/jest.config.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/jest.setup.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.skinning.typeaheadSearch/App.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.skinning.typeaheadSearch/fetch.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.skinning.typeaheadSearch/instrumentation.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.skinning.typeaheadSearch/restSearchClient.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.skinning.typeaheadSearch/urlGenerator.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.special.block/AdditionalDetailsField.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.special.block/BlockDetailsField.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.special.block/BlockLog.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.special.block/ExpiryField.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.special.block/NamespacesField.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.special.block/ReasonField.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.special.block/SpecialBlock.setup.js","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'user_talk' is not in camel case.","line":54,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":54,"endColumn":13,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'page_ns' is not in camel case.","line":604,"column":11,"nodeType":"Identifier","messageId":"notCamelCase","endLine":604,"endColumn":18,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'page_title' is not in camel case.","line":606,"column":11,"nodeType":"Identifier","messageId":"notCamelCase","endLine":606,"endColumn":21,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":817,"column":4,"nodeType":"MemberExpression","messageId":"unexpected","endLine":817,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"warn"},"fix":{"range":[18926,18979],"text":""},"desc":"Remove the console.warn()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":826,"column":4,"nodeType":"MemberExpression","messageId":"unexpected","endLine":826,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"warn"},"fix":{"range":[19292,19337],"text":""},"desc":"Remove the console.warn()."}],"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.special.block/SpecialBlock.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.special.block/UserLookup.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.special.block/init.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.special.block/stores/block.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/jest/mediawiki.special.block/util.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/data/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/LockFileChecker/composer-testcase1.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/LockFileChecker/composer-testcase2.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/LockFileChecker/composer-testcase3.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/Message/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/Message/ru.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/MessageValue/1.43-DataMessageValue-empty.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/MessageValue/1.43-DataMessageValue-withCode.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/MessageValue/1.43-DataMessageValue-withData.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/MessageValue/1.43-DataMessageValue-withParam.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/MessageValue/1.43-ListParam-andList.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/MessageValue/1.43-ListParam-commaList.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/MessageValue/1.43-MessageValue-empty.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/MessageValue/1.43-MessageValue-withScalarParam.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/MessageValue/1.43-MessageValue-withText.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/MessageValue/1.43-ScalarParam-num.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/MessageValue/1.43-ScalarParam-plain.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/MessageValue/1.43-ScalarParam-text.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/OutputTransform/i18n/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.39-ParserOutput-binaryPageProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.39-ParserOutput-cacheTime.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.39-ParserOutput-empty.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.39-ParserOutput-extensionData.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.39-ParserOutput-pageProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.39-ParserOutput-text.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.39-ParserOutput-usedOptions.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.39-ParserOutput-withFalsyProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.39-ParserOutput-withMetadata.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.39-ParserOutput-withMetadataPost1_31.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.39-ParserOutput-withMetadataPost1_34.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-CacheTime-cacheExpiry.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-CacheTime-cacheRevisionId.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-CacheTime-cacheTime.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-CacheTime-empty.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-CacheTime-usedOptions.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-ParserOutput-binaryPageProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-ParserOutput-cacheTime.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-ParserOutput-empty.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-ParserOutput-extensionData.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-ParserOutput-pageProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-ParserOutput-text.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-ParserOutput-usedOptions.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-ParserOutput-withFalsyProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-ParserOutput-withMetadata.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-ParserOutput-withMetadataPost1_31.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-ParserOutput-withMetadataPost1_34.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.40-ParserOutput-withSections.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-CacheTime-cacheExpiry.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-CacheTime-cacheRevisionId.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-CacheTime-cacheTime.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-CacheTime-empty.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-CacheTime-usedOptions.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-ParserOutput-binaryPageProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-ParserOutput-cacheTime.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-ParserOutput-empty.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-ParserOutput-extensionData.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-ParserOutput-pageProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-ParserOutput-text.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-ParserOutput-usedOptions.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-ParserOutput-withFalsyProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-ParserOutput-withMetadata.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-ParserOutput-withMetadataPost1_31.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-ParserOutput-withMetadataPost1_34.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.42-ParserOutput-withSections.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.10-ParserOutput-codecableExtensionData.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-CacheTime-cacheExpiry.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-CacheTime-cacheRevisionId.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-CacheTime-cacheTime.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-CacheTime-empty.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-CacheTime-usedOptions.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-ParserOutput-binaryPageProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-ParserOutput-cacheTime.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-ParserOutput-codecableExtensionData.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-ParserOutput-empty.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-ParserOutput-extensionData.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-ParserOutput-pageProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-ParserOutput-text.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-ParserOutput-usedOptions.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-ParserOutput-withFalsyProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-ParserOutput-withMetadata.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-ParserOutput-withMetadataPost1_31.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-ParserOutput-withMetadataPost1_34.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.11-ParserOutput-withSections.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-CacheTime-cacheExpiry.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-CacheTime-cacheRevisionId.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-CacheTime-cacheTime.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-CacheTime-empty.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-CacheTime-usedOptions.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-ParserOutput-binaryPageProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-ParserOutput-cacheTime.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-ParserOutput-empty.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-ParserOutput-extensionData.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-ParserOutput-pageProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-ParserOutput-text.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-ParserOutput-usedOptions.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-ParserOutput-withFalsyProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-ParserOutput-withMetadata.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-ParserOutput-withMetadataPost1_31.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-ParserOutput-withMetadataPost1_34.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.43_wmf.3-ParserOutput-withSections.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-CacheTime-cacheExpiry.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-CacheTime-cacheRevisionId.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-CacheTime-cacheTime.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-CacheTime-empty.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-CacheTime-usedOptions.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-ParserOutput-binaryPageProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-ParserOutput-cacheTime.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-ParserOutput-codecableExtensionData.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-ParserOutput-empty.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-ParserOutput-extensionData.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-ParserOutput-pageProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-ParserOutput-text.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-ParserOutput-usedOptions.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-ParserOutput-withFalsyProperties.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-ParserOutput-withMetadata.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-ParserOutput-withMetadataPost1_31.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-ParserOutput-withMetadataPost1_34.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/ParserCache/1.45-ParserOutput-withSections.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/composer/composer.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/composer/installed-v2.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/db/patch-drop-ct_tag.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/db/tables.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/gitinfo/extension/gitinfo.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/gitinfo/info-testValidJsonData.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/languageConverter/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/languageConverter/conversionData.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/localisationcache/ba.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/localisationcache/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/localisationcache/ru.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/localisationcache/translation-alias/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/localisationcache/translation-alias/fr.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/localisationcache/translation-alias/nl.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/localisationcache/translation-alias/pt.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/registration/attribute.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/registration/autoload_namespaces.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/registration/bad_spdx.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/registration/bad_url.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/registration/bad_url2.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/registration/good.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/registration/good_with_license_expressions.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/registration/good_with_version.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/registration/invalid.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/registration/newer_manifest_version.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/registration/no_manifest_version.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/registration/old_manifest_version.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/resourceloader-b/script-nosemi.js","messages":[],"suppressedMessages":[{"ruleId":"semi","severity":2,"message":"Missing semicolon.","line":2,"column":9,"nodeType":"ExpressionStatement","messageId":"missingSemi","endLine":3,"endColumn":1,"fix":{"range":[29,29],"text":";"},"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/data/resourceloader/oouiimagemodule/apex/icons.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/resourceloader/oouiimagemodule/wikimediaui/icons.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/resourceloader/sample.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/resourceloader/script-comment-nonl.js","messages":[],"suppressedMessages":[{"ruleId":"semi","severity":2,"message":"Missing semicolon.","line":2,"column":9,"nodeType":"ExpressionStatement","messageId":"missingSemi","endLine":3,"endColumn":1,"fix":{"range":[29,29],"text":";"},"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/data/resourceloader/script-comment.js","messages":[],"suppressedMessages":[{"ruleId":"semi","severity":2,"message":"Missing semicolon.","line":2,"column":9,"nodeType":"ExpressionStatement","messageId":"missingSemi","endLine":3,"endColumn":1,"fix":{"range":[29,29],"text":";"},"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/data/resourceloader/script-nosemi-nonl.js","messages":[],"suppressedMessages":[{"ruleId":"semi","severity":2,"message":"Missing semicolon.","line":2,"column":9,"nodeType":"ExpressionStatement","messageId":"missingSemi","fix":{"range":[29,29],"text":";"},"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/data/resourceloader/script-nosemi.js","messages":[],"suppressedMessages":[{"ruleId":"semi","severity":2,"message":"Missing semicolon.","line":2,"column":9,"nodeType":"ExpressionStatement","messageId":"missingSemi","endLine":3,"endColumn":1,"fix":{"range":[29,29],"text":";"},"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/data/resourceloader/vue-component.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"vue/component-tags-order","replacedBy":["block-order"]},{"ruleId":"vue/no-invalid-model-keys","replacedBy":["valid-model-definition"]},{"ruleId":"vue/v-on-function-call","replacedBy":["v-on-handler-style"]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/data/rlfilepath/script.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/data/schema-maintenance/patch-drop-ct_tag.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/schema-maintenance/patch-no_change.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/data/schema-maintenance/tables.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"func-call-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-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","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/tests/phpunit/includes/libs/telemetry/expected-trace-data.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/integration/includes/Rest/Handler/SpecTestFlatRoutes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/integration/includes/Rest/Handler/SpecTestModule.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/integration/includes/Rest/Handler/SpecTestRoutes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/integration/includes/Rest/Handler/data/OpenApi-3.0.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/Rest/Module/moduleFlatRoutes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/Rest/Module/moduleTestRoutes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/Rest/testAdditionalRoutes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/Rest/testRoutes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/Settings/Source/fixtures/etcd/notadirectory.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/Settings/Source/fixtures/etcd/valid.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/Settings/Source/fixtures/settings.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/Settings/fixtures/default-schema.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/Settings/fixtures/settings-with-includes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/Settings/fixtures/settings-with-self-includes.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/Settings/fixtures/settings.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/Settings/fixtures/sites/alpha.yaml","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":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/Settings/fixtures/sites/beta.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/composer/PhpUnitSplitter/fixtures/cache-results-large.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/composer/PhpUnitSplitter/fixtures/results-cache.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/includes/tidy/.eslintrc.json","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":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"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/tests/phpunit/unit/includes/tidy/html5lib-tests.json","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":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"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/tests/phpunit/unit/tests/json/invalid1.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/tests/json/invalid2.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/tests/json/invalid3.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/tests/json/schema1.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/tests/json/schema2.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/tests/json/schema3.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/tests/json/valid1.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/phpunit/unit/tests/json/valid2.json","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":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/.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/tests/qunit/data/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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/tests/qunit/data/defineCallMwLoaderTestCallback.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/data/mediawiki.jqueryMsg.data.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"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/tests/qunit/data/mediawiki.jqueryMsg.testdata.js","messages":[],"suppressedMessages":[{"ruleId":"security/detect-non-literal-require","severity":1,"message":"Found non-literal argument in require","line":5,"column":3,"nodeType":"CallExpression","endLine":5,"endColumn":37,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/data/mediawiki.loader.getScript.example.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/data/mwLoaderTestCallback.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/data/requireCallMwLoaderTestCallback.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/data/sinonjs-local.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/data/testrunner.js","messages":[{"ruleId":"jsdoc/require-returns","severity":1,"message":"Missing JSDoc @return declaration.","line":112,"column":2,"nodeType":"Block","endLine":131,"endColumn":5}],"suppressedMessages":[{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_default'.","line":12,"column":2,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":12,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":2,"message":"'object' is defined but never used.","line":57,"column":28,"nodeType":"Identifier","messageId":"unusedVar","endLine":57,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":2,"message":"'property' is defined but never used.","line":57,"column":36,"nodeType":"Identifier","messageId":"unusedVar","endLine":57,"endColumn":44,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":2,"message":"'types' is defined but never used.","line":57,"column":46,"nodeType":"Identifier","messageId":"unusedVar","endLine":57,"endColumn":51,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":78,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":78,"endColumn":17,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"warn"},"fix":{"range":[2359,2539],"text":""},"desc":"Remove the console.warn()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":197,"column":3,"nodeType":"CallExpression","endLine":204,"endColumn":6,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":228,"column":4,"nodeType":"CallExpression","endLine":230,"endColumn":7,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"( function () {\n\t'use strict';\n\n\t// For each test that is asynchronous, allow this time to pass before\n\t// killing the test and assuming timeout failure.\n\tQUnit.config.testTimeout = 60 * 1000;\n\n\tQUnit.dump.maxDepth = QUnit.config.maxDepth = 20;\n\n\t// Reduce default animation duration from 400ms to 0ms for unit tests\n\t// eslint-disable-next-line no-underscore-dangle\n\t$.fx.speeds._default = 0;\n\n\t// Add a dropdown menu to the QUnit toolbar to only load test modules\n\t// from core or a given extension.\n\tconst values = {\n\t\t// List \"MediaWiki\" here so that it sorts first, and set a custom label\n\t\tMediaWiki: 'MediaWiki core'\n\t};\n\tfor ( const component of mw.config.get( 'wgTestModuleComponents' ) ) {\n\t\tvalues[ component ] = values[ component ] ?? component;\n\t}\n\tQUnit.config.urlConfig.push( {\n\t\tid: 'component',\n\t\tlabel: 'Component',\n\t\ttooltip: 'Only load tests from this MediaWiki component',\n\t\tvalue: values\n\t} );\n\n\t// Integrate SinonJS with QUnit\n\t//\n\t// - Add a Sinon sandbox to the test context that is automatically\n\t//   restored at the end of each test.\n\t// - Forward sinon assertions to QUnit.\n\t//\n\t// Inspired by http://sinonjs.org/releases/sinon-qunit-1.0.0.js\n\tsinon.assert.fail = function ( msg ) {\n\t\tQUnit.assert.true( false, msg );\n\t};\n\tsinon.assert.pass = function ( msg ) {\n\t\tQUnit.assert.true( true, msg );\n\t};\n\n\tfunction createStubLegacy( obj, method, fn ) {\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( typeof fn === 'function' ) {\n\t\t\t\treturn sinon.stub( obj, method ).callsFake( fn );\n\t\t\t} else {\n\t\t\t\treturn sinon.replace( obj, method, fn );\n\t\t\t}\n\t\t} else {\n\t\t\treturn sinon.stub.apply( null, arguments );\n\t\t}\n\t}\n\n\t// eslint-disable-next-line no-unused-vars\n\tfunction createSpyLegacy( object, property, types ) {\n\t\tconst spy = sinon.spy.apply( null, arguments );\n\t\tspy.reset = spy.resetHistory;\n\t\treturn spy;\n\t}\n\n\tQUnit.hooks.beforeEach( function () {\n\t\t// Sinon sandbox\n\t\tsinon.createSandbox( {\n\t\t\tinjectInto: this,\n\t\t\tproperties: [ 'spy', 'stub', 'mock', 'sandbox' ],\n\t\t\t// Don't fake timers by default\n\t\t\tuseFakeTimers: false,\n\t\t\tuseFakeServer: false\n\t\t} );\n\t\tthis.sandbox.stub = this.stub = createStubLegacy;\n\t\tthis.sandbox.spy = this.spy = createSpyLegacy;\n\t\tconst useFakeTimers = this.sandbox.useFakeTimers;\n\t\tthis.sandbox.useFakeTimers = function ( now ) {\n\t\t\tif ( arguments.length > 1 ) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn( new Error( 'Use of `sinon.useFakeTimers(now, prop)` is deprecated, use `sinon.useFakeTimers(now)` or `sinon.useFakeTimers( { now, toFake } )` instead (T239271).' ) );\n\t\t\t\treturn useFakeTimers( {\n\t\t\t\t\tnow: now,\n\t\t\t\t\ttoFake: [].slice.call( arguments, 1 )\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\treturn useFakeTimers.apply( null, arguments );\n\t\t\t}\n\t\t};\n\t} );\n\tQUnit.hooks.afterEach( function () {\n\t\tsinon.verifyAndRestore();\n\t\tthis.sandbox.verifyAndRestore();\n\t} );\n\n\tconst deepClone = typeof structuredClone === 'function' ? structuredClone : function ( obj ) {\n\t\treturn $.extend( /* deep */ true, {}, obj );\n\t};\n\n\tconst liveConfig = mw.config.values;\n\tconst liveMessages = mw.messages.values;\n\tconst liveWarnFn = mw.log.warn;\n\tconst liveErrorFn = mw.log.error;\n\tconst noopFn = function () {};\n\n\tfunction suppressWarnings() {\n\t\tmw.log.warn = mw.log.error = noopFn;\n\t}\n\n\tfunction restoreWarnings() {\n\t\tmw.log.warn = liveWarnFn;\n\t\tmw.log.error = liveErrorFn;\n\t}\n\n\t/**\n\t * Ensure mw.config and other `mw` singleton state is prestine for each test.\n\t *\n\t * Example:\n\t *\n\t *     QUnit.module('mw.myModule', QUnit.newMwEnvironment() );\n\t *\n\t *     QUnit.module('mw.myModule', QUnit.newMwEnvironment( {\n\t *         config: {\n\t *             wgServer: 'https://example.org'\n\t *         },\n\t *         messages: {\n\t *             'monday-short': 'Monday'\n\t *         }\n\t *     } );\n\t *\n\t * @param {Object} [localEnv]\n\t * @param {Object} [localEnv.config]\n\t * @param {Object} [localEnv.messages]\n\t */\n\tQUnit.newMwEnvironment = function newMwEnvironment( localEnv ) {\n\t\tlocalEnv = localEnv || {};\n\n\t\tconst orgBeforeEach = localEnv.beforeEach;\n\t\tconst orgAfterEach = localEnv.afterEach;\n\n\t\tlocalEnv.beforeEach = function () {\n\t\t\tmw.config.values = deepClone( liveConfig );\n\t\t\tif ( localEnv.config ) {\n\t\t\t\tmw.config.set( localEnv.config );\n\t\t\t}\n\n\t\t\t// Start with a clean message store.\n\t\t\t// Optimization: Use fast empty object instead of deep clone to preserve\n\t\t\t// server response (on mediawiki-wmf-quibble with 2000 tests, reduces\n\t\t\t// newMwEnvironment_beforeEach from 3.7s to 0.7s). ResourceLoader runs\n\t\t\t// tests with lang=qqx so tests shouldn't rely on these anyway.\n\t\t\tmw.messages.values = {};\n\t\t\tif ( localEnv.messages ) {\n\t\t\t\tmw.messages.set( localEnv.messages );\n\t\t\t}\n\n\t\t\tthis.suppressWarnings = suppressWarnings;\n\t\t\tthis.restoreWarnings = restoreWarnings;\n\n\t\t\tif ( orgBeforeEach ) {\n\t\t\t\treturn orgBeforeEach.apply( this, arguments );\n\t\t\t}\n\t\t};\n\t\tlocalEnv.afterEach = function () {\n\t\t\tlet ret;\n\t\t\tif ( orgAfterEach ) {\n\t\t\t\tret = orgAfterEach.apply( this, arguments );\n\t\t\t}\n\n\t\t\t// For convenience and to avoid leakage, always restore after each test.\n\t\t\t// Restoring earlier is allowed.\n\t\t\trestoreWarnings();\n\n\t\t\tmw.config.values = liveConfig;\n\t\t\tmw.messages.values = liveMessages;\n\n\t\t\t// Stop animations to ensure a clean start for the next test\n\t\t\t$.timers = [];\n\t\t\t$.fx.stop();\n\n\t\t\treturn ret;\n\t\t};\n\t\treturn localEnv;\n\t};\n\n\t/**\n\t * Wait for multiple promises to have finished.\n\t *\n\t * This differs from `$.when`, which stops as soon as one fails,\n\t * which makes sense in a production context, but not in a test\n\t * where we really do need to wait until all are finished before\n\t * moving on.\n\t *\n\t * @return {jQuery.Promise}\n\t */\n\tQUnit.whenPromisesComplete = function () {\n\t\tconst altPromises = [];\n\n\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t$.each( arguments, ( i, arg ) => {\n\t\t\tconst alt = $.Deferred();\n\t\t\taltPromises.push( alt );\n\n\t\t\t// Whether this one fails or not, forwards it to\n\t\t\t// the 'done' (resolve) callback of the alternative promise.\n\t\t\targ.always( alt.resolve );\n\t\t} );\n\n\t\treturn $.when( ...altPromises );\n\t};\n\n\t/**\n\t * Recursively convert a node to a plain object representing its structure.\n\t * Only considers attributes and contents (elements and text nodes).\n\t * Attribute values are compared strictly and not normalised.\n\t *\n\t * @param {Node} node\n\t * @return {Object|string} Plain JavaScript value representing the node.\n\t */\n\tfunction getDomStructure( node ) {\n\t\tif ( node.nodeType === Node.ELEMENT_NODE ) {\n\t\t\tconst processedChildren = [];\n\t\t\t$( node ).contents().each( ( i, el ) => {\n\t\t\t\tif ( el.nodeType === Node.ELEMENT_NODE || el.nodeType === Node.TEXT_NODE ) {\n\t\t\t\t\tprocessedChildren.push( getDomStructure( el ) );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tconst attribs = {};\n\t\t\t// eslint-disable-next-line no-jquery/no-each-util\n\t\t\t$.each( node.attributes, ( i, attrib ) => {\n\t\t\t\tattribs[ attrib.name ] = attrib.value;\n\t\t\t} );\n\n\t\t\treturn {\n\t\t\t\ttagName: node.tagName,\n\t\t\t\tattributes: attribs,\n\t\t\t\tcontents: processedChildren\n\t\t\t};\n\t\t} else {\n\t\t\t// Should be text node\n\t\t\treturn node.textContent;\n\t\t}\n\t}\n\n\t/**\n\t * Get structure of node for this HTML.\n\t *\n\t * @param {string} html HTML markup for one or more nodes.\n\t * @return {Object}\n\t */\n\tfunction getHtmlStructure( html ) {\n\t\tconst el = $( '<div>' ).append( html )[ 0 ];\n\t\treturn getDomStructure( el );\n\t}\n\n\tconst addons = {\n\n\t\t/**\n\t\t * Assert numerical value less than X\n\t\t *\n\t\t * @param {Mixed} actual\n\t\t * @param {number} expected\n\t\t * @param {string} [message]\n\t\t */\n\t\tlt: function ( actual, expected, message ) {\n\t\t\tthis.pushResult( {\n\t\t\t\tresult: actual < expected,\n\t\t\t\tactual: actual,\n\t\t\t\texpected: 'less than ' + expected,\n\t\t\t\tmessage: message\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Assert numerical value less than or equal to X\n\t\t *\n\t\t * @param {Mixed} actual\n\t\t * @param {number} expected\n\t\t * @param {string} [message]\n\t\t */\n\t\tltOrEq: function ( actual, expected, message ) {\n\t\t\tthis.pushResult( {\n\t\t\t\tresult: actual <= expected,\n\t\t\t\tactual: actual,\n\t\t\t\texpected: 'less than or equal to ' + expected,\n\t\t\t\tmessage: message\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Assert numerical value greater than X\n\t\t *\n\t\t * @param {Mixed} actual\n\t\t * @param {number} expected\n\t\t * @param {string} [message]\n\t\t */\n\t\tgt: function ( actual, expected, message ) {\n\t\t\tthis.pushResult( {\n\t\t\t\tresult: actual > expected,\n\t\t\t\tactual: actual,\n\t\t\t\texpected: 'greater than ' + expected,\n\t\t\t\tmessage: message\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Assert numerical value greater than or equal to X\n\t\t *\n\t\t * @param {Mixed} actual\n\t\t * @param {number} expected\n\t\t * @param {string} [message]\n\t\t */\n\t\tgtOrEq: function ( actual, expected, message ) {\n\t\t\tthis.pushResult( {\n\t\t\t\tresult: actual >= true,\n\t\t\t\tactual: actual,\n\t\t\t\texpected: 'greater than or equal to ' + expected,\n\t\t\t\tmessage: message\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Asserts that two DOM nodes are structurally equivalent.\n\t\t *\n\t\t * @param {HTMLElement} actual\n\t\t * @param {Object} expectedStruct\n\t\t * @param {string} message Assertion message.\n\t\t */\n\t\tdomEqual: function ( actual, expectedStruct, message ) {\n\t\t\tconst actualStruct = getDomStructure( actual );\n\t\t\tthis.pushResult( {\n\t\t\t\tresult: QUnit.equiv( actualStruct, expectedStruct ),\n\t\t\t\tactual: actualStruct,\n\t\t\t\texpected: expectedStruct,\n\t\t\t\tmessage: message\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Asserts that two HTML strings are structurally equivalent.\n\t\t *\n\t\t * @param {string} actualHtml Actual HTML markup.\n\t\t * @param {string} expectedHtml Expected HTML markup\n\t\t * @param {string} message Assertion message.\n\t\t */\n\t\thtmlEqual: function ( actualHtml, expectedHtml, message ) {\n\t\t\tconst actual = getHtmlStructure( actualHtml ),\n\t\t\t\texpected = getHtmlStructure( expectedHtml );\n\t\t\tthis.pushResult( {\n\t\t\t\tresult: QUnit.equiv( actual, expected ),\n\t\t\t\tactual: actual,\n\t\t\t\texpected: expected,\n\t\t\t\tmessage: message\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Asserts that two HTML strings are not structurally equivalent.\n\t\t *\n\t\t * @param {string} actualHtml Actual HTML markup.\n\t\t * @param {string} expectedHtml Expected HTML markup.\n\t\t * @param {string} message Assertion message.\n\t\t */\n\t\tnotHtmlEqual: function ( actualHtml, expectedHtml, message ) {\n\t\t\tconst actual = getHtmlStructure( actualHtml ),\n\t\t\t\texpected = getHtmlStructure( expectedHtml );\n\n\t\t\tthis.pushResult( {\n\t\t\t\tresult: !QUnit.equiv( actual, expected ),\n\t\t\t\tactual: actual,\n\t\t\t\texpected: expected,\n\t\t\t\tmessage: message,\n\t\t\t\tnegative: true\n\t\t\t} );\n\t\t}\n\t};\n\n\tObject.assign( QUnit.assert, addons );\n\n\tQUnit.begin( () => {\n\t\t// Run a few quick environment checks to make sure the above is all working correctly.\n\t\t// We run this as a plugin callback with QUnit.onUncaughtException() instead of as\n\t\t// a normal QUnit.module() or QUnit.test() because:\n\t\t//\n\t\t// 1. This way it always runs first, instead of out of order when using `seed`,\n\t\t//    or when reloading which runs previously failed tests first.\n\t\t// 2. Reduce noise in the output.\n\t\t// 3. Makes it actually run instead of skipped when selecting a single module,\n\t\t//    or re-running a single test.\n\t\tconst issues = [];\n\t\tfunction ensure( ok, issue ) {\n\t\t\tif ( !ok ) {\n\t\t\t\tissues.push( issue );\n\t\t\t}\n\t\t}\n\t\tconst env = QUnit.newMwEnvironment( {\n\t\t\tbeforeEach: function () {\n\t\t\t\tthis.mwHtmlLive = mw.html;\n\t\t\t\tmw.html = {\n\t\t\t\t\tescape: function () {\n\t\t\t\t\t\treturn 'mocked';\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\t\t\tafterEach: function () {\n\t\t\t\tmw.html = this.mwHtmlLive;\n\t\t\t},\n\t\t\tconfig: {\n\t\t\t\ttestVar: 'foo'\n\t\t\t},\n\t\t\tmessages: {\n\t\t\t\ttestMsg: 'Foo.'\n\t\t\t}\n\t\t} );\n\n\t\tenv.beforeEach();\n\t\tensure( mw.html.escape( 'foo' ) === 'mocked', 'newMwEnvironment did not call beforeEach()' );\n\t\tensure( mw.config.get( 'testVar' ) === 'foo', 'newMwEnvironment did not apply config' );\n\t\tensure( mw.messages.get( 'testMsg' ) === 'Foo.', 'newMwEnvironment did not apply messages' );\n\n\t\tmw.config.set( 'testVar', 'bar' );\n\t\tmw.messages.set( 'testMsg', 'Bar.' );\n\t\tenv.afterEach();\n\t\tenv.beforeEach();\n\t\tensure( mw.config.get( 'testVar' ) === 'foo', 'newMwEnvironment failed to restore config' );\n\t\tensure( mw.messages.get( 'testMsg' ) === 'Foo.', 'newMwEnvironment failed to restore messages' );\n\n\t\tenv.afterEach();\n\t\tensure( mw.html.escape( '<' ) === '&lt;', 'newMwEnvironment did not call afterEach()' );\n\t\tensure( mw.config.get( 'testVar' ) === null, 'newMwEnvironment leaks config' );\n\t\tensure( mw.messages.get( 'testMsg' ) === null, 'newMwEnvironment leaks messages' );\n\n\t\tmw.loader.getModuleNames().forEach( ( name ) => {\n\t\t\tconst state = mw.loader.getState( name );\n\t\t\tif ( state === 'error' ) {\n\t\t\t\tissues.push( `Module \"${ name }\" in error state` );\n\t\t\t} else if ( state === 'missing' ) {\n\t\t\t\tissues.push( `Missing \"${ name }\" module dependency` );\n\t\t\t}\n\t\t} );\n\n\t\tif ( issues.length ) {\n\t\t\tQUnit.onUncaughtException( 'testrunner.js found the following issues:\\n * ' + issues.join( '\\n * ' ) );\n\t\t}\n\t} );\n}() );\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/index.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/jquery.highlightText.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/jquery.lengthLimit.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/jquery.makeCollapsible.test.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":214,"column":16,"nodeType":"CallExpression","endLine":214,"endColumn":57,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":223,"column":16,"nodeType":"CallExpression","endLine":223,"endColumn":55,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":426,"column":17,"nodeType":"CallExpression","endLine":426,"endColumn":57,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":427,"column":18,"nodeType":"CallExpression","endLine":427,"endColumn":58,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":428,"column":17,"nodeType":"CallExpression","endLine":428,"endColumn":111,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":429,"column":18,"nodeType":"CallExpression","endLine":429,"endColumn":112,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":460,"column":16,"nodeType":"CallExpression","endLine":460,"endColumn":66,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":461,"column":16,"nodeType":"CallExpression","endLine":461,"endColumn":66,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":463,"column":17,"nodeType":"CallExpression","endLine":463,"endColumn":61,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":464,"column":18,"nodeType":"CallExpression","endLine":464,"endColumn":62,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":465,"column":17,"nodeType":"CallExpression","endLine":465,"endColumn":75,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":466,"column":18,"nodeType":"CallExpression","endLine":466,"endColumn":76,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":497,"column":16,"nodeType":"CallExpression","endLine":497,"endColumn":55,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":502,"column":17,"nodeType":"CallExpression","endLine":502,"endColumn":56,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/jquery.tablesorter.parsers.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/jquery.tablesorter.test.js","messages":[],"suppressedMessages":[{"ruleId":"no-loop-func","severity":2,"message":"Function declared in a loop contains unsafe references to variable(s) '$tr'.","line":54,"column":23,"nodeType":"ArrowFunctionExpression","messageId":"unsafeRefs","endLine":57,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":431,"column":4,"nodeType":"CallExpression","endLine":431,"endColumn":36,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":431,"column":40,"nodeType":"CallExpression","endLine":431,"endColumn":74,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-sizzle","severity":2,"message":"Positional selector extensions are not allowed","line":608,"column":4,"nodeType":"CallExpression","endLine":608,"endColumn":38,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/jquery.textSelection.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.DateFormatter/DateFormatter.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.ForeignApi/mediawiki.ForeignApi.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.ForeignApi/mediawiki.ForeignRest.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.String.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.Title.test.js","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'user_talk' is not in camel case.","line":109,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":109,"endColumn":14,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'wikipedia_talk' is not in camel case.","line":111,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":111,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'file_talk' is not in camel case.","line":113,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":113,"endColumn":14,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'mediawiki_talk' is not in camel case.","line":115,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":115,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'template_talk' is not in camel case.","line":117,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":117,"endColumn":18,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'help_talk' is not in camel case.","line":119,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":119,"endColumn":14,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'category_talk' is not in camel case.","line":121,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":121,"endColumn":18,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'image_talk' is not in camel case.","line":123,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":123,"endColumn":15,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'project_talk' is not in camel case.","line":125,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":125,"endColumn":17,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'antarctic_waterfowl' is not in camel case.","line":128,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":128,"endColumn":24,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.Uri.test.js","messages":[],"suppressedMessages":[{"ruleId":"no-sparse-arrays","severity":2,"message":"Unexpected comma in middle of array.","line":258,"column":35,"nodeType":"ArrayExpression","messageId":"unexpectedSparseArray","endLine":258,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.api/mediawiki.api.category.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.api/mediawiki.api.edit.test.js","messages":[],"suppressedMessages":[{"ruleId":"unicorn/no-useless-promise-resolve-reject","severity":2,"message":"Prefer `return value` over `return Promise.resolve(value)`.","line":113,"column":72,"nodeType":"MemberExpression","messageId":"resolve","endLine":113,"endColumn":87,"fix":{"range":[3399,3464],"text":"revision.content.replace( 'Async', 'Promise' )"},"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.api/mediawiki.api.messages.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.api/mediawiki.api.options.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.api/mediawiki.api.parse.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.api/mediawiki.api.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.api/mediawiki.api.upload.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.api/mediawiki.api.watch.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.api/mediawiki.rest.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.base/errorLogger.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.base/html.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.base/mediawiki.base.test.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-vars","severity":2,"message":"'one' is defined but never used.","line":26,"column":45,"nodeType":"Identifier","messageId":"unusedVar","endLine":26,"endColumn":48,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":2,"message":"'two' is defined but never used.","line":26,"column":50,"nodeType":"Identifier","messageId":"unusedVar","endLine":26,"endColumn":53,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.base/track.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.cldr.test.js","messages":[],"suppressedMessages":[{"ruleId":"no-jquery/no-each-util","severity":2,"message":"Prefer Array#forEach to $.each","line":78,"column":2,"nodeType":"CallExpression","endLine":82,"endColumn":5,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.cookie.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.deflate.test.js","messages":[],"suppressedMessages":[{"ruleId":"qunit/no-async-in-loops","severity":2,"message":"Unexpected undefined.async() in for-of loop.","line":69,"column":18,"nodeType":"CallExpression","messageId":"unexpectedAsyncInLoop","endLine":69,"endColumn":32,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.experiments.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.inspect.test.js","messages":[],"suppressedMessages":[{"ruleId":"no-eval","severity":2,"message":"eval can be harmful.","line":6,"column":19,"nodeType":"CallExpression","messageId":"unexpected","endLine":6,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.jqueryMsg.test.js","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'template_talk' is not in camel case.","line":66,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":66,"endColumn":18,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'dyskusja_szablonu' is not in camel case.","line":69,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":69,"endColumn":22,"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":837,"column":20,"nodeType":"CallExpression","endLine":837,"endColumn":37,"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":1321,"column":5,"nodeType":"CallExpression","endLine":1321,"endColumn":57,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-script-url","severity":2,"message":"Script URL is a form of eval.","line":1342,"column":38,"nodeType":"Literal","messageId":"unexpectedScriptURL","endLine":1342,"endColumn":59,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.language.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.messagePoster/factory.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.rcfilters/UriProcessor.test.js","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":87,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":87,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter5' is not in camel case.","line":88,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":88,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.rcfilters/dm.FilterItem.test.js","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__conflict1' is not in camel case.","line":102,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":102,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__conflict2' is not in camel case.","line":103,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":103,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__conflict3' is not in camel case.","line":104,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":104,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__conflict1' is not in camel case.","line":111,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":111,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__conflict2' is not in camel case.","line":112,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":112,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__conflict3' is not in camel case.","line":113,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":113,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":178,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":178,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2_color' is not in camel case.","line":179,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":179,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4_color' is not in camel case.","line":181,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":181,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5_color' is not in camel case.","line":182,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":182,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6_color' is not in camel case.","line":183,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":183,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7_color' is not in camel case.","line":184,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":184,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter8_color' is not in camel case.","line":185,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":185,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter9_color' is not in camel case.","line":186,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":186,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group5__option1_color' is not in camel case.","line":190,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":190,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group5__option2_color' is not in camel case.","line":191,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":191,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group5__option3_color' is not in camel case.","line":192,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":192,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group6__group6option1_color' is not in camel case.","line":193,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":193,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group6__group6option2_color' is not in camel case.","line":194,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":194,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group6__group6option3_color' is not in camel case.","line":195,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":195,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group7__group7option1_color' is not in camel case.","line":196,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":196,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group7__group7option2_color' is not in camel case.","line":197,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":197,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group7__group7option3_color' is not in camel case.","line":198,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":198,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'namespace__0_color' is not in camel case.","line":199,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":199,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'namespace__1_color' is not in camel case.","line":200,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":200,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'namespace__2_color' is not in camel case.","line":201,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":201,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'namespace__3_color' is not in camel case.","line":202,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":202,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":205,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":205,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":206,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":206,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":207,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":207,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":208,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":208,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":209,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":209,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":210,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":210,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":211,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":211,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter8' is not in camel case.","line":212,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":212,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter9' is not in camel case.","line":213,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":213,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__option1' is not in camel case.","line":216,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":216,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__option2' is not in camel case.","line":217,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":217,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__option3' is not in camel case.","line":218,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":218,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group5__option1' is not in camel case.","line":219,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":219,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group5__option2' is not in camel case.","line":220,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":220,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group5__option3' is not in camel case.","line":221,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":221,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group6__group6option1' is not in camel case.","line":222,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":222,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group6__group6option2' is not in camel case.","line":223,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":223,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group6__group6option3' is not in camel case.","line":224,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":224,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group7__group7option1' is not in camel case.","line":225,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":225,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group7__group7option2' is not in camel case.","line":226,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":226,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group7__group7option3' is not in camel case.","line":227,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":227,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'namespace__0' is not in camel case.","line":228,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":228,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'namespace__1' is not in camel case.","line":229,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":229,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'namespace__2' is not in camel case.","line":230,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":230,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'namespace__3' is not in camel case.","line":231,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":231,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":234,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":234,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":235,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":235,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":236,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":236,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":237,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":237,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":238,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":238,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":239,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":239,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":240,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":240,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter8' is not in camel case.","line":241,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":241,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter9' is not in camel case.","line":242,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":242,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__option1' is not in camel case.","line":243,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":243,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__option2' is not in camel case.","line":244,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":244,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__option3' is not in camel case.","line":245,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":245,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group5__option1' is not in camel case.","line":246,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":246,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group5__option2' is not in camel case.","line":247,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":247,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group5__option3' is not in camel case.","line":248,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":248,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group6__group6option1' is not in camel case.","line":249,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":249,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group6__group6option2' is not in camel case.","line":250,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":250,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group6__group6option3' is not in camel case.","line":251,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":251,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group7__group7option1' is not in camel case.","line":252,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":252,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group7__group7option2' is not in camel case.","line":253,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":253,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group7__group7option3' is not in camel case.","line":254,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":254,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'namespace__0' is not in camel case.","line":255,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":255,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'namespace__1' is not in camel case.","line":256,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":256,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'namespace__2' is not in camel case.","line":257,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":257,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'namespace__3' is not in camel case.","line":258,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":258,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":297,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":297,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":298,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":298,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":299,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":299,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":304,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":304,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":305,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":305,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":306,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":306,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":354,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":354,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":366,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":366,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":369,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":369,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":375,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":375,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3_color' is not in camel case.","line":376,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":376,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":379,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":379,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":418,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":418,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":419,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":419,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":560,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":560,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":575,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":575,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":576,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":576,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":590,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":590,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":591,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":591,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":592,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":592,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":603,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":603,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter8' is not in camel case.","line":604,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":604,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter9' is not in camel case.","line":605,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":605,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":618,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":618,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter8' is not in camel case.","line":619,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":619,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter9' is not in camel case.","line":620,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":620,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":633,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":633,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter8' is not in camel case.","line":634,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":634,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter9' is not in camel case.","line":635,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":635,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__option2' is not in camel case.","line":652,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":652,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__option3' is not in camel case.","line":665,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":665,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__hidefilter1' is not in camel case.","line":736,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":736,"endColumn":26,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__hidefilter2' is not in camel case.","line":737,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":737,"endColumn":26,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__hidefilter3' is not in camel case.","line":738,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":738,"endColumn":26,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__hidefilter4' is not in camel case.","line":739,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":739,"endColumn":26,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__hidefilter5' is not in camel case.","line":740,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":740,"endColumn":26,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__hidefilter6' is not in camel case.","line":741,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":741,"endColumn":26,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":742,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":742,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter8' is not in camel case.","line":743,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":743,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter9' is not in camel case.","line":744,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":744,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__hidefilter1' is not in camel case.","line":758,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":758,"endColumn":26,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__filter10' is not in camel case.","line":769,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":769,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__filter10' is not in camel case.","line":778,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":778,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__filter11' is not in camel case.","line":779,"column":7,"nodeType":"Identifier","messageId":"notCamelCase","endLine":779,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":832,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":832,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":833,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":833,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":834,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":834,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":846,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":846,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":847,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":847,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":848,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":848,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":878,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":878,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":879,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":879,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":880,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":880,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":897,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":897,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter8' is not in camel case.","line":898,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":898,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter9' is not in camel case.","line":899,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":899,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":912,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":912,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter8' is not in camel case.","line":913,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":913,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter9' is not in camel case.","line":914,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":914,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":927,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":927,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter8' is not in camel case.","line":928,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":928,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter9' is not in camel case.","line":929,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":929,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":942,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":942,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter8' is not in camel case.","line":943,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":943,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter9' is not in camel case.","line":944,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":944,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter7' is not in camel case.","line":957,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":957,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter8' is not in camel case.","line":958,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":958,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter9' is not in camel case.","line":959,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":959,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__option1' is not in camel case.","line":972,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":972,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__option2' is not in camel case.","line":973,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":973,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group4__option2' is not in camel case.","line":1001,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1001,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1038,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1038,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1045,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1045,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1046,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1046,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1047,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1047,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":1049,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1049,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":1050,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1050,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1051,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1051,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1058,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1058,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1064,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1064,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1065,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1065,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1066,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1066,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1068,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1068,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1075,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1075,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1081,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1081,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1082,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1082,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1084,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1084,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1090,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1090,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1116,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1116,"endColumn":21,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1117,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1117,"endColumn":21,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1118,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1118,"endColumn":21,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":1119,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1119,"endColumn":21,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":1120,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1120,"endColumn":21,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1121,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1121,"endColumn":21,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1125,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1125,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1126,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1126,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1127,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1127,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":1128,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1128,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":1129,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1129,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1130,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1130,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1144,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1144,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1145,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1145,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":1146,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1146,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":1147,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1147,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1159,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1159,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":1166,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1166,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":1167,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1167,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1168,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1168,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1175,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1175,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":1182,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1182,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":1183,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1183,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1184,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1184,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1191,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1191,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":1192,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1192,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1214,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1214,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1222,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1222,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":1223,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1223,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":1224,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1224,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1225,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1225,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1227,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1227,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1228,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1228,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":1235,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1235,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1242,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1242,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":1243,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1243,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":1244,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1244,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1245,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1245,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1247,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1247,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1248,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1248,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1259,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1259,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1266,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1266,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1267,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1267,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1269,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1269,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1276,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1276,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1284,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1284,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1285,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1285,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1291,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1291,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1294,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1294,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":1301,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1301,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1309,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1309,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1310,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1310,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":1311,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1311,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1318,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1318,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1328,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1328,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1336,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1336,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1337,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1337,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":1338,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1338,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1345,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1345,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1353,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1353,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1354,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1354,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5' is not in camel case.","line":1355,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1355,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":1356,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1356,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1358,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1358,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1359,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1359,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1371,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1371,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1379,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1379,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter6' is not in camel case.","line":1380,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1380,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1382,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1382,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1388,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1388,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter2' is not in camel case.","line":1396,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1396,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":1398,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1398,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1516,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1516,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":1517,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1517,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter5' is not in camel case.","line":1518,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1518,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter5' is not in camel case.","line":1526,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1526,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter6' is not in camel case.","line":1527,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1527,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__filter5' is not in camel case.","line":1541,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1541,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":1546,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":1546,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.rcfilters/dm.SavedQueriesModel.test.js","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":70,"column":8,"nodeType":"Identifier","messageId":"notCamelCase","endLine":70,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter4' is not in camel case.","line":71,"column":8,"nodeType":"Identifier","messageId":"notCamelCase","endLine":71,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__group3option1' is not in camel case.","line":72,"column":8,"nodeType":"Identifier","messageId":"notCamelCase","endLine":72,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1' is not in camel case.","line":76,"column":8,"nodeType":"Identifier","messageId":"notCamelCase","endLine":76,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__group3option1' is not in camel case.","line":77,"column":8,"nodeType":"Identifier","messageId":"notCamelCase","endLine":77,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":99,"column":8,"nodeType":"Identifier","messageId":"notCamelCase","endLine":99,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__group3option1_color' is not in camel case.","line":100,"column":8,"nodeType":"Identifier","messageId":"notCamelCase","endLine":100,"endColumn":35,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3_color' is not in camel case.","line":128,"column":9,"nodeType":"Identifier","messageId":"notCamelCase","endLine":128,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5_color' is not in camel case.","line":188,"column":72,"nodeType":"Identifier","messageId":"notCamelCase","endLine":188,"endColumn":93,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group2__filter5_color' is not in camel case.","line":189,"column":77,"nodeType":"Identifier","messageId":"notCamelCase","endLine":189,"endColumn":98,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":228,"column":8,"nodeType":"Identifier","messageId":"notCamelCase","endLine":228,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3_color' is not in camel case.","line":229,"column":8,"nodeType":"Identifier","messageId":"notCamelCase","endLine":229,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":243,"column":10,"nodeType":"Identifier","messageId":"notCamelCase","endLine":243,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3_color' is not in camel case.","line":244,"column":10,"nodeType":"Identifier","messageId":"notCamelCase","endLine":244,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":262,"column":8,"nodeType":"Identifier","messageId":"notCamelCase","endLine":262,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":276,"column":10,"nodeType":"Identifier","messageId":"notCamelCase","endLine":276,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":332,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":332,"endColumn":26,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__group3option1_color' is not in camel case.","line":333,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":333,"endColumn":32,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":363,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":363,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__group3option1_color' is not in camel case.","line":364,"column":6,"nodeType":"Identifier","messageId":"notCamelCase","endLine":364,"endColumn":33,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":417,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":417,"endColumn":26,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__group3option1_color' is not in camel case.","line":418,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":418,"endColumn":32,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter1_color' is not in camel case.","line":433,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":433,"endColumn":26,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group3__group3option1_color' is not in camel case.","line":434,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":434,"endColumn":32,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":489,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":489,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'invertGroup__invert' is not in camel case.","line":490,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":490,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":518,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":518,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'invertGroup__invert' is not in camel case.","line":519,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":519,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'namespace__1' is not in camel case.","line":520,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":520,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":550,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":550,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'invertTagsGroup__inverttags' is not in camel case.","line":551,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":551,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'group1__filter3' is not in camel case.","line":579,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":579,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'invertTagsGroup__inverttags' is not in camel case.","line":580,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":580,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'tagfilter__foo' is not in camel case.","line":581,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":581,"endColumn":18,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.rcfilters/dm.SavedQueryItemModel.test.js","messages":[],"suppressedMessages":[{"ruleId":"camelcase","severity":2,"message":"Identifier 'param1_color' is not in camel case.","line":11,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":11,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"camelcase","severity":2,"message":"Identifier 'param2_color' is not in camel case.","line":12,"column":4,"nodeType":"Identifier","messageId":"notCamelCase","endLine":12,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.router.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.special.block/AdditionalDetailsField.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.storage.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.template.mustache.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.template.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.toc.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.user.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.util/accessKeyLabel.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.util/util.test.js","messages":[],"suppressedMessages":[{"ruleId":"no-sparse-arrays","severity":2,"message":"Unexpected comma in middle of array.","line":248,"column":27,"nodeType":"ArrayExpression","messageId":"unexpectedSparseArray","endLine":248,"endColumn":41,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.visibleTimeout.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.widgets/MediaSearch/mediawiki.widgets.APIResultsQueue.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.widgets/NamespaceInput/mediawiki.widgets.NamespaceInputWidget.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.widgets/Table/mediawiki.widgets.TableWidget.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/mediawiki.widgets/UserInputWidget/mediawiki.widgets.UserInputWidget.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/startup/clientprefs.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/startup/jscompat.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/startup/mediawiki.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/startup/mw.Map.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/startup/mw.loader.test.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":81,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":81,"endColumn":17,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"mediawiki/class-doc","severity":2,"message":"All possible CSS classes should be documented. See https://w.wiki/PS2 for details.","line":83,"column":4,"nodeType":"AssignmentExpression","endLine":83,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-self-assign","severity":2,"message":"'el.className' is assigned to itself.","line":83,"column":19,"nodeType":"MemberExpression","messageId":"selfAssignment","endLine":83,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":85,"column":4,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":85,"endColumn":42,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/startup/mw.requestIdleCallback.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/qunit/resources/testrunner.test.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/.eslintrc.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/docs/Create_a_simple_test/pageobjects/specialpages.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/docs/Create_a_simple_test/specs/specialpages.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/docs/Debug_with_Visual_Studio_Code/launch.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/docs/Page_object_pattern/specs/login.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/docs/Stack/pageobjects/main.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/docs/Stack/pageobjects/page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/docs/Stack/specs/expect.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/docs/Stack/specs/mocha.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/docs/Stack/specs/pageobject.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/docs/Stack/webdriverio.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/docs/Use_MediaWiki_API/specs/api.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/block.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/delete.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/edit.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/history.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/protect.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/recentchanges.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/restore.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/undo.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/watchable.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/pageobjects/watchlist.page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/specs/page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/specs/recentchanges.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/specs/user.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/wdio-mediawiki/Api.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/wdio-mediawiki/BlankPage.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/wdio-mediawiki/CreateAccountPage.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/wdio-mediawiki/LoginPage.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/wdio-mediawiki/Page.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/wdio-mediawiki/RunJobs.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/wdio-mediawiki/Util.js","messages":[{"ruleId":"max-len","severity":1,"message":"This line has a length of 107. Maximum allowed is 100.","line":35,"column":1,"nodeType":"Program","messageId":"max","endLine":35,"endColumn":93}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"'use strict';\n\nmodule.exports = {\n\t/**\n\t * Generate a random number string with some additional extended ASCII.\n\t *\n\t * @param {string} prefix A prefix to apply to the generated output.\n\t * @return {string}\n\t */\n\tgetTestString( prefix = '' ) {\n\t\treturn prefix + Math.random().toString() + '-Iñtërnâtiônàlizætiøn';\n\t},\n\n\t/**\n\t * Check if a page is (or, if it doesn't yet exist, would be by default) a wikitext content\n\t * object, as opposed to e.g. a JSON blob or a content model provided by an extension. This\n\t * is useful for when a target of a test requires wikitext behaviour, such as testing for\n\t * having a talk page, being subject to redirects, being editable, or similar concerns.\n\t *\n\t * @param {string} target The name of the page in question.\n\t * @return {Promise<boolean>} True if the target is not wikitext.\n\t */\n\tasync isTargetNotWikitext( target ) {\n\t\t// First, make sure that the 'mw' object should exist\n\t\tawait this.waitForModuleState( 'mediawiki.base' );\n\n\t\t// Then, ask the API for the basic 'info' data about the given page\n\t\treturn browser.executeAsync( ( target_, done ) => {\n\t\t\tmw.loader.using( 'mediawiki.api' ).then( () => {\n\t\t\t\tconst api = new mw.Api();\n\t\t\t\tapi.get( {\n\t\t\t\t\taction: 'query', prop: 'info', titles: target_,\n\t\t\t\t\tformat: 'json', formatversion: 2\n\t\t\t\t} ).then( ( result ) => {\n\t\t\t\t\t// Finally, return whether said page is wikitext (or would be, if it doesn't yet exist)\n\t\t\t\t\tdone( result.query.pages[ 0 ].contentmodel !== 'wikitext' );\n\t\t\t\t} );\n\t\t\t} );\n\t\t}, target );\n\t},\n\n\t/**\n\t * Wait for a given module to reach a specific state\n\t *\n\t * @param {string} moduleName The name of the module to wait for\n\t * @param {string} moduleStatus 'registered', 'loaded', 'loading', 'ready', 'error', 'missing'\n\t * @param {number} timeout The wait time in milliseconds before the wait fails\n\t */\n\tasync waitForModuleState( moduleName, moduleStatus = 'ready', timeout = 5000 ) {\n\t\tawait browser.waitUntil(\n\t\t\t() => browser.execute(\n\t\t\t\t( arg ) => typeof mw !== 'undefined' && mw.loader.getState( arg.name ) === arg.status,\n\t\t\t\t{ status: moduleStatus, name: moduleName }\n\t\t\t), {\n\t\t\t\ttimeout: timeout,\n\t\t\t\ttimeoutMsg: 'Failed to wait for ' + moduleName + ' to be ' + moduleStatus + ' after ' + timeout + ' ms.'\n\t\t\t}\n\t\t);\n\t}\n};\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/wdio-mediawiki/index.js","messages":[],"suppressedMessages":[{"ruleId":"security/detect-non-literal-fs-filename","severity":1,"message":"Found mkdir from package \"fs/promises\" with non literal argument at index 0","line":44,"column":8,"nodeType":"CallExpression","endLine":44,"endColumn":89,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/wdio-mediawiki/package.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/wdio-mediawiki/specs/BlankPage.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/wdio-mediawiki/wdio-defaults.conf.js","messages":[{"ruleId":"max-len","severity":1,"message":"This line has a length of 108. Maximum allowed is 100.","line":99,"column":1,"nodeType":"Program","messageId":"max","endLine":99,"endColumn":97}],"suppressedMessages":[{"ruleId":"n/no-process-exit","severity":2,"message":"Don't use process.exit(); throw an error instead.","line":28,"column":2,"nodeType":"CallExpression","messageId":"noProcessExit","endLine":28,"endColumn":19,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_getActiveHandles'.","line":37,"column":56,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":37,"endColumn":81,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"n/no-unsupported-features/node-builtins","severity":2,"message":"The 'dns.setDefaultResultOrder' is still an experimental feature and is not supported until Node.js 16.4.0 (backported: ^14.18.0). The configured version range is '>=16.0.0'.","line":162,"column":3,"nodeType":"MemberExpression","messageId":"not-supported-till","endLine":162,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * Base WebdriverIO configuration, meant to be imported from skins and extensions like so:\n *\n *   const { config } = require( 'wdio-mediawiki/wdio-defaults.conf.js' );\n *\n *   exports.config = { ...config,\n *     logLevel: 'info'\n *   };\n */\n\n'use strict';\n\nlet ffmpeg;\nconst fs = require( 'fs' );\nconst path = require( 'path' );\nconst logPath = process.env.LOG_DIR || path.join( process.cwd(), 'tests/selenium/log' );\nconst { makeFilenameDate, saveScreenshot, startVideo, stopVideo } = require( 'wdio-mediawiki' );\n// T355556: remove when T324766 is resolved\nconst dns = require( 'dns' );\n\nif ( !process.env.MW_SERVER || !process.env.MW_SCRIPT_PATH ) {\n\tthrow new Error( 'MW_SERVER or MW_SCRIPT_PATH not defined.\\nSee https://www.mediawiki.org/wiki/Selenium/How-to/Set_environment_variables\\n' );\n}\n\nprocess.on( 'uncaughtException', ( error ) => {\n\tconsole.error( 'Caught uncaughtException: ', error );\n\t// eslint-disable-next-line n/no-process-exit\n\tprocess.exit( 1 );\n} );\n\nprocess.on( 'unhandledRejection', ( reason, promise ) => {\n\tconsole.log( 'Unhandled Rejection at:', promise, 'reason:', reason );\n} );\n\n[ 'SIGINT', 'SIGTERM' ].forEach( ( signal ) => process.on( signal, () => {\n\t// eslint-disable-next-line no-underscore-dangle\n\tconsole.log( `Received ${ signal }. Active handles:`, process._getActiveHandles() );\n} )\n);\n\n/**\n * For more details documentation and available options:\n * - https://webdriver.io/docs/configurationfile\n * - https://webdriver.io/docs/configuration\n */\nexports.config = {\n\t// ==================\n\t// Runner Configuration\n\t// ==================\n\trunner: 'local',\n\n\t// ==================\n\t// Test Files\n\t// ==================\n\tspecs: [\n\t\t'./tests/selenium/specs/**/*.js'\n\t],\n\t// Set the waitForTimeout for all wait for commands\n\t// https://v8.webdriver.io/docs/timeouts/#waitfor-timeout\n\twaitforTimeout: 10000,\n\t// ============\n\t// Capabilities\n\t// Define the different browser configurations to use (\"capabilities\") here.\n\t// ============\n\n\tmaxInstances: 1,\n\tcapabilities: [ {\n\t\t// ======\n\t\t// Custom conf keys for MediaWiki\n\t\t//\n\t\t// Access via `browser.options.<key>`.\n\t\t// Defaults are for MediaWiki-Docker\n\t\t// ======\n\t\t'mw:user': process.env.MEDIAWIKI_USER,\n\t\t'mw:pwd': process.env.MEDIAWIKI_PASSWORD,\n\n\t\t// Setting this enables automatic screenshots for when a browser command fails\n\t\t// It is also used by afterTest for capturing screenshots.\n\t\t'mw:screenshotPath': logPath,\n\n\t\t// For Chrome/Chromium https://www.w3.org/TR/webdriver\n\t\tbrowserName: 'chrome',\n\t\t// Use correct browser and driver in CI\n\t\t...( process.env.CI && {\n\t\t\t'wdio:chromedriverOptions': {\n\t\t\t\tbinary: '/usr/bin/chromedriver'\n\t\t\t}\n\t\t} ),\n\t\t'goog:chromeOptions': {\n\t\t\t...( process.env.CI && {\n\t\t\t\tbinary: '/usr/bin/chromium'\n\t\t\t} ),\n\t\t\t// If DISPLAY is set, assume developer asked non-headless or CI with Xvfb.\n\t\t\t// Otherwise, use --headless.\n\t\t\targs: [\n\t\t\t\t// Dismissed Chrome's `Save password?` popup\n\t\t\t\t'--enable-automation',\n\t\t\t\t...( process.env.DISPLAY ? [] : [ '--headless' ] ),\n\t\t\t\t// Chrome sandbox does not work in Docker. Disable GPU to prevent crashes (T389536#10677201)\n\t\t\t\t...( fs.existsSync( '/.dockerenv' ) ? [ '--no-sandbox', '--disable-gpu', '--disable-dev-shm-usage' ] : [] ),\n\t\t\t\t// Workaround inputs not working consistently post-navigation on Chrome 90\n\t\t\t\t// https://issuetracker.google.com/issues/42322798\n\t\t\t\t'--allow-pre-commit-input'\n\t\t\t]\n\t\t}\n\t} ],\n\n\t// ===================\n\t// Test Configurations\n\t// Define all options that are relevant for the WebdriverIO instance here\n\t// ===================\n\n\t// Level of logging verbosity: trace | debug | info | warn | error | silent\n\tlogLevel: 'error',\n\t// Stop after this many failures, or 0 to run all tests before reporting failures.\n\tbail: 0,\n\t// Base for browser.url() and wdio-mediawiki/Page#openTitle()\n\tbaseUrl: process.env.MW_SERVER + process.env.MW_SCRIPT_PATH,\n\t// See also: https://webdriver.io/docs/frameworks\n\tframework: 'mocha',\n\t// See also: https://mochajs.org\n\t// The number of times to retry the entire specfile when it fails as a whole\n\tspecFileRetries: 1,\n\t// Delay in seconds between the spec file retry attempts\n\tspecFileRetriesDelay: 0,\n\t// Whether or not retried specfiles should be retried immediately or deferred to the end of the\n\t// queue\n\tspecFileRetriesDeferred: false,\n\tmochaOpts: {\n\t\tui: 'bdd',\n\t\ttimeout: process.env.DEBUG ? ( 60 * 60 * 1000 ) : ( 60 * 1000 )\n\t},\n\t// See also: https://webdriver.io/docs/dot-reporter\n\treporters: [\n\t\t// See also: https://webdriver.io/docs/spec-reporter\n\t\t'spec',\n\t\t// See also: https://webdriver.io/docs/junit-reporter\n\t\t[ 'junit', {\n\t\t\toutputDir: logPath,\n\t\t\toutputFileFormat: function () {\n\t\t\t\tconst random = Math.random().toString( 16 ).slice( 2, 10 );\n\t\t\t\treturn `WDIO.xunit-${ makeFilenameDate() }-${ random }.xml`;\n\t\t\t}\n\t\t} ]\n\t],\n\n\t// =====\n\t// Hooks\n\t// =====\n\n\t/**\n\t * Gets executed just before initializing the webdriver session and test framework.\n\t * It allows you to manipulate configurations depending on the capability or spec.\n\t *\n\t * @param {Object} config wdio configuration object\n\t * @param {Array.<Object>} capabilities list of capabilities details\n\t * @param {Array.<string>} specs List of spec file paths that are to be run\n\t */\n\t// T355556: remove when T324766 is resolved\n\tbeforeSession: function () {\n\t\t// eslint-disable-next-line n/no-unsupported-features/node-builtins\n\t\tdns.setDefaultResultOrder( 'ipv4first' );\n\t},\n\n\t/**\n\t * Executed before a Mocha test starts.\n\t *\n\t * @param {Object} test Mocha Test object\n\t */\n\tbeforeTest: function ( test ) {\n\t\tffmpeg = startVideo( ffmpeg, `${ test.parent }-${ test.title }` );\n\t},\n\n\t/**\n\t * Executed after a Mocha test ends.\n\t *\n\t * @param {Object} test Mocha Test object\n\t * @param {Object} context scope object the test was executed with\n\t * @param {Object} result hook result\n\t */\n\tafterTest: async function ( test, context, result ) {\n\t\ttry {\n\t\t\tawait saveScreenshot( `${ test.parent }-${ test.title }${ result.passed ? '' : '-failed' }` );\n\t\t} finally {\n\t\t\tstopVideo( ffmpeg );\n\t\t}\n\t}\n};\n","usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/tests/selenium/wdio.conf.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]}]

--- end ---
Disabling eslint rule 'no-mixed-spaces-and-tabs' (broken in .eslintrc.json) on .eslintrc.json
Disabling eslint rule 'yml/no-tab-indent' (broken in .eslintrc.json) on .eslintrc.json
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.0.0-rc.2',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.0.0-rc.2',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated lodash.isequal@4.5.0: This package is deprecated. Use require('node:util').isDeepStrictEqual instead.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated 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 fstream@1.0.12: This package is no longer supported.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
--- stdout ---

added 1440 packages, and audited 1441 packages in 28s

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

21 vulnerabilities (4 moderate, 17 high)

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

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

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS tests/jest/mediawiki.special.block/stores/block.test.js
PASS tests/jest/mediawiki.special.block/BlockLog.test.js
PASS tests/jest/mediawiki.special.block/UserLookup.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/restSearchClient.test.js
PASS tests/jest/mediawiki.special.block/ExpiryField.test.js
PASS tests/jest/mediawiki.special.block/util.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/fetch.test.js
PASS tests/jest/mediawiki.special.block/NamespacesField.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/instrumentation.test.js
PASS tests/jest/mediawiki.special.block/BlockDetailsField.test.js
PASS tests/jest/mediawiki.special.block/ReasonField.test.js
PASS tests/jest/mediawiki.special.block/init.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/App.test.js
PASS tests/jest/mediawiki.special.block/AdditionalDetailsField.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/urlGenerator.test.js
PASS tests/jest/mediawiki.special.block/SpecialBlock.test.js (20.94 s)

Test Suites: 16 passed, 16 total
Tests:       99 passed, 99 total
Snapshots:   1 passed, 1 total
Time:        34.636 s
Ran all test suites.
--- stdout ---

> test
> grunt lint && npm run doc && npm run jest

Running "eslint:all" (eslint) task

/src/repo/resources/src/jquery/jquery.makeCollapsible.js
  425:1  warning  Syntax error in namepath: ~'wikipage.collapsibleContent'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.action.edit/edit.js
  12:1  warning  Syntax error in namepath: ~'wikipage.editform'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.action/mediawiki.action.view.postEdit.js
  21:1  warning  Syntax error in namepath: ~'postEdit'               jsdoc/valid-types
  36:1  warning  Syntax error in namepath: ~'postEdit.afterRemoval'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.authenticationPopup/index.js
  38:1  warning  The type 'userinfo' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.base/errorLogger.js
   8:1  warning  Syntax error in namepath: ~'global.error'  jsdoc/valid-types
  22:1  warning  Syntax error in namepath: ~'error.caught'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.base/log.js
  14:1  warning  Found more than one @return declaration  jsdoc/require-returns
  14:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.base/mediawiki.base.js
  217:1  warning  The type 'mediawiki' is undefined  jsdoc/no-undefined-types
  243:1  warning  The type 'mediawiki' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.diff/inlineFormatToggle.js
  150:1  warning  Syntax error in namepath: ~'wikipage.diff.wikitextDiffBody'  jsdoc/valid-types
  162:1  warning  Syntax error in namepath: ~'wikipage.diff.diffTypeSwitch'    jsdoc/valid-types

/src/repo/resources/src/mediawiki.editRecovery/edit.js
  184:1  warning  Syntax error in namepath: ~'editRecovery.loadEnd'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.htmlform/cond-state.js
  48:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.htmlform/htmlform.js
  5:1  warning  Syntax error in namepath: ~'htmlform.enhance'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.inspect.js
   61:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
   91:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  112:2  warning  Found more than one @return declaration  jsdoc/require-returns
  112:2  warning  Found more than one @return declaration  jsdoc/require-returns-check
  121:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  152:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  164:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  175:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  203:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.jqueryMsg/mediawiki.jqueryMsg.js
  142:1  warning  Found more than one @return declaration  jsdoc/require-returns
  142:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.language.months/months.js
  44:1  warning  The type 'Months' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.notification.convertmessagebox.js
  13:1  warning  Syntax error in namepath: (require("mediawiki.notification.convertmessagebox"))  jsdoc/valid-types

/src/repo/resources/src/mediawiki.page.preview.js
  416:1  warning  Syntax error in namepath: ~'wikipage.tableOfContents'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.page.ready/ready.js
   96:1  warning  Syntax error in namepath: ~'wikipage.indicators'  jsdoc/valid-types
  116:1  warning  Syntax error in namepath: ~'wikipage.content'     jsdoc/valid-types
  137:1  warning  Syntax error in namepath: ~'wikipage.categories'  jsdoc/valid-types
  153:1  warning  Syntax error in namepath: ~'wikipage.diff'        jsdoc/valid-types
  184:1  warning  Syntax error in namepath: ~'skin.logout'          jsdoc/valid-types

/src/repo/resources/src/mediawiki.page.watch.ajax/watch-ajax.js
  128:1  warning  Syntax error in namepath: ~'wikipage.watchlistChange'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.rcfilters/Controller.js
  330:1  warning  Found more than one @return declaration                  jsdoc/require-returns
  330:1  warning  Found more than one @return declaration                  jsdoc/require-returns-check
  550:1  warning  Syntax error in namepath: ~'RcFilters.highlight.enable'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.rcfilters/dm/FilterItem.js
   81:1  warning  Found more than one @return declaration  jsdoc/require-returns
   81:1  warning  Found more than one @return declaration  jsdoc/require-returns-check
  335:1  warning  The type 'update' is undefined           jsdoc/no-undefined-types
  351:1  warning  The type 'update' is undefined           jsdoc/no-undefined-types
  366:1  warning  The type 'update' is undefined           jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.rcfilters/dm/FiltersViewModel.js
  1185:1  warning  The type 'searchChange' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.rcfilters/mw.rcfilters.js
  176:1  warning  Syntax error in namepath: ~'structuredChangeFilters.ui.initialized'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.rcfilters/ui/FilterTagMultiselectWidget.js
  408:1  warning  Syntax error in namepath: ~'RcFilters.popup.open'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.searchSuggest/searchSuggest.js
  36:1  warning  The type 'ResponseMetaData' is undefined  jsdoc/no-undefined-types
  43:1  warning  The type 'ResponseFunction' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/App.vue
  229:1  warning  The type 'AbortableSearchFetch' is undefined  jsdoc/no-undefined-types
  275:1  warning  The type 'SearchSubmitEvent' is undefined     jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/fetch.js
  21:1  warning  The type 'RequestInit' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/instrumentation.js
   2:1  warning  The type 'FetchEndEvent' is undefined         jsdoc/no-undefined-types
  16:1  warning  The type 'SuggestionClickEvent' is undefined  jsdoc/no-undefined-types
  16:1  warning  The type 'SearchSubmitEvent' is undefined     jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/restSearchClient.js
   4:1  warning  Syntax error in type: import('./urlGenerator.js').UrlGenerator  jsdoc/valid-types
  11:1  warning  The type 'RestResult' is undefined                              jsdoc/no-undefined-types
  17:1  warning  The type 'SearchResult' is undefined                            jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/urlGenerator.js
   2:1  warning  The type 'Record' is undefined        jsdoc/no-undefined-types
   9:1  warning  The type 'RestResult' is undefined    jsdoc/no-undefined-types
   9:1  warning  The type 'SearchResult' is undefined  jsdoc/no-undefined-types
  29:1  warning  The type 'RestResult' is undefined    jsdoc/no-undefined-types
  29:1  warning  The type 'SearchResult' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.special.apisandbox/ApiSandboxLayout.js
  44:1  warning  Found more than one @return declaration  jsdoc/require-returns
  44:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.special.block/init.js
  26:1  warning  Syntax error in namepath: ~'SpecialBlock.block'  jsdoc/valid-types
  36:1  warning  Syntax error in namepath: ~'SpecialBlock.form'   jsdoc/valid-types

/src/repo/resources/src/mediawiki.template.js
   26:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types
   40:1  warning  The type 'TemplateRenderFunction' is undefined   jsdoc/no-undefined-types
   45:1  warning  The type 'TemplateCompileFunction' is undefined  jsdoc/no-undefined-types
   61:1  warning  The type 'TemplateCompiler' is undefined         jsdoc/no-undefined-types
   88:1  warning  The type 'TemplateCompiler' is undefined         jsdoc/no-undefined-types
  107:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types
  125:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types
  147:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.util/util.js
  626:1  warning  Syntax error in namepath: ~'util.addPortlet'      jsdoc/valid-types
  795:1  warning  Syntax error in namepath: ~'util.addPortletLink'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.widgets.datetime/DateTimeFormatter.js
  268:1  warning  The type 'FieldSpecificationObject' is undefined  jsdoc/no-undefined-types
  632:1  warning  The type 'CalendarGridData' is undefined          jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.widgets.datetime/DiscordianDateTimeFormatter.js
  74:1  warning  The type 'FieldSpecificationObject' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.widgets.datetime/ProlepticGregorianDateTimeFormatter.js
  306:1  warning  The type 'FieldSpecificationObject' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.widgets/mw.widgets.NamespaceInputWidget.js
  50:1  warning  The type 'DropdownOptions' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/startup/mediawiki.loader.js
  61:1  warning  Syntax error in namepath: ~'resourceloader.exception'  jsdoc/valid-types

/src/repo/tests/qunit/data/testrunner.js
  112:2  warning  Missing JSDoc @return declaration  jsdoc/require-returns

/src/repo/tests/selenium/wdio-mediawiki/Util.js
  35:1  warning  This line has a length of 107. Maximum allowed is 100  max-len

/src/repo/tests/selenium/wdio-mediawiki/wdio-defaults.conf.js
  99:1  warning  This line has a length of 108. Maximum allowed is 100  max-len

✖ 86 problems (0 errors, 86 warnings)


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

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

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

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

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

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

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

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

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

Running "stylelint:resources" (stylelint) task
>> resources/src/mediawiki.skinning/content.media-dark.less
>>   32:1  ⚠  Unexpected browser feature "prefers-color-scheme" is not supported by Firefox 49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66, Chrome 49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75, Safari 10,11,12,10.1,11.1, Safari on iOS 10.0-10.2,10.3,11.0-11.2,11.3-11.4,12.0-12.1,12.2-12.5  plugin/no-unsupported-browser-features
>> 
>> ⚠ 1 problem (0 errors, 1 warning)

⚠ 1 warning

>> Linted 214 files without errors

Running "stylelint:config" (stylelint) task
>> Linted 1 files without errors

Done.

> doc
> jsdoc -c jsdoc.json


> jest
> jest --config tests/jest/jest.config.js

------------------------------------|---------|----------|---------|---------|-----------------------------------------------------------------
File                                | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                                               
------------------------------------|---------|----------|---------|---------|-----------------------------------------------------------------
All files                           |   93.18 |    90.33 |   79.38 |   93.18 |                                                                 
 mediawiki.skinning.typeaheadSearch |   83.84 |     82.5 |   62.06 |   83.84 |                                                                 
  App.vue                           |   74.91 |    66.66 |   36.36 |   74.91 | 191-202,212-225,233-259,263-271,278-280,284-287,291-292,296-300 
  fetch.js                          |     100 |     87.5 |      75 |     100 | 31                                                              
  instrumentation.js                |   82.82 |      100 |      60 |   82.82 | 4-13,18-24                                                      
  restSearchClient.js               |   90.78 |    71.42 |   83.33 |   90.78 | 103-115                                                         
  urlGenerator.js                   |     100 |      100 |     100 |     100 |                                                                 
 mediawiki.special.block            |   94.35 |    92.95 |   82.35 |   94.35 |                                                                 
  SpecialBlock.vue                  |   93.89 |    93.18 |   72.72 |   93.89 | 245-254,297-302,308-322,440-441,452-454                         
  init.js                           |     100 |      100 |     100 |     100 |                                                                 
  util.js                           |   94.64 |     91.3 |     100 |   94.64 | 82-84,86-88                                                     
 mediawiki.special.block/components |   95.08 |    92.34 |    87.8 |   95.08 |                                                                 
  AdditionalDetailsField.vue        |     100 |       80 |     100 |     100 | 68                                                              
  BlockDetailsField.vue             |     100 |      100 |     100 |     100 |                                                                 
  BlockLog.vue                      |   98.94 |      100 |   83.33 |   98.94 | 337-340,401                                                     
  BlockTypeField.vue                |   95.04 |       50 |     100 |   95.04 | 73-77                                                           
  ConfirmationDialog.vue            |   96.34 |      100 |      50 |   96.34 | 70-72                                                           
  ExpiryField.vue                   |   95.07 |    89.47 |     100 |   95.07 | 145-146,148-149,177-186,245-246                                 
  NamespacesField.vue               |   90.42 |    88.88 |   66.66 |   90.42 | 60-68                                                           
  PagesField.vue                    |   70.06 |       50 |      50 |   70.06 | 46-47,56-57,72-79,88-90,97-118,127-133                          
  ReasonField.vue                   |   97.14 |    93.75 |     100 |   97.14 | 98-101                                                          
  UserLookup.vue                    |   97.68 |    97.43 |     100 |   97.68 | 144-146,195-197,230-231                                         
  ValidatingTextInput.js            |     100 |      100 |     100 |     100 |                                                                 
 mediawiki.special.block/stores     |   95.65 |    87.64 |      90 |   95.65 |                                                                 
  block.js                          |   95.65 |    87.64 |      90 |   95.65 | 322-323,432-433,435-436,456-457,460-461,464-465,479-494         
------------------------------------|---------|----------|---------|---------|-----------------------------------------------------------------

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@puppeteer/browsers": {
      "name": "@puppeteer/browsers",
      "severity": "high",
      "isDirect": false,
      "via": [
        "tar-fs"
      ],
      "effects": [
        "@wdio/utils",
        "puppeteer-core"
      ],
      "range": "1.4.2 - 2.2.3",
      "nodes": [
        "node_modules/@puppeteer/browsers"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/cli": {
      "name": "@wdio/cli",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "@wdio/utils",
        "webdriverio"
      ],
      "effects": [],
      "range": "7.16.5 - 8.44.1",
      "nodes": [
        "node_modules/@wdio/cli"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/config": {
      "name": "@wdio/config",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/utils"
      ],
      "effects": [],
      "range": "8.15.0 - 8.43.0",
      "nodes": [
        "node_modules/@wdio/config"
      ],
      "fixAvailable": true
    },
    "@wdio/globals": {
      "name": "@wdio/globals",
      "severity": "high",
      "isDirect": false,
      "via": [
        "expect-webdriverio",
        "webdriverio"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/runner"
      ],
      "range": "<=9.0.4",
      "nodes": [
        "node_modules/@wdio/globals"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/local-runner": {
      "name": "@wdio/local-runner",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/runner"
      ],
      "effects": [],
      "range": "7.16.5 - 8.44.1",
      "nodes": [
        "node_modules/@wdio/local-runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/mocha-framework": {
      "name": "@wdio/mocha-framework",
      "severity": "high",
      "isDirect": true,
      "via": [
        "@wdio/utils"
      ],
      "effects": [],
      "range": "8.15.0 - 8.41.0",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/runner": {
      "name": "@wdio/runner",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "@wdio/globals",
        "@wdio/utils",
        "expect-webdriverio",
        "webdriver",
        "webdriverio"
      ],
      "effects": [
        "@wdio/local-runner"
      ],
      "range": "7.16.5 - 9.0.4",
      "nodes": [
        "node_modules/@wdio/runner"
      ],
      "fixAvailable": {
        "name": "@wdio/local-runner",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "@wdio/utils": {
      "name": "@wdio/utils",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@puppeteer/browsers"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/config",
        "@wdio/mocha-framework",
        "@wdio/runner",
        "webdriver",
        "webdriverio"
      ],
      "range": "8.15.0 - 8.41.0",
      "nodes": [
        "node_modules/@wdio/utils"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "axios": {
      "name": "axios",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1097679,
          "name": "axios",
          "dependency": "axios",
          "title": "Axios Cross-Site Request Forgery Vulnerability",
          "url": "https://github.com/advisories/GHSA-wf5p-g6vw-rhxx",
          "severity": "moderate",
          "cwe": [
            "CWE-352"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N"
          },
          "range": ">=0.8.1 <0.28.0"
        },
        {
          "source": 1103617,
          "name": "axios",
          "dependency": "axios",
          "title": "axios Requests Vulnerable To Possible SSRF and Credential Leakage via Absolute URL",
          "url": "https://github.com/advisories/GHSA-jr5f-v2jv-69x6",
          "severity": "high",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<0.30.0"
        }
      ],
      "effects": [
        "openapi-validator"
      ],
      "range": "<=0.29.0",
      "nodes": [
        "node_modules/axios"
      ],
      "fixAvailable": {
        "name": "chai-openapi-response-validator",
        "version": "0.14.1",
        "isSemVerMajor": true
      }
    },
    "chai-openapi-response-validator": {
      "name": "chai-openapi-response-validator",
      "severity": "high",
      "isDirect": true,
      "via": [
        "openapi-validator"
      ],
      "effects": [],
      "range": "0.11.2 || >=0.14.2-alpha.0",
      "nodes": [
        "node_modules/chai-openapi-response-validator"
      ],
      "fixAvailable": {
        "name": "chai-openapi-response-validator",
        "version": "0.14.1",
        "isSemVerMajor": true
      }
    },
    "expect-webdriverio": {
      "name": "expect-webdriverio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/globals",
        "webdriverio"
      ],
      "effects": [
        "@wdio/globals",
        "@wdio/runner"
      ],
      "range": "4.0.0-alpha.0 - 4.0.0-alpha.6 || 4.0.1 - 5.0.0-alpha.2",
      "nodes": [
        "node_modules/expect-webdriverio"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "request"
      ],
      "effects": [
        "wdio-mediawiki"
      ],
      "range": ">=0.1.6",
      "nodes": [
        "node_modules/mwbot"
      ],
      "fixAvailable": false
    },
    "openapi-validator": {
      "name": "openapi-validator",
      "severity": "high",
      "isDirect": false,
      "via": [
        "axios"
      ],
      "effects": [
        "chai-openapi-response-validator"
      ],
      "range": ">=0.14.2-alpha.0",
      "nodes": [
        "node_modules/openapi-validator"
      ],
      "fixAvailable": {
        "name": "chai-openapi-response-validator",
        "version": "0.14.1",
        "isSemVerMajor": true
      }
    },
    "puppeteer-core": {
      "name": "puppeteer-core",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@puppeteer/browsers",
        "ws"
      ],
      "effects": [
        "webdriverio"
      ],
      "range": "11.0.0 - 22.13.0",
      "nodes": [
        "node_modules/puppeteer-core"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "request": {
      "name": "request",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "tough-cookie"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": false
    },
    "tar-fs": {
      "name": "tar-fs",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1104676,
          "name": "tar-fs",
          "dependency": "tar-fs",
          "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File",
          "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=3.0.0 <3.0.7"
        }
      ],
      "effects": [
        "@puppeteer/browsers"
      ],
      "range": "3.0.0 - 3.0.6",
      "nodes": [
        "node_modules/tar-fs"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097682,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/tough-cookie"
      ],
      "fixAvailable": false
    },
    "wdio-mediawiki": {
      "name": "wdio-mediawiki",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/wdio-mediawiki"
      ],
      "fixAvailable": false
    },
    "webdriver": {
      "name": "webdriver",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "@wdio/utils"
      ],
      "effects": [],
      "range": "8.15.0 - 8.44.0",
      "nodes": [
        "node_modules/webdriver"
      ],
      "fixAvailable": true
    },
    "webdriverio": {
      "name": "webdriverio",
      "severity": "high",
      "isDirect": false,
      "via": [
        "@wdio/config",
        "@wdio/utils",
        "puppeteer-core",
        "webdriver"
      ],
      "effects": [
        "@wdio/cli",
        "@wdio/globals",
        "@wdio/runner",
        "expect-webdriverio"
      ],
      "range": "7.16.5 - 8.44.1",
      "nodes": [
        "node_modules/webdriverio"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    },
    "ws": {
      "name": "ws",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1098392,
          "name": "ws",
          "dependency": "ws",
          "title": "ws affected by a DoS when handling a request with many HTTP headers",
          "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q",
          "severity": "high",
          "cwe": [
            "CWE-476"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=8.0.0 <8.17.1"
        }
      ],
      "effects": [
        "puppeteer-core"
      ],
      "range": "8.0.0 - 8.17.0",
      "nodes": [
        "node_modules/puppeteer-core/node_modules/ws"
      ],
      "fixAvailable": {
        "name": "@wdio/cli",
        "version": "9.14.0",
        "isSemVerMajor": true
      }
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 4,
      "high": 17,
      "critical": 0,
      "total": 21
    },
    "dependencies": {
      "prod": 1,
      "dev": 1441,
      "optional": 5,
      "peer": 1,
      "peerOptional": 0,
      "total": 1441
    }
  }
}

--- end ---
Attempting to npm audit fix
$ /usr/bin/npm audit fix --dry-run --only=dev --json
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.0.0-rc.2',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.0.0-rc.2',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---
{
  "added": 1,
  "removed": 0,
  "changed": 0,
  "audited": 1442,
  "funding": 209,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "@puppeteer/browsers": {
        "name": "@puppeteer/browsers",
        "severity": "high",
        "isDirect": false,
        "via": [
          "tar-fs"
        ],
        "effects": [
          "@wdio/utils",
          "puppeteer-core"
        ],
        "range": "1.4.2 - 2.2.3",
        "nodes": [
          "node_modules/@puppeteer/browsers"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.14.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/cli": {
        "name": "@wdio/cli",
        "severity": "high",
        "isDirect": true,
        "via": [
          "@wdio/config",
          "@wdio/globals",
          "@wdio/utils",
          "webdriverio"
        ],
        "effects": [],
        "range": "7.16.5 - 8.44.1",
        "nodes": [
          "node_modules/@wdio/cli"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.14.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/config": {
        "name": "@wdio/config",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/utils"
        ],
        "effects": [],
        "range": "8.15.0 - 8.43.0",
        "nodes": [
          "node_modules/@wdio/config"
        ],
        "fixAvailable": true
      },
      "@wdio/globals": {
        "name": "@wdio/globals",
        "severity": "high",
        "isDirect": false,
        "via": [
          "expect-webdriverio",
          "webdriverio"
        ],
        "effects": [
          "@wdio/cli",
          "@wdio/runner"
        ],
        "range": "<=9.0.4",
        "nodes": [
          "node_modules/@wdio/globals"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.14.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/local-runner": {
        "name": "@wdio/local-runner",
        "severity": "high",
        "isDirect": true,
        "via": [
          "@wdio/runner"
        ],
        "effects": [],
        "range": "7.16.5 - 8.44.1",
        "nodes": [
          "node_modules/@wdio/local-runner"
        ],
        "fixAvailable": {
          "name": "@wdio/local-runner",
          "version": "9.14.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/mocha-framework": {
        "name": "@wdio/mocha-framework",
        "severity": "high",
        "isDirect": true,
        "via": [
          "@wdio/utils"
        ],
        "effects": [],
        "range": "8.15.0 - 8.41.0",
        "nodes": [
          "node_modules/@wdio/mocha-framework"
        ],
        "fixAvailable": {
          "name": "@wdio/mocha-framework",
          "version": "9.14.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/runner": {
        "name": "@wdio/runner",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/config",
          "@wdio/globals",
          "@wdio/utils",
          "expect-webdriverio",
          "webdriver",
          "webdriverio"
        ],
        "effects": [
          "@wdio/local-runner"
        ],
        "range": "7.16.5 - 9.0.4",
        "nodes": [
          "node_modules/@wdio/runner"
        ],
        "fixAvailable": {
          "name": "@wdio/local-runner",
          "version": "9.14.0",
          "isSemVerMajor": true
        }
      },
      "@wdio/utils": {
        "name": "@wdio/utils",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@puppeteer/browsers"
        ],
        "effects": [
          "@wdio/cli",
          "@wdio/config",
          "@wdio/mocha-framework",
          "@wdio/runner",
          "webdriver",
          "webdriverio"
        ],
        "range": "8.15.0 - 8.41.0",
        "nodes": [
          "node_modules/@wdio/utils"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.14.0",
          "isSemVerMajor": true
        }
      },
      "axios": {
        "name": "axios",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1097679,
            "name": "axios",
            "dependency": "axios",
            "title": "Axios Cross-Site Request Forgery Vulnerability",
            "url": "https://github.com/advisories/GHSA-wf5p-g6vw-rhxx",
            "severity": "moderate",
            "cwe": [
              "CWE-352"
            ],
            "cvss": {
              "score": 6.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N"
            },
            "range": ">=0.8.1 <0.28.0"
          },
          {
            "source": 1103617,
            "name": "axios",
            "dependency": "axios",
            "title": "axios Requests Vulnerable To Possible SSRF and Credential Leakage via Absolute URL",
            "url": "https://github.com/advisories/GHSA-jr5f-v2jv-69x6",
            "severity": "high",
            "cwe": [
              "CWE-918"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": "<0.30.0"
          }
        ],
        "effects": [
          "openapi-validator"
        ],
        "range": "<=0.29.0",
        "nodes": [
          "node_modules/axios"
        ],
        "fixAvailable": {
          "name": "chai-openapi-response-validator",
          "version": "0.14.1",
          "isSemVerMajor": true
        }
      },
      "chai-openapi-response-validator": {
        "name": "chai-openapi-response-validator",
        "severity": "high",
        "isDirect": true,
        "via": [
          "openapi-validator"
        ],
        "effects": [],
        "range": "0.11.2 || >=0.14.2-alpha.0",
        "nodes": [
          "node_modules/chai-openapi-response-validator"
        ],
        "fixAvailable": {
          "name": "chai-openapi-response-validator",
          "version": "0.14.1",
          "isSemVerMajor": true
        }
      },
      "expect-webdriverio": {
        "name": "expect-webdriverio",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/globals",
          "webdriverio"
        ],
        "effects": [
          "@wdio/globals",
          "@wdio/runner"
        ],
        "range": "4.0.0-alpha.0 - 4.0.0-alpha.6 || 4.0.1 - 5.0.0-alpha.2",
        "nodes": [
          "node_modules/expect-webdriverio"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.14.0",
          "isSemVerMajor": true
        }
      },
      "mwbot": {
        "name": "mwbot",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "request"
        ],
        "effects": [
          "wdio-mediawiki"
        ],
        "range": ">=0.1.6",
        "nodes": [
          "node_modules/mwbot"
        ],
        "fixAvailable": false
      },
      "openapi-validator": {
        "name": "openapi-validator",
        "severity": "high",
        "isDirect": false,
        "via": [
          "axios"
        ],
        "effects": [
          "chai-openapi-response-validator"
        ],
        "range": ">=0.14.2-alpha.0",
        "nodes": [
          "node_modules/openapi-validator"
        ],
        "fixAvailable": {
          "name": "chai-openapi-response-validator",
          "version": "0.14.1",
          "isSemVerMajor": true
        }
      },
      "puppeteer-core": {
        "name": "puppeteer-core",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@puppeteer/browsers",
          "ws"
        ],
        "effects": [
          "webdriverio"
        ],
        "range": "11.0.0 - 22.13.0",
        "nodes": [
          "node_modules/puppeteer-core"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.14.0",
          "isSemVerMajor": true
        }
      },
      "request": {
        "name": "request",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1096727,
            "name": "request",
            "dependency": "request",
            "title": "Server-Side Request Forgery in Request",
            "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
            "severity": "moderate",
            "cwe": [
              "CWE-918"
            ],
            "cvss": {
              "score": 6.1,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
            },
            "range": "<=2.88.2"
          },
          "tough-cookie"
        ],
        "effects": [
          "mwbot"
        ],
        "range": "*",
        "nodes": [
          "node_modules/request"
        ],
        "fixAvailable": false
      },
      "tar-fs": {
        "name": "tar-fs",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1104676,
            "name": "tar-fs",
            "dependency": "tar-fs",
            "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File",
            "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx",
            "severity": "high",
            "cwe": [
              "CWE-22"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
            },
            "range": ">=3.0.0 <3.0.7"
          }
        ],
        "effects": [
          "@puppeteer/browsers"
        ],
        "range": "3.0.0 - 3.0.6",
        "nodes": [
          "node_modules/tar-fs"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.14.0",
          "isSemVerMajor": true
        }
      },
      "tough-cookie": {
        "name": "tough-cookie",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1097682,
            "name": "tough-cookie",
            "dependency": "tough-cookie",
            "title": "tough-cookie Prototype Pollution vulnerability",
            "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
            "severity": "moderate",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 6.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
            },
            "range": "<4.1.3"
          }
        ],
        "effects": [
          "request"
        ],
        "range": "<4.1.3",
        "nodes": [
          "node_modules/tough-cookie"
        ],
        "fixAvailable": false
      },
      "wdio-mediawiki": {
        "name": "wdio-mediawiki",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "mwbot"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/wdio-mediawiki"
        ],
        "fixAvailable": false
      },
      "webdriver": {
        "name": "webdriver",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/config",
          "@wdio/utils"
        ],
        "effects": [],
        "range": "8.15.0 - 8.44.0",
        "nodes": [
          "node_modules/webdriver"
        ],
        "fixAvailable": true
      },
      "webdriverio": {
        "name": "webdriverio",
        "severity": "high",
        "isDirect": false,
        "via": [
          "@wdio/config",
          "@wdio/utils",
          "puppeteer-core",
          "webdriver"
        ],
        "effects": [
          "@wdio/cli",
          "@wdio/globals",
          "@wdio/runner",
          "expect-webdriverio"
        ],
        "range": "7.16.5 - 8.44.1",
        "nodes": [
          "node_modules/webdriverio"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.14.0",
          "isSemVerMajor": true
        }
      },
      "ws": {
        "name": "ws",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1098392,
            "name": "ws",
            "dependency": "ws",
            "title": "ws affected by a DoS when handling a request with many HTTP headers",
            "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q",
            "severity": "high",
            "cwe": [
              "CWE-476"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": ">=8.0.0 <8.17.1"
          }
        ],
        "effects": [
          "puppeteer-core"
        ],
        "range": "8.0.0 - 8.17.0",
        "nodes": [
          "node_modules/puppeteer-core/node_modules/ws"
        ],
        "fixAvailable": {
          "name": "@wdio/cli",
          "version": "9.14.0",
          "isSemVerMajor": true
        }
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 0,
        "moderate": 4,
        "high": 17,
        "critical": 0,
        "total": 21
      },
      "dependencies": {
        "prod": 1,
        "dev": 1441,
        "optional": 5,
        "peer": 1,
        "peerOptional": 0,
        "total": 1441
      }
    }
  }
}

--- end ---
{"added": 1, "removed": 0, "changed": 0, "audited": 1442, "funding": 209, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@puppeteer/browsers": {"name": "@puppeteer/browsers", "severity": "high", "isDirect": false, "via": ["tar-fs"], "effects": ["@wdio/utils", "puppeteer-core"], "range": "1.4.2 - 2.2.3", "nodes": ["node_modules/@puppeteer/browsers"], "fixAvailable": {"name": "@wdio/cli", "version": "9.14.0", "isSemVerMajor": true}}, "@wdio/cli": {"name": "@wdio/cli", "severity": "high", "isDirect": true, "via": ["@wdio/config", "@wdio/globals", "@wdio/utils", "webdriverio"], "effects": [], "range": "7.16.5 - 8.44.1", "nodes": ["node_modules/@wdio/cli"], "fixAvailable": {"name": "@wdio/cli", "version": "9.14.0", "isSemVerMajor": true}}, "@wdio/config": {"name": "@wdio/config", "severity": "high", "isDirect": false, "via": ["@wdio/utils"], "effects": [], "range": "8.15.0 - 8.43.0", "nodes": ["node_modules/@wdio/config"], "fixAvailable": true}, "@wdio/globals": {"name": "@wdio/globals", "severity": "high", "isDirect": false, "via": ["expect-webdriverio", "webdriverio"], "effects": ["@wdio/cli", "@wdio/runner"], "range": "<=9.0.4", "nodes": ["node_modules/@wdio/globals"], "fixAvailable": {"name": "@wdio/cli", "version": "9.14.0", "isSemVerMajor": true}}, "@wdio/local-runner": {"name": "@wdio/local-runner", "severity": "high", "isDirect": true, "via": ["@wdio/runner"], "effects": [], "range": "7.16.5 - 8.44.1", "nodes": ["node_modules/@wdio/local-runner"], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.14.0", "isSemVerMajor": true}}, "@wdio/mocha-framework": {"name": "@wdio/mocha-framework", "severity": "high", "isDirect": true, "via": ["@wdio/utils"], "effects": [], "range": "8.15.0 - 8.41.0", "nodes": ["node_modules/@wdio/mocha-framework"], "fixAvailable": {"name": "@wdio/mocha-framework", "version": "9.14.0", "isSemVerMajor": true}}, "@wdio/runner": {"name": "@wdio/runner", "severity": "high", "isDirect": false, "via": ["@wdio/config", "@wdio/globals", "@wdio/utils", "expect-webdriverio", "webdriver", "webdriverio"], "effects": ["@wdio/local-runner"], "range": "7.16.5 - 9.0.4", "nodes": ["node_modules/@wdio/runner"], "fixAvailable": {"name": "@wdio/local-runner", "version": "9.14.0", "isSemVerMajor": true}}, "@wdio/utils": {"name": "@wdio/utils", "severity": "high", "isDirect": false, "via": ["@puppeteer/browsers"], "effects": ["@wdio/cli", "@wdio/config", "@wdio/mocha-framework", "@wdio/runner", "webdriver", "webdriverio"], "range": "8.15.0 - 8.41.0", "nodes": ["node_modules/@wdio/utils"], "fixAvailable": {"name": "@wdio/cli", "version": "9.14.0", "isSemVerMajor": true}}, "axios": {"name": "axios", "severity": "high", "isDirect": false, "via": [{"source": 1097679, "name": "axios", "dependency": "axios", "title": "Axios Cross-Site Request Forgery Vulnerability", "url": "https://github.com/advisories/GHSA-wf5p-g6vw-rhxx", "severity": "moderate", "cwe": ["CWE-352"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N"}, "range": ">=0.8.1 <0.28.0"}, {"source": 1103617, "name": "axios", "dependency": "axios", "title": "axios Requests Vulnerable To Possible SSRF and Credential Leakage via Absolute URL", "url": "https://github.com/advisories/GHSA-jr5f-v2jv-69x6", "severity": "high", "cwe": ["CWE-918"], "cvss": {"score": 0, "vectorString": null}, "range": "<0.30.0"}], "effects": ["openapi-validator"], "range": "<=0.29.0", "nodes": ["node_modules/axios"], "fixAvailable": {"name": "chai-openapi-response-validator", "version": "0.14.1", "isSemVerMajor": true}}, "chai-openapi-response-validator": {"name": "chai-openapi-response-validator", "severity": "high", "isDirect": true, "via": ["openapi-validator"], "effects": [], "range": "0.11.2 || >=0.14.2-alpha.0", "nodes": ["node_modules/chai-openapi-response-validator"], "fixAvailable": {"name": "chai-openapi-response-validator", "version": "0.14.1", "isSemVerMajor": true}}, "expect-webdriverio": {"name": "expect-webdriverio", "severity": "high", "isDirect": false, "via": ["@wdio/globals", "webdriverio"], "effects": ["@wdio/globals", "@wdio/runner"], "range": "4.0.0-alpha.0 - 4.0.0-alpha.6 || 4.0.1 - 5.0.0-alpha.2", "nodes": ["node_modules/expect-webdriverio"], "fixAvailable": {"name": "@wdio/cli", "version": "9.14.0", "isSemVerMajor": true}}, "mwbot": {"name": "mwbot", "severity": "moderate", "isDirect": false, "via": ["request"], "effects": ["wdio-mediawiki"], "range": ">=0.1.6", "nodes": ["node_modules/mwbot"], "fixAvailable": false}, "openapi-validator": {"name": "openapi-validator", "severity": "high", "isDirect": false, "via": ["axios"], "effects": ["chai-openapi-response-validator"], "range": ">=0.14.2-alpha.0", "nodes": ["node_modules/openapi-validator"], "fixAvailable": {"name": "chai-openapi-response-validator", "version": "0.14.1", "isSemVerMajor": true}}, "puppeteer-core": {"name": "puppeteer-core", "severity": "high", "isDirect": false, "via": ["@puppeteer/browsers", "ws"], "effects": ["webdriverio"], "range": "11.0.0 - 22.13.0", "nodes": ["node_modules/puppeteer-core"], "fixAvailable": {"name": "@wdio/cli", "version": "9.14.0", "isSemVerMajor": true}}, "request": {"name": "request", "severity": "moderate", "isDirect": false, "via": [{"source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}, "tough-cookie"], "effects": ["mwbot"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": false}, "tar-fs": {"name": "tar-fs", "severity": "high", "isDirect": false, "via": [{"source": 1104676, "name": "tar-fs", "dependency": "tar-fs", "title": "tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File", "url": "https://github.com/advisories/GHSA-pq67-2wwv-3xjx", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=3.0.0 <3.0.7"}], "effects": ["@puppeteer/browsers"], "range": "3.0.0 - 3.0.6", "nodes": ["node_modules/tar-fs"], "fixAvailable": {"name": "@wdio/cli", "version": "9.14.0", "isSemVerMajor": true}}, "tough-cookie": {"name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [{"source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"}, "range": "<4.1.3"}], "effects": ["request"], "range": "<4.1.3", "nodes": ["node_modules/tough-cookie"], "fixAvailable": false}, "wdio-mediawiki": {"name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": ["mwbot"], "effects": [], "range": "*", "nodes": ["node_modules/wdio-mediawiki"], "fixAvailable": false}, "webdriver": {"name": "webdriver", "severity": "high", "isDirect": false, "via": ["@wdio/config", "@wdio/utils"], "effects": [], "range": "8.15.0 - 8.44.0", "nodes": ["node_modules/webdriver"], "fixAvailable": true}, "webdriverio": {"name": "webdriverio", "severity": "high", "isDirect": false, "via": ["@wdio/config", "@wdio/utils", "puppeteer-core", "webdriver"], "effects": ["@wdio/cli", "@wdio/globals", "@wdio/runner", "expect-webdriverio"], "range": "7.16.5 - 8.44.1", "nodes": ["node_modules/webdriverio"], "fixAvailable": {"name": "@wdio/cli", "version": "9.14.0", "isSemVerMajor": true}}, "ws": {"name": "ws", "severity": "high", "isDirect": false, "via": [{"source": 1098392, "name": "ws", "dependency": "ws", "title": "ws affected by a DoS when handling a request with many HTTP headers", "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q", "severity": "high", "cwe": ["CWE-476"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=8.0.0 <8.17.1"}], "effects": ["puppeteer-core"], "range": "8.0.0 - 8.17.0", "nodes": ["node_modules/puppeteer-core/node_modules/ws"], "fixAvailable": {"name": "@wdio/cli", "version": "9.14.0", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 4, "high": 17, "critical": 0, "total": 21}, "dependencies": {"prod": 1, "dev": 1441, "optional": 5, "peer": 1, "peerOptional": 0, "total": 1441}}}}
$ /usr/bin/npm audit fix --only=dev
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.0.0-rc.2',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.0.0-rc.2',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---

up to date, audited 1441 packages in 5s

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

# npm audit report

axios  <=0.29.0
Severity: high
Axios Cross-Site Request Forgery Vulnerability - https://github.com/advisories/GHSA-wf5p-g6vw-rhxx
axios Requests Vulnerable To Possible SSRF and Credential Leakage via Absolute URL - https://github.com/advisories/GHSA-jr5f-v2jv-69x6
fix available via `npm audit fix --force`
Will install chai-openapi-response-validator@0.14.1, which is a breaking change
node_modules/axios
  openapi-validator  >=0.14.2-alpha.0
  Depends on vulnerable versions of axios
  node_modules/openapi-validator
    chai-openapi-response-validator  0.11.2 || >=0.14.2-alpha.0
    Depends on vulnerable versions of openapi-validator
    node_modules/chai-openapi-response-validator

request  *
Severity: moderate
Server-Side Request Forgery in Request - https://github.com/advisories/GHSA-p8p7-x288-28g6
Depends on vulnerable versions of tough-cookie
No fix available
node_modules/request
  mwbot  >=0.1.6
  Depends on vulnerable versions of request
  node_modules/mwbot
    wdio-mediawiki  *
    Depends on vulnerable versions of mwbot
    node_modules/wdio-mediawiki

tar-fs  3.0.0 - 3.0.6
Severity: high
tar-fs Vulnerable to Link Following and Path Traversal via Extracting a Crafted tar File - https://github.com/advisories/GHSA-pq67-2wwv-3xjx
fix available via `npm audit fix --force`
Will install @wdio/cli@9.14.0, which is a breaking change
node_modules/tar-fs
  @puppeteer/browsers  1.4.2 - 2.2.3
  Depends on vulnerable versions of tar-fs
  node_modules/@puppeteer/browsers
    @wdio/utils  8.15.0 - 8.41.0
    Depends on vulnerable versions of @puppeteer/browsers
    node_modules/@wdio/utils
      @wdio/cli  7.16.5 - 8.44.1
      Depends on vulnerable versions of @wdio/config
      Depends on vulnerable versions of @wdio/globals
      Depends on vulnerable versions of @wdio/utils
      Depends on vulnerable versions of webdriverio
      node_modules/@wdio/cli
      @wdio/config  8.15.0 - 8.43.0
      Depends on vulnerable versions of @wdio/utils
      node_modules/@wdio/config
      @wdio/mocha-framework  8.15.0 - 8.41.0
      Depends on vulnerable versions of @wdio/utils
      node_modules/@wdio/mocha-framework
      @wdio/runner  7.16.5 - 9.0.4
      Depends on vulnerable versions of @wdio/config
      Depends on vulnerable versions of @wdio/globals
      Depends on vulnerable versions of @wdio/utils
      Depends on vulnerable versions of expect-webdriverio
      Depends on vulnerable versions of webdriver
      Depends on vulnerable versions of webdriverio
      node_modules/@wdio/runner
        @wdio/local-runner  7.16.5 - 8.44.1
        Depends on vulnerable versions of @wdio/runner
        node_modules/@wdio/local-runner
      webdriver  8.15.0 - 8.44.0
      Depends on vulnerable versions of @wdio/config
      Depends on vulnerable versions of @wdio/utils
      node_modules/webdriver
      webdriverio  7.16.5 - 8.44.1
      Depends on vulnerable versions of @wdio/config
      Depends on vulnerable versions of @wdio/utils
      Depends on vulnerable versions of puppeteer-core
      Depends on vulnerable versions of webdriver
      node_modules/webdriverio
        @wdio/globals  <=9.0.4
        Depends on vulnerable versions of expect-webdriverio
        Depends on vulnerable versions of webdriverio
        node_modules/@wdio/globals
        expect-webdriverio  4.0.0-alpha.0 - 4.0.0-alpha.6 || 4.0.1 - 5.0.0-alpha.2
        Depends on vulnerable versions of @wdio/globals
        Depends on vulnerable versions of webdriverio
        node_modules/expect-webdriverio
    puppeteer-core  11.0.0 - 22.13.0
    Depends on vulnerable versions of @puppeteer/browsers
    Depends on vulnerable versions of ws
    node_modules/puppeteer-core

tough-cookie  <4.1.3
Severity: moderate
tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3
No fix available
node_modules/tough-cookie

ws  8.0.0 - 8.17.0
Severity: high
ws affected by a DoS when handling a request with many HTTP headers - https://github.com/advisories/GHSA-3h5v-q93c-6h6q
fix available via `npm audit fix --force`
Will install @wdio/cli@9.14.0, which is a breaking change
node_modules/puppeteer-core/node_modules/ws

21 vulnerabilities (4 moderate, 17 high)

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

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

Some issues need review, and may require choosing
a different dependency.

--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.0.0-rc.2',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.0.0-rc.2',
npm WARN EBADENGINE   required: { node: '>=20', npm: '>=10.8.1' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated lodash.isequal@4.5.0: This package is deprecated. Use require('node:util').isDeepStrictEqual instead.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated 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 fstream@1.0.12: This package is no longer supported.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
--- stdout ---

added 1440 packages, and audited 1441 packages in 29s

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

21 vulnerabilities (4 moderate, 17 high)

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

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

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS tests/jest/mediawiki.special.block/stores/block.test.js
PASS tests/jest/mediawiki.special.block/BlockLog.test.js
PASS tests/jest/mediawiki.special.block/UserLookup.test.js
PASS tests/jest/mediawiki.special.block/ExpiryField.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/App.test.js
PASS tests/jest/mediawiki.special.block/ReasonField.test.js
PASS tests/jest/mediawiki.special.block/init.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/instrumentation.test.js
PASS tests/jest/mediawiki.special.block/BlockDetailsField.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/fetch.test.js
PASS tests/jest/mediawiki.special.block/AdditionalDetailsField.test.js
PASS tests/jest/mediawiki.special.block/NamespacesField.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/restSearchClient.test.js
PASS tests/jest/mediawiki.special.block/util.test.js
PASS tests/jest/mediawiki.skinning.typeaheadSearch/urlGenerator.test.js
PASS tests/jest/mediawiki.special.block/SpecialBlock.test.js (18.054 s)

Test Suites: 16 passed, 16 total
Tests:       99 passed, 99 total
Snapshots:   1 passed, 1 total
Time:        30.059 s
Ran all test suites.
--- stdout ---

> test
> grunt lint && npm run doc && npm run jest

Running "eslint:all" (eslint) task

/src/repo/resources/src/jquery/jquery.makeCollapsible.js
  425:1  warning  Syntax error in namepath: ~'wikipage.collapsibleContent'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.action.edit/edit.js
  12:1  warning  Syntax error in namepath: ~'wikipage.editform'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.action/mediawiki.action.view.postEdit.js
  21:1  warning  Syntax error in namepath: ~'postEdit'               jsdoc/valid-types
  36:1  warning  Syntax error in namepath: ~'postEdit.afterRemoval'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.authenticationPopup/index.js
  38:1  warning  The type 'userinfo' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.base/errorLogger.js
   8:1  warning  Syntax error in namepath: ~'global.error'  jsdoc/valid-types
  22:1  warning  Syntax error in namepath: ~'error.caught'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.base/log.js
  14:1  warning  Found more than one @return declaration  jsdoc/require-returns
  14:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.base/mediawiki.base.js
  217:1  warning  The type 'mediawiki' is undefined  jsdoc/no-undefined-types
  243:1  warning  The type 'mediawiki' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.diff/inlineFormatToggle.js
  150:1  warning  Syntax error in namepath: ~'wikipage.diff.wikitextDiffBody'  jsdoc/valid-types
  162:1  warning  Syntax error in namepath: ~'wikipage.diff.diffTypeSwitch'    jsdoc/valid-types

/src/repo/resources/src/mediawiki.editRecovery/edit.js
  184:1  warning  Syntax error in namepath: ~'editRecovery.loadEnd'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.htmlform/cond-state.js
  48:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.htmlform/htmlform.js
  5:1  warning  Syntax error in namepath: ~'htmlform.enhance'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.inspect.js
   61:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
   91:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  112:2  warning  Found more than one @return declaration  jsdoc/require-returns
  112:2  warning  Found more than one @return declaration  jsdoc/require-returns-check
  121:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  152:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  164:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  175:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types
  203:1  warning  The type 'mediawiki' is undefined        jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.jqueryMsg/mediawiki.jqueryMsg.js
  142:1  warning  Found more than one @return declaration  jsdoc/require-returns
  142:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.language.months/months.js
  44:1  warning  The type 'Months' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.notification.convertmessagebox.js
  13:1  warning  Syntax error in namepath: (require("mediawiki.notification.convertmessagebox"))  jsdoc/valid-types

/src/repo/resources/src/mediawiki.page.preview.js
  416:1  warning  Syntax error in namepath: ~'wikipage.tableOfContents'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.page.ready/ready.js
   96:1  warning  Syntax error in namepath: ~'wikipage.indicators'  jsdoc/valid-types
  116:1  warning  Syntax error in namepath: ~'wikipage.content'     jsdoc/valid-types
  137:1  warning  Syntax error in namepath: ~'wikipage.categories'  jsdoc/valid-types
  153:1  warning  Syntax error in namepath: ~'wikipage.diff'        jsdoc/valid-types
  184:1  warning  Syntax error in namepath: ~'skin.logout'          jsdoc/valid-types

/src/repo/resources/src/mediawiki.page.watch.ajax/watch-ajax.js
  128:1  warning  Syntax error in namepath: ~'wikipage.watchlistChange'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.rcfilters/Controller.js
  330:1  warning  Found more than one @return declaration                  jsdoc/require-returns
  330:1  warning  Found more than one @return declaration                  jsdoc/require-returns-check
  550:1  warning  Syntax error in namepath: ~'RcFilters.highlight.enable'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.rcfilters/dm/FilterItem.js
   81:1  warning  Found more than one @return declaration  jsdoc/require-returns
   81:1  warning  Found more than one @return declaration  jsdoc/require-returns-check
  335:1  warning  The type 'update' is undefined           jsdoc/no-undefined-types
  351:1  warning  The type 'update' is undefined           jsdoc/no-undefined-types
  366:1  warning  The type 'update' is undefined           jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.rcfilters/dm/FiltersViewModel.js
  1185:1  warning  The type 'searchChange' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.rcfilters/mw.rcfilters.js
  176:1  warning  Syntax error in namepath: ~'structuredChangeFilters.ui.initialized'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.rcfilters/ui/FilterTagMultiselectWidget.js
  408:1  warning  Syntax error in namepath: ~'RcFilters.popup.open'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.searchSuggest/searchSuggest.js
  36:1  warning  The type 'ResponseMetaData' is undefined  jsdoc/no-undefined-types
  43:1  warning  The type 'ResponseFunction' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/App.vue
  229:1  warning  The type 'AbortableSearchFetch' is undefined  jsdoc/no-undefined-types
  275:1  warning  The type 'SearchSubmitEvent' is undefined     jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/fetch.js
  21:1  warning  The type 'RequestInit' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/instrumentation.js
   2:1  warning  The type 'FetchEndEvent' is undefined         jsdoc/no-undefined-types
  16:1  warning  The type 'SuggestionClickEvent' is undefined  jsdoc/no-undefined-types
  16:1  warning  The type 'SearchSubmitEvent' is undefined     jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/restSearchClient.js
   4:1  warning  Syntax error in type: import('./urlGenerator.js').UrlGenerator  jsdoc/valid-types
  11:1  warning  The type 'RestResult' is undefined                              jsdoc/no-undefined-types
  17:1  warning  The type 'SearchResult' is undefined                            jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.skinning.typeaheadSearch/urlGenerator.js
   2:1  warning  The type 'Record' is undefined        jsdoc/no-undefined-types
   9:1  warning  The type 'RestResult' is undefined    jsdoc/no-undefined-types
   9:1  warning  The type 'SearchResult' is undefined  jsdoc/no-undefined-types
  29:1  warning  The type 'RestResult' is undefined    jsdoc/no-undefined-types
  29:1  warning  The type 'SearchResult' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.special.apisandbox/ApiSandboxLayout.js
  44:1  warning  Found more than one @return declaration  jsdoc/require-returns
  44:1  warning  Found more than one @return declaration  jsdoc/require-returns-check

/src/repo/resources/src/mediawiki.special.block/init.js
  26:1  warning  Syntax error in namepath: ~'SpecialBlock.block'  jsdoc/valid-types
  36:1  warning  Syntax error in namepath: ~'SpecialBlock.form'   jsdoc/valid-types

/src/repo/resources/src/mediawiki.template.js
   26:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types
   40:1  warning  The type 'TemplateRenderFunction' is undefined   jsdoc/no-undefined-types
   45:1  warning  The type 'TemplateCompileFunction' is undefined  jsdoc/no-undefined-types
   61:1  warning  The type 'TemplateCompiler' is undefined         jsdoc/no-undefined-types
   88:1  warning  The type 'TemplateCompiler' is undefined         jsdoc/no-undefined-types
  107:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types
  125:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types
  147:1  warning  The type 'TemplateRenderer' is undefined         jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.util/util.js
  626:1  warning  Syntax error in namepath: ~'util.addPortlet'      jsdoc/valid-types
  795:1  warning  Syntax error in namepath: ~'util.addPortletLink'  jsdoc/valid-types

/src/repo/resources/src/mediawiki.widgets.datetime/DateTimeFormatter.js
  268:1  warning  The type 'FieldSpecificationObject' is undefined  jsdoc/no-undefined-types
  632:1  warning  The type 'CalendarGridData' is undefined          jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.widgets.datetime/DiscordianDateTimeFormatter.js
  74:1  warning  The type 'FieldSpecificationObject' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.widgets.datetime/ProlepticGregorianDateTimeFormatter.js
  306:1  warning  The type 'FieldSpecificationObject' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/mediawiki.widgets/mw.widgets.NamespaceInputWidget.js
  50:1  warning  The type 'DropdownOptions' is undefined  jsdoc/no-undefined-types

/src/repo/resources/src/startup/mediawiki.loader.js
  61:1  warning  Syntax error in namepath: ~'resourceloader.exception'  jsdoc/valid-types

/src/repo/tests/qunit/data/testrunner.js
  112:2  warning  Missing JSDoc @return declaration  jsdoc/require-returns

/src/repo/tests/selenium/wdio-mediawiki/Util.js
  35:1  warning  This line has a length of 107. Maximum allowed is 100  max-len

/src/repo/tests/selenium/wdio-mediawiki/wdio-defaults.conf.js
  99:1  warning  This line has a length of 108. Maximum allowed is 100  max-len

✖ 86 problems (0 errors, 86 warnings)


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

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

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

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

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

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

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

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

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

Running "stylelint:resources" (stylelint) task
>> resources/src/mediawiki.skinning/content.media-dark.less
>>   32:1  ⚠  Unexpected browser feature "prefers-color-scheme" is not supported by Firefox 49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66, Chrome 49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75, Safari 10,11,12,10.1,11.1, Safari on iOS 10.0-10.2,10.3,11.0-11.2,11.3-11.4,12.0-12.1,12.2-12.5  plugin/no-unsupported-browser-features
>> 
>> ⚠ 1 problem (0 errors, 1 warning)

⚠ 1 warning

>> Linted 214 files without errors

Running "stylelint:config" (stylelint) task
>> Linted 1 files without errors

Done.

> doc
> jsdoc -c jsdoc.json


> jest
> jest --config tests/jest/jest.config.js

------------------------------------|---------|----------|---------|---------|-----------------------------------------------------------------
File                                | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                                               
------------------------------------|---------|----------|---------|---------|-----------------------------------------------------------------
All files                           |   93.18 |    90.33 |   79.38 |   93.18 |                                                                 
 mediawiki.skinning.typeaheadSearch |   83.84 |     82.5 |   62.06 |   83.84 |                                                                 
  App.vue                           |   74.91 |    66.66 |   36.36 |   74.91 | 191-202,212-225,233-259,263-271,278-280,284-287,291-292,296-300 
  fetch.js                          |     100 |     87.5 |      75 |     100 | 31                                                              
  instrumentation.js                |   82.82 |      100 |      60 |   82.82 | 4-13,18-24                                                      
  restSearchClient.js               |   90.78 |    71.42 |   83.33 |   90.78 | 103-115                                                         
  urlGenerator.js                   |     100 |      100 |     100 |     100 |                                                                 
 mediawiki.special.block            |   94.35 |    92.95 |   82.35 |   94.35 |                                                                 
  SpecialBlock.vue                  |   93.89 |    93.18 |   72.72 |   93.89 | 245-254,297-302,308-322,440-441,452-454                         
  init.js                           |     100 |      100 |     100 |     100 |                                                                 
  util.js                           |   94.64 |     91.3 |     100 |   94.64 | 82-84,86-88                                                     
 mediawiki.special.block/components |   95.08 |    92.34 |    87.8 |   95.08 |                                                                 
  AdditionalDetailsField.vue        |     100 |       80 |     100 |     100 | 68                                                              
  BlockDetailsField.vue             |     100 |      100 |     100 |     100 |                                                                 
  BlockLog.vue                      |   98.94 |      100 |   83.33 |   98.94 | 337-340,401                                                     
  BlockTypeField.vue                |   95.04 |       50 |     100 |   95.04 | 73-77                                                           
  ConfirmationDialog.vue            |   96.34 |      100 |      50 |   96.34 | 70-72                                                           
  ExpiryField.vue                   |   95.07 |    89.47 |     100 |   95.07 | 145-146,148-149,177-186,245-246                                 
  NamespacesField.vue               |   90.42 |    88.88 |   66.66 |   90.42 | 60-68                                                           
  PagesField.vue                    |   70.06 |       50 |      50 |   70.06 | 46-47,56-57,72-79,88-90,97-118,127-133                          
  ReasonField.vue                   |   97.14 |    93.75 |     100 |   97.14 | 98-101                                                          
  UserLookup.vue                    |   97.68 |    97.43 |     100 |   97.68 | 144-146,195-197,230-231                                         
  ValidatingTextInput.js            |     100 |      100 |     100 |     100 |                                                                 
 mediawiki.special.block/stores     |   95.65 |    87.64 |      90 |   95.65 |                                                                 
  block.js                          |   95.65 |    87.64 |      90 |   95.65 | 322-323,432-433,435-436,456-457,460-461,464-465,479-494         
------------------------------------|---------|----------|---------|---------|-----------------------------------------------------------------

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

--- end ---
build: Updating eslint-config-wikimedia to 0.30.0

The following rules are failing and were disabled:
* no-mixed-spaces-and-tabs
* yml/no-tab-indent

$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmphuf6iuk5
--- stdout ---
[master a197af1] build: Updating eslint-config-wikimedia to 0.30.0
 14 files changed, 517 insertions(+), 520 deletions(-)

--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From a197af1fa7c673f2a7a551f382e0ae51fd70b91c Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Tue, 27 May 2025 00:16:38 +0000
Subject: [PATCH] build: Updating eslint-config-wikimedia to 0.30.0

The following rules are failing and were disabled:
* no-mixed-spaces-and-tabs
* yml/no-tab-indent

Change-Id: I1fc1e027cc223c0698412abf625bc07e9f0d185f
---
 .eslintrc.json                                |   4 +-
 docker-compose.yml                            |  30 +-
 docs/config-schema.yaml                       | 896 +++++++++---------
 package-lock.json                             |  35 +-
 package.json                                  |   2 +-
 resources/src/mediawiki.debug/debug.js        |   2 -
 resources/src/startup/startup.js              |   4 +-
 tests/api-testing/REST/PageHistory.js         |  18 +-
 tests/api-testing/REST/PageLanguageLinks.js   |   2 +-
 tests/api-testing/REST/PageMediaLinks.js      |   2 +-
 tests/api-testing/REST/RevisionCompare.js     |   6 +-
 tests/api-testing/REST/Transform.js           |   2 +-
 tests/api-testing/REST/content.v1/Creation.js |  14 +-
 tests/api-testing/REST/content.v1/Update.js   |  20 +-
 14 files changed, 517 insertions(+), 520 deletions(-)

diff --git a/.eslintrc.json b/.eslintrc.json
index b066701..6c3159e 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -4,6 +4,8 @@
 		"wikimedia/server"
 	],
 	"rules": {
-		"max-len": "warn"
+		"max-len": "warn",
+		"no-mixed-spaces-and-tabs": "warn",
+		"yml/no-tab-indent": "warn"
 	}
 }
diff --git a/docker-compose.yml b/docker-compose.yml
index d080119..684f8b4 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -11,22 +11,22 @@ services:
     volumes:
       - ./:/var/www/html/w:cached
     env_file:
-      - '.env'
+      - .env
     environment:
-      COMPOSER_CACHE_DIR: '/var/www/html/w/cache/composer'
-      MW_SERVER: 'http://localhost:${MW_DOCKER_PORT:-8080}'
+      COMPOSER_CACHE_DIR: /var/www/html/w/cache/composer
+      MW_SERVER: "http://localhost:${MW_DOCKER_PORT:-8080}"
       MW_DOCKER_PORT: "${MW_DOCKER_PORT:-8080}"
-      MW_SCRIPT_PATH: '/w'
-      MW_DBPATH: '/var/www/html/w/cache/sqlite'
-      MW_DBTYPE: 'sqlite'
-      MW_LANG: 'en'
-      MW_USER: '${MEDIAWIKI_USER:-Admin}'
-      MW_PASS: '${MEDIAWIKI_PASSWORD:-dockerpass}'
-      MW_SITENAME: 'MediaWiki'
+      MW_SCRIPT_PATH: /w
+      MW_DBPATH: /var/www/html/w/cache/sqlite
+      MW_DBTYPE: sqlite
+      MW_LANG: en
+      MW_USER: "${MEDIAWIKI_USER:-Admin}"
+      MW_PASS: "${MEDIAWIKI_PASSWORD:-dockerpass}"
+      MW_SITENAME: MediaWiki
       MW_LOG_DIR: /var/www/html/w/cache
-      XDEBUG_CONFIG: '${XDEBUG_CONFIG}'
-      XDEBUG_ENABLE: '${XDEBUG_ENABLE:-true}'
-      XHPROF_ENABLE: '${XHPROF_ENABLE:-true}'
+      XDEBUG_CONFIG: "${XDEBUG_CONFIG}"
+      XDEBUG_ENABLE: "${XDEBUG_ENABLE:-true}"
+      XHPROF_ENABLE: "${XHPROF_ENABLE:-true}"
 
   mediawiki-web:
     image: docker-registry.wikimedia.org/dev/bookworm-apache2:1.0.1
@@ -36,7 +36,7 @@ services:
     volumes:
       - ./:/var/www/html/w:cached
     env_file:
-      - '.env'
+      - .env
     environment:
       MW_LOG_DIR: /var/www/html/w/cache
       MW_DOCKER_PORT: "${MW_DOCKER_PORT:-8080}"
@@ -47,7 +47,7 @@ services:
     volumes:
       - ./:/var/www/html/w:cached
     env_file:
-      - '.env'
+      - .env
     environment:
       MW_LOG_DIR: /var/www/html/w/cache
       MW_INSTALL_PATH: /var/www/html/w
diff --git a/docs/config-schema.yaml b/docs/config-schema.yaml
index 9b8c356..e37e0fc 100644
--- a/docs/config-schema.yaml
+++ b/docs/config-schema.yaml
@@ -3,7 +3,7 @@
 config-schema:
     ConfigRegistry:
         default:
-            main: 'GlobalVarConfig::newInstance'
+            main: "GlobalVarConfig::newInstance"
         type: object
         description: |-
             Registry of factory functions to create config objects:
@@ -12,7 +12,7 @@ config-schema:
             @since 1.23
     Sitename:
         default: MediaWiki
-        description: 'Name of the site. It must be changed in LocalSettings.php'
+        description: Name of the site. It must be changed in LocalSettings.php
     Server:
         default: false
         description: |-
@@ -80,7 +80,7 @@ config-schema:
             set in LocalSettings.php
     UsePathInfo:
         dynamicDefault:
-            callback: [MediaWiki\MainConfigSchema, getDefaultUsePathInfo]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultUsePathInfo ]
         description: |-
             Whether to support URLs like index.php/Page_title.
             The effective default value is determined at runtime:
@@ -95,16 +95,16 @@ config-schema:
     Script:
         default: false
         dynamicDefault:
-            use: [ScriptPath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultScript]
+            use: [ ScriptPath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultScript ]
         description: |-
             The URL path to index.php.
             Defaults to "{$wgScriptPath}/index.php".
     LoadScript:
         default: false
         dynamicDefault:
-            use: [ScriptPath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultLoadScript]
+            use: [ ScriptPath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultLoadScript ]
         description: |-
             The URL path to load.php.
             Defaults to "{$wgScriptPath}/load.php".
@@ -112,8 +112,8 @@ config-schema:
     RestPath:
         default: false
         dynamicDefault:
-            use: [ScriptPath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultRestPath]
+            use: [ ScriptPath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultRestPath ]
         description: |-
             The URL path to the REST API.
             Defaults to "{$wgScriptPath}/rest.php"
@@ -121,8 +121,8 @@ config-schema:
     StylePath:
         default: false
         dynamicDefault:
-            use: [ResourceBasePath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultStylePath]
+            use: [ ResourceBasePath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultStylePath ]
         description: |-
             The URL path of the skins directory.
             Defaults to "{$wgResourceBasePath}/skins".
@@ -130,8 +130,8 @@ config-schema:
     LocalStylePath:
         default: false
         dynamicDefault:
-            use: [ScriptPath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultLocalStylePath]
+            use: [ ScriptPath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultLocalStylePath ]
         description: |-
             The URL path of the skins directory. Should not point to an external domain.
             Defaults to "{$wgScriptPath}/skins".
@@ -139,8 +139,8 @@ config-schema:
     ExtensionAssetsPath:
         default: false
         dynamicDefault:
-            use: [ResourceBasePath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultExtensionAssetsPath]
+            use: [ ResourceBasePath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultExtensionAssetsPath ]
         description: |-
             The URL path of the extensions directory.
             Defaults to "{$wgResourceBasePath}/extensions".
@@ -149,7 +149,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Extensions directory in the file system.
             Defaults to "{$IP}/extensions" in Setup.php
@@ -159,7 +159,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Skins directory in the file system.
             Defaults to "{$IP}/skins" in Setup.php.
@@ -168,8 +168,8 @@ config-schema:
     ArticlePath:
         default: false
         dynamicDefault:
-            use: [Script, UsePathInfo]
-            callback: [MediaWiki\MainConfigSchema, getDefaultArticlePath]
+            use: [ Script, UsePathInfo ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultArticlePath ]
         description: |-
             The URL path for primary article page views. This path should contain $1,
             which is replaced by the article title.
@@ -178,8 +178,8 @@ config-schema:
     UploadPath:
         default: false
         dynamicDefault:
-            use: [ScriptPath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultUploadPath]
+            use: [ ScriptPath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultUploadPath ]
         description: |-
             The URL path for the images directory.
             Defaults to "{$wgScriptPath}/images".
@@ -205,23 +205,23 @@ config-schema:
         type:
             - string
             - boolean
-            - 'null'
+            - "null"
         description: |-
             The filesystem path of the images directory.
             Defaults to "{$IP}/images" in Setup.php.
     FileCacheDirectory:
         default: false
         dynamicDefault:
-            use: [UploadDirectory]
-            callback: [MediaWiki\MainConfigSchema, getDefaultFileCacheDirectory]
+            use: [ UploadDirectory ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultFileCacheDirectory ]
         description: |-
             Directory where the cached page will be saved.
             Defaults to "{$wgUploadDirectory}/cache".
     Logo:
         default: false
         dynamicDefault:
-            use: [ResourceBasePath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultLogo]
+            use: [ ResourceBasePath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultLogo ]
         description: |-
             The URL path of the wiki logo. The logo size should be 135x135 pixels.
             Defaults to "$wgResourceBasePath/resources/assets/change-your-logo.svg".
@@ -327,14 +327,14 @@ config-schema:
             @see \wfTempDir()
             @note Default changed to false in MediaWiki 1.20.
     UploadBaseUrl:
-        default: ''
+        default: ""
         description: |-
             If set, this URL is added to the start of $wgUploadPath to form a complete
             upload URL.
             @since 1.4
     UploadStashScalerBaseUrl:
         default: false
-        deprecated: 'since 1.36 Use thumbProxyUrl in $wgLocalFileRepo'
+        deprecated: since 1.36 Use thumbProxyUrl in $wgLocalFileRepo
         description: |-
             To enable remote on-demand scaling, set this to the thumbnail base URL.
             Full thumbnail URL will be like $wgUploadStashScalerBaseUrl/e/e6/Foo.jpg/123px-Foo.jpg
@@ -344,7 +344,7 @@ config-schema:
             rendered locally as needed.
             @since 1.17
     ActionPaths:
-        default: {  }
+        default: { }
         type: object
         description: |-
             To set 'pretty' URL paths for actions other than
@@ -373,7 +373,7 @@ config-schema:
             @since 1.5
     UploadStashMaxAge:
         default: 21600
-        description: 'The maximum age of temporary (incomplete) uploaded files'
+        description: The maximum age of temporary (incomplete) uploaded files
     EnableAsyncUploads:
         default: false
         description: |-
@@ -387,10 +387,10 @@ config-schema:
             Only works if EnableAsyncUploads is also enabled
     UploadMaintenance:
         default: false
-        description: 'To disable file delete/restore temporarily'
+        description: To disable file delete/restore temporarily
     IllegalFileChars:
         default: ':\/\\'
-        deprecated: 'since 1.41; no longer customizable'
+        deprecated: since 1.41; no longer customizable
         description: |-
             Additional characters that are not allowed in filenames. They are replaced with '-' when
             uploading. Like $wgLegalTitleChars, this is a regexp character class.
@@ -400,16 +400,16 @@ config-schema:
     DeletedDirectory:
         default: false
         dynamicDefault:
-            use: [UploadDirectory]
-            callback: [MediaWiki\MainConfigSchema, getDefaultDeletedDirectory]
+            use: [ UploadDirectory ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultDeletedDirectory ]
         description: |-
             What directory to place deleted uploads in.
             Defaults to "{$wgUploadDirectory}/deleted".
     ImgAuthDetails:
         default: false
-        description: 'Set this to true if you use img_auth and want the user to see details on why access failed.'
+        description: Set this to true if you use img_auth and want the user to see details on why access failed.
     ImgAuthUrlPathMap:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Map of relative URL directories to match to internal mwstore:// base storage paths.
@@ -428,8 +428,8 @@ config-schema:
             - object
             - boolean
         dynamicDefault:
-            use: [UploadDirectory, ScriptPath, Favicon, UploadBaseUrl, UploadPath, HashedUploadDirectory, ThumbnailScriptPath, GenerateThumbnailOnParse, DeletedDirectory, UpdateCompatibleMetadata]
-            callback: [MediaWiki\MainConfigSchema, getDefaultLocalFileRepo]
+            use: [ UploadDirectory, ScriptPath, Favicon, UploadBaseUrl, UploadPath, HashedUploadDirectory, ThumbnailScriptPath, GenerateThumbnailOnParse, DeletedDirectory, UpdateCompatibleMetadata ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultLocalFileRepo ]
         description: |-
             File repository structures
             $wgLocalFileRepo is a single repository structure, and $wgForeignFileRepos is
@@ -596,7 +596,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Shortcut for the 'directory' setting of $wgForeignFileRepos.
             Only used if $wgUseSharedUploads is enabled.
@@ -605,7 +605,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Shortcut for the 'url' setting of $wgForeignFileRepos.
             Only used if $wgUseSharedUploads is enabled.
@@ -618,7 +618,7 @@ config-schema:
             Only used if $wgUseSharedUploads is enabled.
             @since 1.3
     RepositoryBaseUrl:
-        default: 'https://commons.wikimedia.org/wiki/File:'
+        default: "https://commons.wikimedia.org/wiki/File:"
         description: |-
             Shortcut for the 'descBaseUrl' setting of $wgForeignFileRepos.
             Only used if $wgUseSharedUploads is enabled.
@@ -641,7 +641,7 @@ config-schema:
             Only used if $wgUseSharedUploads is enabled.
             @since 1.4
     SharedUploadDBprefix:
-        default: ''
+        default: ""
         type: string
         description: |-
             Shortcut for the ForeignDBRepo 'tablePrefix' setting in $wgForeignFileRepos.
@@ -669,8 +669,8 @@ config-schema:
         default:
             fields: { description: true, date: false, categories: false }
             licensemessages: { local: generic-local, foreign: generic-foreign }
-            comment: { local: '', foreign: '' }
-            format: { filepage: $DESCRIPTION, description: $TEXT, ownwork: '', license: '', uncategorized: '' }
+            comment: { local: "", foreign: "" }
+            format: { filepage: $DESCRIPTION, description: $TEXT, ownwork: "", license: "", uncategorized: "" }
         type: object
         description: |-
             Configuration for file uploads using the embeddable upload dialog
@@ -679,7 +679,7 @@ config-schema:
             wikis using the action=query&meta=siteinfo API).
             See below for documentation of each property. None of the properties may be omitted.
     FileBackends:
-        default: {  }
+        default: { }
         type: object
         description: |-
             File backend structure configuration.
@@ -725,7 +725,7 @@ config-schema:
             These settings should be global to all wikis.
     ShowEXIF:
         dynamicDefault:
-            callback: [MediaWiki\MainConfigSchema, getDefaultShowEXIF]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultShowEXIF ]
         description: |-
             Whether to show Exif data.
             The effective default value is determined at runtime:
@@ -740,7 +740,7 @@ config-schema:
         default: null
     UpdateCompatibleMetadata:
         default: false
-        description: 'Shortcut for the ''updateCompatibleMetadata'' setting of $wgLocalFileRepo.'
+        description: "Shortcut for the 'updateCompatibleMetadata' setting of $wgLocalFileRepo."
     AllowCopyUploads:
         default: false
         description: |-
@@ -949,7 +949,7 @@ config-schema:
             $wgGroupPermissions TO RESTRICT UPLOADING to only those that you trust
     UploadSizeWarning:
         default: false
-        description: 'Warn if uploaded files are larger than this (in bytes), or false to disable'
+        description: "Warn if uploaded files are larger than this (in bytes), or false to disable"
     TrustedMediaFormats:
         default:
             - BITMAP
@@ -967,7 +967,7 @@ config-schema:
             to use this for further restrictions, like disabling direct
             [[media:...]] links for non-trusted formats.
     MediaHandlers:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Plugins for media file type handling.
@@ -1013,19 +1013,19 @@ config-schema:
             Use Image Magick instead of PHP builtin functions.
     ImageMagickConvertCommand:
         default: /usr/bin/convert
-        description: 'The convert command shipped with ImageMagick'
+        description: The convert command shipped with ImageMagick
     MaxInterlacingAreas:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Array of max pixel areas for interlacing per MIME type
             @since 1.27
     SharpenParameter:
         default: 0x0.4
-        description: 'Sharpening parameter to ImageMagick'
+        description: Sharpening parameter to ImageMagick
     SharpenReductionThreshold:
         default: 0.85
-        description: 'Reduction in linear dimensions below which sharpening will be enabled'
+        description: Reduction in linear dimensions below which sharpening will be enabled
     ImageMagickTempDir:
         default: false
         description: |-
@@ -1083,12 +1083,12 @@ config-schema:
     SVGConverters:
         default:
             ImageMagick: '$path/convert -background "#ffffff00" -thumbnail $widthx$height\! $input PNG:$output'
-            sodipodi: '$path/sodipodi -z -w $width -f $input -e $output'
-            inkscape: '$path/inkscape -z -w $width -f $input -e $output'
-            batik: 'java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d $output $input'
-            rsvg: '$path/rsvg-convert -w $width -h $height -o $output $input'
-            imgserv: '$path/imgserv-wrapper -i svg -o png -w$width $input $output'
-            ImagickExt: ['SvgHandler::rasterizeImagickExt']
+            sodipodi: $path/sodipodi -z -w $width -f $input -e $output
+            inkscape: $path/inkscape -z -w $width -f $input -e $output
+            batik: java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d $output $input
+            rsvg: $path/rsvg-convert -w $width -h $height -o $output $input
+            imgserv: $path/imgserv-wrapper -i svg -o png -w$width $input $output
+            ImagickExt: [ "SvgHandler::rasterizeImagickExt" ]
         type: object
         description: |-
             Scalable Vector Graphics (SVG) may be uploaded as images.
@@ -1099,13 +1099,13 @@ config-schema:
             are passed as parameters after $srcPath, $dstPath, $width, $height
     SVGConverter:
         default: ImageMagick
-        description: 'Pick a converter defined in $wgSVGConverters'
+        description: Pick a converter defined in $wgSVGConverters
     SVGConverterPath:
-        default: ''
-        description: 'If not in the executable PATH, specify the SVG converter path.'
+        default: ""
+        description: "If not in the executable PATH, specify the SVG converter path."
     SVGMaxSize:
         default: 5120
-        description: 'Don''t scale a SVG larger than this'
+        description: "Don't scale a SVG larger than this"
     SVGMetadataCutoff:
         default: 5242880
         description: |-
@@ -1179,7 +1179,7 @@ config-schema:
             $wgTiffThumbnailType = [ 'jpg', 'image/jpeg' ];
             ```
     ThumbnailEpoch:
-        default: '20030516000000'
+        default: "20030516000000"
         description: |-
             If rendered thumbnail files are older than this timestamp, they
             will be rerendered on demand as if the file didn't already exist.
@@ -1222,12 +1222,12 @@ config-schema:
             @since 1.7.0
     ShowArchiveThumbnails:
         default: true
-        description: 'Show thumbnails for old images on the image description page'
+        description: Show thumbnails for old images on the image description page
     EnableAutoRotation:
         default: null
         type:
             - boolean
-            - 'null'
+            - "null"
         description: |-
             If set to true, images that contain certain the exif orientation tag will
             be rotated accordingly. If set to null, try to auto-detect whether a scaler
@@ -1236,14 +1236,14 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Internal name of virus scanner. This serves as a key to the
             $wgAntivirusSetup array. Set this to NULL to disable virus scanning. If not
             null, every file uploaded will be scanned for viruses.
     AntivirusSetup:
         default:
-            clamav: { command: 'clamscan --no-summary ', codemap: { 0: 0, 1: 1, 52: -1, '*': false }, messagepattern: '/.*?:(.*)/sim' }
+            clamav: { command: "clamscan --no-summary ", codemap: { 0: 0, 1: 1, 52: -1, "*": false }, messagepattern: "/.*?:(.*)/sim" }
         type: object
         description: |-
             Configuration for different virus scanners. This an associative array of
@@ -1276,10 +1276,10 @@ config-schema:
             If not defined or the pattern does not match, the full message is shown to the user.
     AntivirusRequired:
         default: true
-        description: 'Determines if a failed virus scan (AV_SCAN_FAILED) will cause the file to be rejected.'
+        description: Determines if a failed virus scan (AV_SCAN_FAILED) will cause the file to be rejected.
     VerifyMimeType:
         default: true
-        description: 'Determines if the MIME type of uploaded files should be checked'
+        description: Determines if the MIME type of uploaded files should be checked
     MimeTypeFile:
         default: internal
         description: |-
@@ -1299,7 +1299,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Sets an external MIME detector program. The command must print only
             the MIME type to standard output.
@@ -1317,10 +1317,10 @@ config-schema:
             can be trusted.
     XMLMimeTypes:
         default:
-            'http://www.w3.org/2000/svg:svg': image/svg+xml
+            "http://www.w3.org/2000/svg:svg": image/svg+xml
             svg: image/svg+xml
-            'http://www.lysator.liu.se/~alla/dia/:diagram': application/x-dia-diagram
-            'http://www.w3.org/1999/xhtml:html': text/html
+            "http://www.lysator.liu.se/~alla/dia/:diagram": application/x-dia-diagram
+            "http://www.w3.org/1999/xhtml:html": text/html
             html: text/html
         type: object
         description: |-
@@ -1328,12 +1328,12 @@ config-schema:
             array = [ 'rootElement' => 'associatedMimeType' ]
     ImageLimits:
         default:
-            - [320, 240]
-            - [640, 480]
-            - [800, 600]
-            - [1024, 768]
-            - [1280, 1024]
-            - [2560, 2048]
+            - [ 320, 240 ]
+            - [ 640, 480 ]
+            - [ 800, 600 ]
+            - [ 1024, 768 ]
+            - [ 1280, 1024 ]
+            - [ 2560, 2048 ]
         type: array
         description: |-
             Limit images on image description pages to a user-selectable limit.
@@ -1369,7 +1369,7 @@ config-schema:
         default: null
         type:
             - array
-            - 'null'
+            - "null"
         description: |-
             When defined, is an array of image widths used as steps for thumbnail sizes.
             The thumbnail with smallest step that has larger value than requested will be shown
@@ -1382,7 +1382,7 @@ config-schema:
         default: null
         type:
             - number
-            - 'null'
+            - "null"
         description: |-
             Ratio of images that will use the thumbnail steps
             This is to allow for gradual roll out of thumbnail steps. It should be a number between 0 and 1.
@@ -1391,7 +1391,7 @@ config-schema:
         default: null
         type:
             - array
-            - 'null'
+            - "null"
         description: |-
             When defined, is an array of image widths used as buckets for thumbnail generation.
             The goal is to save resources by generating thumbnails based on reference buckets instead of
@@ -1412,7 +1412,7 @@ config-schema:
             If we want to render a thumbnail of width 220px, the 512px bucket will be used,
             because 220 + 50 = 270 and the closest bucket bigger than 270px is 512.
     UploadThumbnailRenderMap:
-        default: {  }
+        default: { }
         type: object
         description: |-
             When defined, is an array of thumbnail widths to be rendered at upload time. The idea is to
@@ -1450,7 +1450,7 @@ config-schema:
             (and free) TinyRGB profile when generating thumbnails.
             @since 1.26
     GalleryOptions:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Parameters for the "<gallery>" tag.
@@ -1473,7 +1473,7 @@ config-schema:
             by hardcoded px in wiki sourcecode.
     DirectoryMode:
         default: 511
-        description: 'Default value for chmod-ing of new directories.'
+        description: Default value for chmod-ing of new directories.
     ResponsiveImages:
         default: true
         description: |-
@@ -1503,7 +1503,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Path of the djvudump executable
             Enable this and $wgDjvuRenderer to enable djvu rendering
@@ -1514,7 +1514,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Path of the ddjvu DJVU renderer
             Enable this and $wgDjvuDump to enable djvu rendering
@@ -1523,7 +1523,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Path of the djvutxt DJVU text extraction utility
             Enable this and $wgDjvuDump to enable text layer extraction from djvu files
@@ -1534,14 +1534,14 @@ config-schema:
         default: pnmtojpeg
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Shell command for the DJVU post processor
             Default: pnmtojpeg, since ddjvu generates ppm output
             Set this to false to output the ppm file directly.
     DjvuOutputExtension:
         default: jpg
-        description: 'File extension for the DJVU post processor output'
+        description: File extension for the DJVU post processor output
     EmergencyContact:
         default: false
         description: |-
@@ -1598,10 +1598,10 @@ config-schema:
             emails for a given account. This is to prevent abuse by mail flooding.
     NewPasswordExpiry:
         default: 604800
-        description: 'The time, in seconds, when an emailed temporary password expires.'
+        description: "The time, in seconds, when an emailed temporary password expires."
     UserEmailConfirmationTokenExpiry:
         default: 604800
-        description: 'The time, in seconds, when an email confirmation email expires'
+        description: "The time, in seconds, when an email confirmation email expires"
     PasswordExpirationDays:
         default: false
         description: |-
@@ -1633,7 +1633,7 @@ config-schema:
             ```
     AdditionalMailParams:
         default: null
-        description: 'Additional email parameters, will be passed as the last argument to mail() call.'
+        description: "Additional email parameters, will be passed as the last argument to mail() call."
     AllowHTMLEmail:
         default: false
         description: |-
@@ -1690,7 +1690,7 @@ config-schema:
         default: false
         description: 'Use real name instead of username in e-mail "from" field.'
     UsersNotifiedOnAllChanges:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Array of usernames who will be sent a notification email for every change
@@ -1707,7 +1707,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Current wiki database schema name
             This should only contain alphanumeric and underscore characters ([A-Za-z0-9_]+).
@@ -1715,7 +1715,7 @@ config-schema:
             This is used to determine the current/local wiki ID (WikiMap::getCurrentWikiDbDomain).
             This should still be set even if $wgLBFactoryConf is configured.
     DBprefix:
-        default: ''
+        default: ""
         description: |-
             Current wiki database table name prefix
             This should only contain alphanumeric and underscore characters ([A-Za-z0-9_]+).
@@ -1725,19 +1725,19 @@ config-schema:
             This should still be set even if $wgLBFactoryConf is configured.
     DBserver:
         default: localhost
-        description: 'Database host name or IP address'
+        description: Database host name or IP address
     DBport:
         default: 5432
-        description: 'Database port number'
+        description: Database port number
     DBuser:
         default: wikiuser
-        description: 'Database username'
+        description: Database username
     DBpassword:
-        default: ''
-        description: 'Database user''s password'
+        default: ""
+        description: "Database user's password"
     DBtype:
         default: mysql
-        description: 'Database type'
+        description: Database type
     DBssl:
         default: false
         description: |-
@@ -1765,10 +1765,10 @@ config-schema:
             @since 1.42
     DBadminuser:
         default: null
-        description: 'Separate username for maintenance tasks. Leave as null to use the default.'
+        description: Separate username for maintenance tasks. Leave as null to use the default.
     DBadminpassword:
         default: null
-        description: 'Separate password for maintenance tasks. Leave as null to use the default.'
+        description: Separate password for maintenance tasks. Leave as null to use the default.
     SearchType:
         default: null
         description: |-
@@ -1791,10 +1791,10 @@ config-schema:
             (because it's namespaced for example), you can add a mapping for this in
             SearchMappings in extension.json.
     DBTableOptions:
-        default: 'ENGINE=InnoDB, DEFAULT CHARSET=binary'
-        description: 'MySQL table options to use during installation or update'
+        default: "ENGINE=InnoDB, DEFAULT CHARSET=binary"
+        description: MySQL table options to use during installation or update
     SQLMode:
-        default: ''
+        default: ""
         description: |-
             SQL Mode - default is turning off all modes, including strict, if set.
             null can be used to skip the setting for performance reasons and assume
@@ -1807,8 +1807,8 @@ config-schema:
             Will be used as default query group in ILoadBalancer::getConnection.
             @since 1.32
     SQLiteDataDir:
-        default: ''
-        description: 'To override default SQLite data directory ($docroot/../data)'
+        default: ""
+        description: To override default SQLite data directory ($docroot/../data)
     SharedDB:
         default: null
         description: |-
@@ -1829,9 +1829,9 @@ config-schema:
     SharedPrefix:
         default: false
         dynamicDefault:
-            use: [DBprefix]
-            callback: [MediaWiki\MainConfigSchema, getDefaultSharedPrefix]
-        description: '@see self::SharedDB'
+            use: [ DBprefix ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultSharedPrefix ]
+        description: "@see self::SharedDB"
     SharedTables:
         default:
             - user
@@ -1844,8 +1844,8 @@ config-schema:
     SharedSchema:
         default: false
         dynamicDefault:
-            use: [DBmwschema]
-            callback: [MediaWiki\MainConfigSchema, getDefaultSharedSchema]
+            use: [ DBmwschema ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultSharedSchema ]
         description: |-
             @see self::SharedDB
             @since 1.23
@@ -1921,12 +1921,12 @@ config-schema:
             @since 1.27
     DBerrorLog:
         default: false
-        description: 'File to log database errors to'
+        description: File to log database errors to
     DBerrorLogTZ:
         default: false
         dynamicDefault:
-            use: [Localtimezone]
-            callback: [MediaWiki\MainConfigSchema, getDefaultDBerrorLogTZ]
+            use: [ Localtimezone ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultDBerrorLogTZ ]
         description: |-
             Timezone to use in the error log.
             Defaults to the wiki timezone ($wgLocaltimezone).
@@ -1991,7 +1991,7 @@ config-schema:
             in milliseconds.
             @since 1.38
     VirtualDomainsMapping:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Mapping of virtual domain to external cluster db.
@@ -2034,7 +2034,7 @@ config-schema:
             History:
               - 1.44: Added
     ExternalLinksDomainGaps:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Gaps in the externallinks table for certain domains.
@@ -2052,7 +2052,7 @@ config-schema:
               - 1.41: Added
     ContentHandlers:
         default:
-            wikitext: { class: MediaWiki\Content\WikitextContentHandler, services: [TitleFactory, ParserFactory, GlobalIdGenerator, LanguageNameUtils, LinkRenderer, MagicWordFactory, ParsoidParserFactory] }
+            wikitext: { class: MediaWiki\Content\WikitextContentHandler, services: [ TitleFactory, ParserFactory, GlobalIdGenerator, LanguageNameUtils, LinkRenderer, MagicWordFactory, ParsoidParserFactory ] }
             javascript: MediaWiki\Content\JavaScriptContentHandler
             json: MediaWiki\Content\JsonContentHandler
             css: MediaWiki\Content\CssContentHandler
@@ -2065,7 +2065,7 @@ config-schema:
             that creates an instance of the appropriate ContentHandler subclass.
             @since 1.21
     NamespaceContentModels:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Associative array mapping namespace IDs to the name of the content model pages in that
@@ -2110,7 +2110,7 @@ config-schema:
             $wgExternalStores = [ "DB" ];
             ```
     ExternalServers:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Shortcut for setting `$wgLBFactoryConf["externalClusters"]`.
@@ -2166,7 +2166,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Specify the difference engine to use.
             Supported values:
@@ -2180,9 +2180,9 @@ config-schema:
         type:
             - string
             - boolean
-        description: 'Name of the external diff engine to use.'
+        description: Name of the external diff engine to use.
     Wikidiff2Options:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Options for wikidiff2:
@@ -2208,7 +2208,7 @@ config-schema:
         default: null
         type:
             - integer
-            - 'null'
+            - "null"
         description: |-
             Set a limit on server request wall clock time.
             If the Excimer extension is enabled, setting this will cause an exception
@@ -2238,25 +2238,25 @@ config-schema:
             @since 1.36
     MiserMode:
         default: false
-        description: 'Disable database-intensive features'
+        description: Disable database-intensive features
     DisableQueryPages:
         default: false
-        description: 'Disable all query pages if miser mode is on, not just some'
+        description: "Disable all query pages if miser mode is on, not just some"
     QueryCacheLimit:
         default: 1000
-        description: 'Number of rows to cache in ''querycache'' table when miser mode is on'
+        description: "Number of rows to cache in 'querycache' table when miser mode is on"
     WantedPagesThreshold:
         default: 1
         description: 'Number of links to a page required before it is deemed "wanted"'
     AllowSlowParserFunctions:
         default: false
-        description: 'Enable slow parser functions'
+        description: Enable slow parser functions
     AllowSchemaUpdates:
         default: true
-        description: 'Allow schema updates'
+        description: Allow schema updates
     MaxArticleSize:
         default: 2048
-        description: 'Maximum article size in kibibytes'
+        description: Maximum article size in kibibytes
     MemoryLimit:
         default: 50M
         description: |-
@@ -2266,7 +2266,7 @@ config-schema:
         default: null
         type:
             - object
-            - 'null'
+            - "null"
         description: |-
             Configuration for processing pool control, for use in high-traffic wikis.
             An implementation is provided in the PoolCounter extension.
@@ -2303,7 +2303,7 @@ config-schema:
             @since 1.16
     PoolCountClientConf:
         default:
-            servers: [127.0.0.1]
+            servers: [ 127.0.0.1 ]
             timeout: 0.1
         type: object
         description: |-
@@ -2340,7 +2340,7 @@ config-schema:
             For debugging
     MaximumMovedPages:
         default: 100
-        description: 'Maximum number of pages to move at once when moving subpages with a page.'
+        description: Maximum number of pages to move at once when moving subpages with a page.
     ForceDeferredUpdatesPreSend:
         default: false
         description: |-
@@ -2500,7 +2500,7 @@ config-schema:
             For MemcachedPeclBagOStuff parameters see {@link MemcachedPeclBagOStuff::__construct}
             For RedisBagOStuff parameters see {@link Wikimedia\ObjectCache\RedisBagOStuff::__construct}
     WANObjectCache:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Extra parameters to the WANObjectCache constructor.
@@ -2560,7 +2560,7 @@ config-schema:
     ParsoidCacheConfig:
         type: object
         properties:
-            StashType: { type: [integer, string, 'null'], default: null }
+            StashType: { type: [ integer, string, "null" ], default: null }
             StashDuration: { type: integer, default: 86400 }
             WarmParsoidParserCache: { type: boolean, default: false }
         description: |-
@@ -2599,8 +2599,8 @@ config-schema:
             parsoid-pcache: { default: { minCpuTime: 0 } }
         additionalProperties:
             type: object
-            description: 'A map of namespace IDs to filter definitions.'
-            additionalProperties: { type: object, description: 'A map of filter names to values.', properties: { minCpuTime: { type: number } } }
+            description: A map of namespace IDs to filter definitions.
+            additionalProperties: { type: object, description: A map of filter names to values., properties: { minCpuTime: { type: number } } }
         description: |-
             Per-namespace configuration for the ParserCache filter.
             There is one top level key for each cache name supported in ParserCacheFactory.
@@ -2615,7 +2615,7 @@ config-schema:
             under the "default" key will be used for pages in that namespace.
             @since 1.42
     ChronologyProtectorSecret:
-        default: ''
+        default: ""
         type: string
         description: |-
             Secret string for HMAC hashing in ChronologyProtector [optional]
@@ -2647,7 +2647,7 @@ config-schema:
             The default is 3600 (cache disabled).
     ObjectCacheSessionExpiry:
         default: 3600
-        description: 'The expiry time to use for session storage, in seconds.'
+        description: "The expiry time to use for session storage, in seconds."
     PHPSessionHandling:
         default: enable
         type: string
@@ -2676,9 +2676,9 @@ config-schema:
             @since 1.28
     MemCachedServers:
         default:
-            - '127.0.0.1:11211'
+            - "127.0.0.1:11211"
         type: array
-        description: 'The list of MemCached servers and port numbers'
+        description: The list of MemCached servers and port numbers
     MemCachedPersistent:
         default: false
         description: |-
@@ -2686,7 +2686,7 @@ config-schema:
             requests.
     MemCachedTimeout:
         default: 500000
-        description: 'Read/write timeout for MemCached server communication, in microseconds.'
+        description: "Read/write timeout for MemCached server communication, in microseconds."
     UseLocalMessageCache:
         default: false
         description: |-
@@ -2707,8 +2707,8 @@ config-schema:
         properties:
             class: { type: string, default: LocalisationCache }
             store: { type: string, default: detect }
-            storeClass: { type: [boolean, string], default: false }
-            storeDirectory: { type: [boolean, string], default: false }
+            storeClass: { type: [ boolean, string ], default: false }
+            storeDirectory: { type: [ boolean, string ], default: false }
             storeServer: { type: object, default: [] }
             forceRecache: { type: boolean, default: false }
             manualRecache: { type: boolean, default: false }
@@ -2740,9 +2740,9 @@ config-schema:
         default: null
     CachePages:
         default: true
-        description: 'Allow client-side caching of pages'
+        description: Allow client-side caching of pages
     CacheEpoch:
-        default: '20030516000000'
+        default: "20030516000000"
         description: |-
             Set this to current time to invalidate all prior cached pages. Affects both
             client-side and server-side caching.
@@ -2768,7 +2768,7 @@ config-schema:
             the MD5 hash of the title.  A value of 0 means all cache files will
             be put directly into the main file cache directory.
     RenderHashAppend:
-        default: ''
+        default: ""
         description: |-
             Append a configured value to the parser cache and the sitenotice key so
             that they can be kept separate for some class of activity.
@@ -2783,7 +2783,7 @@ config-schema:
             don't update as expected.
     SidebarCacheExpiry:
         default: 86400
-        description: 'Expiry time for the sidebar cache, in seconds'
+        description: "Expiry time for the sidebar cache, in seconds"
     UseGzip:
         default: false
         description: |-
@@ -2888,7 +2888,7 @@ config-schema:
             Default maximum age for raw CSS/JS accesses
             300 seconds = 5 minutes.
     CdnServers:
-        default: {  }
+        default: { }
         type: object
         description: |-
             List of proxy servers to purge on changes; default port is 80. Use IP addresses.
@@ -2897,7 +2897,7 @@ config-schema:
             For a list of trusted servers which *aren't* purged, see $wgSquidServersNoPurge.
             @since 1.34 Renamed from $wgSquidServers.
     CdnServersNoPurge:
-        default: {  }
+        default: { }
         type: object
         description: |-
             As with $wgCdnServers, except these servers aren't purged on page changes;
@@ -2906,7 +2906,7 @@ config-schema:
             @since 1.23 Supports CIDR ranges
             @since 1.34 Renamed from $wgSquidServersNoPurge
     HTCPRouting:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Routing configuration for HTCP multicast purging. Add elements here to
@@ -2955,7 +2955,7 @@ config-schema:
             @see self::HTCPRouting
     UsePrivateIPs:
         default: false
-        description: 'Should forwarded Private IPs be accepted?'
+        description: Should forwarded Private IPs be accepted?
     CdnMatchParameterOrder:
         default: true
         description: |-
@@ -2982,7 +2982,7 @@ config-schema:
             in a html element with lang=XX attribute. This behavior can be overridden
             via hooks, see Title::getPageLanguage.
     GrammarForms:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Some languages need different word forms, usually for different cases.
@@ -2993,10 +2993,10 @@ config-schema:
             ```
     InterwikiMagic:
         default: true
-        description: 'Treat language links as magic connectors, not inline links'
+        description: "Treat language links as magic connectors, not inline links"
     HideInterlanguageLinks:
         default: false
-        description: 'Hide interlanguage links from the sidebar'
+        description: Hide interlanguage links from the sidebar
     ExtraInterlanguageLinkPrefixes:
         default: []
         type: array
@@ -3019,7 +3019,7 @@ config-schema:
               then map that custom language code to a language name in
               ExtraLanguageNames.
     InterlanguageLinkCodeMap:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Map of interlanguage link codes to language codes. This is useful to override
@@ -3027,13 +3027,13 @@ config-schema:
             exactly
             @since 1.35
     ExtraLanguageNames:
-        default: {  }
+        default: { }
         type: object
-        description: 'List of language names or overrides for default names in Names.php'
+        description: List of language names or overrides for default names in Names.php
     ExtraLanguageCodes:
         default:
             bh: bho
-            'no': nb
+            no: nb
             simple: en
         type: object
         description: |-
@@ -3047,7 +3047,7 @@ config-schema:
             value in $wgExtraLanguageCodes will be used.
             @since 1.29
     DummyLanguageCodes:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Functionally the same as $wgExtraLanguageCodes, but deprecated. Instead of
@@ -3089,10 +3089,10 @@ config-schema:
             Interface messages will be loaded from the database.
     MaxMsgCacheEntrySize:
         default: 10000
-        description: 'Maximum entry size in the message cache, in bytes'
+        description: "Maximum entry size in the message cache, in bytes"
     DisableLangConversion:
         default: false
-        description: 'Whether to enable language variant conversion.'
+        description: Whether to enable language variant conversion.
     DisableTitleConversion:
         default: false
         description: |-
@@ -3109,7 +3109,7 @@ config-schema:
             Whether to enable the pig Latin variant of English (en-x-piglatin),
             used to ease variant development work.
     DisabledVariants:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Disabled variants array of language variant conversion.
@@ -3154,7 +3154,7 @@ config-schema:
             registration forms; edit the "loginlanguagelinks" message to
             customise these.
     ForceUIMsgAsContentMsg:
-        default: {  }
+        default: { }
         type: object
         description: |-
             When translating messages with wfMessage(), it is not always clear what
@@ -3187,7 +3187,7 @@ config-schema:
             @since 1.32
     Localtimezone:
         dynamicDefault:
-            callback: [MediaWiki\MainConfigSchema, getDefaultLocaltimezone]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultLocaltimezone ]
         description: |-
             Fake out the timezone that the server thinks it's in. This will be used for
             date display and not for what's stored in the DB. Leave to null to retain
@@ -3209,8 +3209,8 @@ config-schema:
         default: null
     LocalTZoffset:
         dynamicDefault:
-            use: [Localtimezone]
-            callback: [MediaWiki\MainConfigSchema, getDefaultLocalTZoffset]
+            use: [ Localtimezone ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultLocalTZoffset ]
         description: |-
             Set an offset from UTC in minutes to use for the default timezone setting
             for anonymous users and new user accounts.
@@ -3219,7 +3219,7 @@ config-schema:
             By default, this will be set to match $wgLocaltimezone.
         default: null
     OverrideUcfirstCharacters:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Map of Unicode characters for which capitalization is overridden in
@@ -3229,7 +3229,7 @@ config-schema:
             @since 1.34
     MimeType:
         default: text/html
-        description: 'The default Content-Type header.'
+        description: The default Content-Type header.
     Html5Version:
         default: null
         description: |-
@@ -3246,7 +3246,7 @@ config-schema:
             "Publish page"/"Publish changes".
             @since 1.28
     XhtmlNamespaces:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Permit other namespaces in addition to the w3.org default.
@@ -3259,7 +3259,7 @@ config-schema:
             element, but IE needs it there in some circumstances.
             This is ignored if $wgMimeType is set to a non-XML MIME type.
     SiteNotice:
-        default: ''
+        default: ""
         description: |-
             Site notice shown at the top of each page
             MediaWiki:Sitenotice page, which will override this. You can also
@@ -3277,7 +3277,7 @@ config-schema:
             @since 1.37
             @see https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html
     SkinMetaTags:
-        default: {  }
+        default: { }
         type: object
         description: |-
             An array of open graph tags which should be added by all skins.
@@ -3295,7 +3295,7 @@ config-schema:
             Fallback skin used when the skin defined by $wgDefaultSkin can't be found.
             @since 1.24
     SkipSkins:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Specify the names of skins that should not be presented in the list of
@@ -3306,7 +3306,7 @@ config-schema:
             @see \SkinFactory::getAllowedSkins
     DisableOutputCompression:
         default: false
-        description: 'Disable output compression (enabled by default if zlib is available)'
+        description: Disable output compression (enabled by default if zlib is available)
     FragmentMode:
         default:
             - html5
@@ -3345,7 +3345,7 @@ config-schema:
     FooterIcons:
         default:
             copyright: { copyright: [] }
-            poweredby: { mediawiki: { src: null, url: 'https://www.mediawiki.org/', alt: 'Powered by MediaWiki', lang: en } }
+            poweredby: { mediawiki: { src: null, url: "https://www.mediawiki.org/", alt: Powered by MediaWiki, lang: en } }
         type: object
         description: |-
             Abstract list of footer icons for skins in place of old copyrightico and poweredbyico code
@@ -3384,7 +3384,7 @@ config-schema:
             - false = split login and create account into two separate links
     Edititis:
         default: false
-        description: 'Display user edit counts in various prominent places.'
+        description: Display user edit counts in various prominent places.
     Send404Code:
         default: true
         description: |-
@@ -3429,7 +3429,7 @@ config-schema:
                 'wikit' => 'https://mySpecialWiki.com'
             ];
     ResourceModules:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Define extra client-side modules to be registered with ResourceLoader.
@@ -3665,7 +3665,7 @@ config-schema:
             ```
             @since 1.17
     ResourceModuleSkinStyles:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Add extra skin-specific styles to a resource module.
@@ -3742,7 +3742,7 @@ config-schema:
             ];
             ```
     ResourceLoaderSources:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Extensions should register foreign module sources here. 'local' is a
@@ -3755,13 +3755,13 @@ config-schema:
     ResourceBasePath:
         default: null
         dynamicDefault:
-            use: [ScriptPath]
-            callback: [MediaWiki\MainConfigSchema, getDefaultResourceBasePath]
+            use: [ ScriptPath ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultResourceBasePath ]
         description: |-
             The default 'remoteBasePath' value for instances of MediaWiki\ResourceLoader\FileModule.
             Defaults to $wgScriptPath.
     ResourceLoaderMaxage:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Override how long a CDN or browser may cache a ResourceLoader HTTP response.
@@ -3857,8 +3857,8 @@ config-schema:
     MetaNamespace:
         default: false
         dynamicDefault:
-            use: [Sitename]
-            callback: [MediaWiki\MainConfigSchema, getDefaultMetaNamespace]
+            use: [ Sitename ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultMetaNamespace ]
         description: |-
             Name of the project namespace. If left set to false, $wgSitename will be
             used instead.
@@ -3873,7 +3873,7 @@ config-schema:
         default:
             -2: Media
             -1: Special
-            0: ''
+            0: ""
             1: Talk
             2: User
             3: User_talk
@@ -3895,7 +3895,7 @@ config-schema:
             Must not be changed directly in configuration or by extensions, use $wgExtraNamespaces
             instead.
     ExtraNamespaces:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Additional namespaces. If the namespaces defined in Language.php and
@@ -3919,7 +3919,7 @@ config-schema:
             ```
             @todo Add a note about maintenance/namespaceDupes.php
     ExtraGenderNamespaces:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Same as above, but for namespaces with gender distinction.
@@ -3927,7 +3927,7 @@ config-schema:
             using $wgExtraNamespaces for the same index.
             @since 1.18
     NamespaceAliases:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Define extra namespace aliases.
@@ -3947,7 +3947,7 @@ config-schema:
             including those defined by other means.
     LegalTitleChars:
         default: ' %!"$&''()*,\-.\/0-9:;=?@A-Z\\^_`a-z~\x80-\xFF+'
-        deprecated: 'since 1.41; use Extension:TitleBlacklist to customize'
+        deprecated: "since 1.41; use Extension:TitleBlacklist to customize"
         description: |-
             Allowed title characters -- regex character class
             Don't change this unless you know what you're doing
@@ -3977,7 +3977,7 @@ config-schema:
             appearing with a capital at the beginning of a sentence will *not* go to the
             same place as links in the middle of a sentence using a lowercase initial.
     CapitalLinkOverrides:
-        default: {  }
+        default: { }
         type: object
         description: |-
             @since 1.16 - This can now be set per-namespace. Some special namespaces (such as Special,
@@ -4073,7 +4073,7 @@ config-schema:
             Note, recent changes feeds use only the first entry in this array. See $wgRCFeeds.
     InterwikiExpiry:
         default: 10800
-        description: 'Expiry time for cache of interwiki table'
+        description: Expiry time for cache of interwiki table
     InterwikiCache:
         default: false
         type:
@@ -4103,7 +4103,7 @@ config-schema:
             - 3: site levels
     InterwikiFallbackSite:
         default: wiki
-        description: 'Fallback site, if unable to resolve from cache'
+        description: "Fallback site, if unable to resolve from cache"
     RedirectSources:
         default: false
         description: |-
@@ -4127,7 +4127,7 @@ config-schema:
             @since 1.21
     MaxTocLevel:
         default: 999
-        description: 'Maximum indent level of toc.'
+        description: Maximum indent level of toc.
     MaxPPNodeCount:
         default: 1000000
         description: |-
@@ -4142,37 +4142,37 @@ config-schema:
             stop the parser before it hits the xdebug limit.
     MaxPPExpandDepth:
         default: 100
-        description: '@see self::MaxTemplateDepth'
+        description: "@see self::MaxTemplateDepth"
     UrlProtocols:
         default:
-            - 'bitcoin:'
-            - 'ftp://'
-            - 'ftps://'
-            - 'geo:'
-            - 'git://'
-            - 'gopher://'
-            - 'http://'
-            - 'https://'
-            - 'irc://'
-            - 'ircs://'
-            - 'magnet:'
-            - 'mailto:'
-            - 'matrix:'
-            - 'mms://'
-            - 'news:'
-            - 'nntp://'
-            - 'redis://'
-            - 'sftp://'
-            - 'sip:'
-            - 'sips:'
-            - 'sms:'
-            - 'ssh://'
-            - 'svn://'
-            - 'tel:'
-            - 'telnet://'
-            - 'urn:'
-            - 'worldwind://'
-            - 'xmpp:'
+            - "bitcoin:"
+            - "ftp://"
+            - "ftps://"
+            - "geo:"
+            - "git://"
+            - "gopher://"
+            - "http://"
+            - "https://"
+            - "irc://"
+            - "ircs://"
+            - "magnet:"
+            - "mailto:"
+            - "matrix:"
+            - "mms://"
+            - "news:"
+            - "nntp://"
+            - "redis://"
+            - "sftp://"
+            - "sip:"
+            - "sips:"
+            - "sms:"
+            - "ssh://"
+            - "svn://"
+            - "tel:"
+            - "telnet://"
+            - "urn:"
+            - "worldwind://"
+            - "xmpp:"
             - //
         type: array
         description: |-
@@ -4184,12 +4184,12 @@ config-schema:
             @see \MediaWiki\Utils\UrlUtils::parse()
     CleanSignatures:
         default: true
-        description: 'If true, removes (by substituting) templates in signatures.'
+        description: "If true, removes (by substituting) templates in signatures."
     AllowExternalImages:
         default: false
-        description: 'Whether to allow inline image pointing to other websites'
+        description: Whether to allow inline image pointing to other websites
     AllowExternalImagesFrom:
-        default: ''
+        default: ""
         description: |-
             If the above is false, you can specify an exception here. Image URLs
             that start with this string are then rendered, while all others are not.
@@ -4211,7 +4211,7 @@ config-schema:
             Or false to disable it
             @since 1.14
     TidyConfig:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Configuration for HTML postprocessing tool. Set this to a configuration
@@ -4304,7 +4304,7 @@ config-schema:
             externallinks dataset, use this value to override:
     AllowDisplayTitle:
         default: true
-        description: 'Allow DISPLAYTITLE to change title display'
+        description: Allow DISPLAYTITLE to change title display
     RestrictDisplayTitle:
         default: true
         description: |-
@@ -4323,7 +4323,7 @@ config-schema:
             Setting it to 'false' will disable the preprocessor cache.
     EnableScaryTranscluding:
         default: false
-        description: 'Enable interwiki transcluding.  Only when iw_trans=1 in the interwiki table.'
+        description: Enable interwiki transcluding.  Only when iw_trans=1 in the interwiki table.
     TranscludeCacheExpiry:
         default: 3600
         description: |-
@@ -4422,7 +4422,7 @@ config-schema:
             @since 1.36
     CentralIdLookupProviders:
         default:
-            local: { class: MediaWiki\User\CentralId\LocalIdLookup, services: [MainConfig, DBLoadBalancerFactory, HideUserUtils] }
+            local: { class: MediaWiki\User\CentralId\LocalIdLookup, services: [ MainConfig, DBLoadBalancerFactory, HideUserUtils ] }
         type: object
         description: |-
             Central ID lookup providers
@@ -4431,10 +4431,10 @@ config-schema:
     CentralIdLookupProvider:
         default: local
         type: string
-        description: 'Central ID lookup provider to use by default'
+        description: Central ID lookup provider to use by default
     UserRegistrationProviders:
         default:
-            local: { class: MediaWiki\User\Registration\LocalUserRegistrationProvider, services: [UserFactory, ConnectionProvider] }
+            local: { class: MediaWiki\User\Registration\LocalUserRegistrationProvider, services: [ UserFactory, ConnectionProvider ] }
         type: object
         description: |-
             User registration timestamp provider classes
@@ -4442,7 +4442,7 @@ config-schema:
     PasswordPolicy:
         default:
             policies: { bureaucrat: { MinimalPasswordLength: 10, MinimumPasswordLengthToLogin: 1 }, sysop: { MinimalPasswordLength: 10, MinimumPasswordLengthToLogin: 1 }, interface-admin: { MinimalPasswordLength: 10, MinimumPasswordLengthToLogin: 1 }, bot: { MinimalPasswordLength: 10, MinimumPasswordLengthToLogin: 1 }, default: { MinimalPasswordLength: { value: 8, suggestChangeOnLogin: true }, PasswordCannotBeSubstringInUsername: { value: true, suggestChangeOnLogin: true }, PasswordCannotMatchDefaults: { value: true, suggestChangeOnLogin: true }, MaximalPasswordLength: { value: 4096, suggestChangeOnLogin: true }, PasswordNotInCommonList: { value: true, suggestChangeOnLogin: true } } }
-            checks: { MinimalPasswordLength: [MediaWiki\Password\PasswordPolicyChecks, checkMinimalPasswordLength], MinimumPasswordLengthToLogin: [MediaWiki\Password\PasswordPolicyChecks, checkMinimumPasswordLengthToLogin], PasswordCannotBeSubstringInUsername: [MediaWiki\Password\PasswordPolicyChecks, checkPasswordCannotBeSubstringInUsername], PasswordCannotMatchDefaults: [MediaWiki\Password\PasswordPolicyChecks, checkPasswordCannotMatchDefaults], MaximalPasswordLength: [MediaWiki\Password\PasswordPolicyChecks, checkMaximalPasswordLength], PasswordNotInCommonList: [MediaWiki\Password\PasswordPolicyChecks, checkPasswordNotInCommonList] }
+            checks: { MinimalPasswordLength: [ MediaWiki\Password\PasswordPolicyChecks, checkMinimalPasswordLength ], MinimumPasswordLengthToLogin: [ MediaWiki\Password\PasswordPolicyChecks, checkMinimumPasswordLengthToLogin ], PasswordCannotBeSubstringInUsername: [ MediaWiki\Password\PasswordPolicyChecks, checkPasswordCannotBeSubstringInUsername ], PasswordCannotMatchDefaults: [ MediaWiki\Password\PasswordPolicyChecks, checkPasswordCannotMatchDefaults ], MaximalPasswordLength: [ MediaWiki\Password\PasswordPolicyChecks, checkMaximalPasswordLength ], PasswordNotInCommonList: [ MediaWiki\Password\PasswordPolicyChecks, checkPasswordNotInCommonList ] }
         type: object
         mergeStrategy: array_replace_recursive
         description: |-
@@ -4507,7 +4507,7 @@ config-schema:
         default: null
         type:
             - object
-            - 'null'
+            - "null"
         description: |-
             Configure AuthManager
             All providers are constructed using ObjectFactory, see that for the general
@@ -4526,8 +4526,8 @@ config-schema:
     AuthManagerAutoConfig:
         default:
             preauth: { MediaWiki\Auth\ThrottlePreAuthenticationProvider: { class: MediaWiki\Auth\ThrottlePreAuthenticationProvider, sort: 0 } }
-            primaryauth: { MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider: { class: MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider, services: [DBLoadBalancerFactory, UserOptionsLookup], args: [{ authoritative: false }], sort: 0 }, MediaWiki\Auth\LocalPasswordPrimaryAuthenticationProvider: { class: MediaWiki\Auth\LocalPasswordPrimaryAuthenticationProvider, services: [DBLoadBalancerFactory], args: [{ authoritative: true }], sort: 100 } }
-            secondaryauth: { MediaWiki\Auth\CheckBlocksSecondaryAuthenticationProvider: { class: MediaWiki\Auth\CheckBlocksSecondaryAuthenticationProvider, sort: 0 }, MediaWiki\Auth\ResetPasswordSecondaryAuthenticationProvider: { class: MediaWiki\Auth\ResetPasswordSecondaryAuthenticationProvider, sort: 100 }, MediaWiki\Auth\EmailNotificationSecondaryAuthenticationProvider: { class: MediaWiki\Auth\EmailNotificationSecondaryAuthenticationProvider, services: [DBLoadBalancerFactory], sort: 200 } }
+            primaryauth: { MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider: { class: MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider, services: [ DBLoadBalancerFactory, UserOptionsLookup ], args: [ { authoritative: false } ], sort: 0 }, MediaWiki\Auth\LocalPasswordPrimaryAuthenticationProvider: { class: MediaWiki\Auth\LocalPasswordPrimaryAuthenticationProvider, services: [ DBLoadBalancerFactory ], args: [ { authoritative: true } ], sort: 100 } }
+            secondaryauth: { MediaWiki\Auth\CheckBlocksSecondaryAuthenticationProvider: { class: MediaWiki\Auth\CheckBlocksSecondaryAuthenticationProvider, sort: 0 }, MediaWiki\Auth\ResetPasswordSecondaryAuthenticationProvider: { class: MediaWiki\Auth\ResetPasswordSecondaryAuthenticationProvider, sort: 100 }, MediaWiki\Auth\EmailNotificationSecondaryAuthenticationProvider: { class: MediaWiki\Auth\EmailNotificationSecondaryAuthenticationProvider, services: [ DBLoadBalancerFactory ], sort: 200 } }
         type: object
         mergeStrategy: array_plus_2d
         description: |-
@@ -4638,10 +4638,10 @@ config-schema:
         default:
             A: { class: MediaWiki\Password\MWOldPassword }
             B: { class: MediaWiki\Password\MWSaltedPassword }
-            pbkdf2-legacyA: { class: MediaWiki\Password\LayeredParameterizedPassword, types: [A, pbkdf2] }
-            pbkdf2-legacyB: { class: MediaWiki\Password\LayeredParameterizedPassword, types: [B, pbkdf2] }
+            pbkdf2-legacyA: { class: MediaWiki\Password\LayeredParameterizedPassword, types: [ A, pbkdf2 ] }
+            pbkdf2-legacyB: { class: MediaWiki\Password\LayeredParameterizedPassword, types: [ B, pbkdf2 ] }
             bcrypt: { class: MediaWiki\Password\BcryptPassword, cost: 9 }
-            pbkdf2: { class: MediaWiki\Password\Pbkdf2PasswordUsingOpenSSL, algo: sha512, cost: '30000', length: '64' }
+            pbkdf2: { class: MediaWiki\Password\Pbkdf2PasswordUsingOpenSSL, algo: sha512, cost: "30000", length: "64" }
             argon2: { class: MediaWiki\Password\Argon2Password, algo: auto }
         type: object
         description: |-
@@ -4676,7 +4676,7 @@ config-schema:
             has the effect of disabling password resets entirely
     MaxSigChars:
         default: 255
-        description: 'Maximum number of Unicode characters in signature'
+        description: Maximum number of Unicode characters in signature
     SignatureValidation:
         default: warning
         description: |-
@@ -4704,21 +4704,21 @@ config-schema:
             script ./maintenance/checkUsernames.php once you have changed this value.
     ReservedUsernames:
         default:
-            - 'MediaWiki default'
-            - 'Conversion script'
-            - 'Maintenance script'
-            - 'Template namespace initialisation script'
+            - MediaWiki default
+            - Conversion script
+            - Maintenance script
+            - Template namespace initialisation script
             - ScriptImporter
-            - 'Delete page script'
-            - 'Move page script'
-            - 'Command line script'
-            - 'Unknown user'
-            - 'msg:double-redirect-fixer'
-            - 'msg:usermessage-editor'
-            - 'msg:proxyblocker'
-            - 'msg:sorbs'
-            - 'msg:spambot_username'
-            - 'msg:autochange-username'
+            - Delete page script
+            - Move page script
+            - Command line script
+            - Unknown user
+            - "msg:double-redirect-fixer"
+            - "msg:usermessage-editor"
+            - "msg:proxyblocker"
+            - "msg:sorbs"
+            - "msg:spambot_username"
+            - "msg:autochange-username"
         type: array
         description: |-
             Array of usernames which may not be registered or logged in from
@@ -4751,7 +4751,7 @@ config-schema:
             imagesize: 2
             minordefault: 0
             newpageshidepatrolled: 0
-            nickname: ''
+            nickname: ""
             norollbackdiff: 0
             prefershttps: 1
             previewonfirst: 0
@@ -4807,7 +4807,7 @@ config-schema:
             only.
             @see self::ConditionalUserOptions
     ConditionalUserOptions:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Conditional defaults for user options
@@ -4836,15 +4836,15 @@ config-schema:
     HiddenPrefs:
         default: []
         type: array
-        description: 'An array of preferences to not show for the user'
+        description: An array of preferences to not show for the user
     InvalidUsernameCharacters:
-        default: '@:>='
+        default: "@:>="
         description: |-
             Characters to prevent during new account creations.
             This is used in a regular expression character class during
             registration (regex metacharacters like / are escaped).
     UserrightsInterwikiDelimiter:
-        default: '@'
+        default: "@"
         description: |-
             Character used as a delimiter when testing for interwiki userrights
             (In Special:UserRights, it is possible to modify users on different
@@ -4863,7 +4863,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Versioning for authentication tokens.
             If non-null, this is combined with the user's secret (the user_token field
@@ -4873,8 +4873,8 @@ config-schema:
     SessionProviders:
         type: object
         default:
-            MediaWiki\Session\CookieSessionProvider: { class: MediaWiki\Session\CookieSessionProvider, args: [{ priority: 30 }] }
-            MediaWiki\Session\BotPasswordSessionProvider: { class: MediaWiki\Session\BotPasswordSessionProvider, args: [{ priority: 75 }], services: [GrantsInfo] }
+            MediaWiki\Session\CookieSessionProvider: { class: MediaWiki\Session\CookieSessionProvider, args: [ { priority: 30 } ] }
+            MediaWiki\Session\BotPasswordSessionProvider: { class: MediaWiki\Session\BotPasswordSessionProvider, args: [ { priority: 75 } ], services: [ GrantsInfo ] }
         description: |-
             MediaWiki\Session\SessionProvider configuration.
             Values are ObjectFactory specifications for the SessionProviders to be
@@ -4885,14 +4885,14 @@ config-schema:
         properties:
             known: { type: boolean, default: false }
             enabled: { type: boolean, default: false }
-            actions: { type: array, default: [edit] }
+            actions: { type: array, default: [ edit ] }
             genPattern: { type: string, default: ~$1 }
-            matchPattern: { type: [string, array, 'null'], default: null }
-            reservedPattern: { type: [string, 'null'], default: ~$1 }
+            matchPattern: { type: [ string, array, "null" ], default: null }
+            reservedPattern: { type: [ string, "null" ], default: ~$1 }
             serialProvider: { type: object, default: { type: local, useYear: true } }
             serialMapping: { type: object, default: { type: readable-numeric } }
-            expireAfterDays: { type: [integer, 'null'], default: 90 }
-            notifyBeforeExpirationDays: { type: [integer, 'null'], default: 10 }
+            expireAfterDays: { type: [ integer, "null" ], default: 90 }
+            notifyBeforeExpirationDays: { type: [ integer, "null" ], default: 10 }
         type: object
         description: |-
             Configuration for automatic creation of temporary accounts on page save.
@@ -4965,10 +4965,10 @@ config-schema:
     AutoblockExemptions:
         default: []
         type: array
-        description: 'List of IP addresses or CIDR ranges that are exempt from autoblocks.'
+        description: List of IP addresses or CIDR ranges that are exempt from autoblocks.
     AutoblockExpiry:
         default: 86400
-        description: 'Number of seconds before autoblock entries expire. Default 86400 = 1 day.'
+        description: Number of seconds before autoblock entries expire. Default 86400 = 1 day.
     BlockAllowsUTEdit:
         default: true
         description: |-
@@ -5081,7 +5081,7 @@ config-schema:
             additionalProperties: { type: boolean }
         mergeStrategy: array_plus_2d
         default:
-            '*': { createaccount: true, read: true, edit: true, createpage: true, createtalk: true, viewmyprivateinfo: true, editmyprivateinfo: true, editmyoptions: true }
+            "*": { createaccount: true, read: true, edit: true, createpage: true, createtalk: true, viewmyprivateinfo: true, editmyprivateinfo: true, editmyoptions: true }
             user: { move: true, move-subpages: true, move-rootuserpages: true, move-categorypages: true, movefile: true, read: true, edit: true, createpage: true, createtalk: true, upload: true, reupload: true, reupload-shared: true, minoredit: true, editmyusercss: true, editmyuserjson: true, editmyuserjs: true, editmyuserjsredirect: true, sendemail: true, applychangetags: true, changetags: true, editcontentmodel: true, viewmywatchlist: true, editmywatchlist: true }
             autoconfirmed: { autoconfirmed: true, editsemiprotected: true }
             bot: { bot: true, autoconfirmed: true, editsemiprotected: true, nominornewtalk: true, autopatrol: true, suppressredirect: true, apihighlimits: true }
@@ -5120,7 +5120,7 @@ config-schema:
             @since 1.41
             @see \MediaWiki\User\UserGroupManager::getUserPrivilegedGroups()
     RevokePermissions:
-        default: {  }
+        default: { }
         type: object
         mergeStrategy: array_plus_2d
         description: |-
@@ -5130,7 +5130,7 @@ config-schema:
             Improperly setting this could mean that your users will be unable to perform
             certain essential tasks, so use at your own risk!
     GroupInheritsPermissions:
-        default: {  }
+        default: { }
         type: object
         additionalProperties:
             type: string
@@ -5150,13 +5150,13 @@ config-schema:
             @since 1.38
     ImplicitGroups:
         default:
-            - '*'
+            - "*"
             - user
             - autoconfirmed
         type: array
-        description: 'Implicit groups, aren''t shown on Special:Listusers or somewhere else'
+        description: "Implicit groups, aren't shown on Special:Listusers or somewhere else"
     GroupsAddToSelf:
-        default: {  }
+        default: { }
         type: object
         description: |-
             A map of group names that the user is in, to group names that those users
@@ -5176,9 +5176,9 @@ config-schema:
             This allows users in the '*' group (i.e. any user) to remove themselves from
             any group that they happen to be in.
     GroupsRemoveFromSelf:
-        default: {  }
+        default: { }
         type: object
-        description: '@see self::GroupsAddToSelf'
+        description: "@see self::GroupsAddToSelf"
     RestrictionTypes:
         default:
             - create
@@ -5194,7 +5194,7 @@ config-schema:
             applicable to a specific title (create and upload)
     RestrictionLevels:
         default:
-            - ''
+            - ""
             - autoconfirmed
             - sysop
         type: array
@@ -5230,7 +5230,7 @@ config-schema:
             'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility.
             'sysop' is not changed, since it really shouldn't be here.
     NamespaceProtection:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Set the minimum permissions required to edit pages in each
@@ -5238,7 +5238,7 @@ config-schema:
             have all of them to edit pages in that namespace.
             @note NS_MEDIAWIKI is implicitly restricted to 'editinterface'.
     NonincludableNamespaces:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Pages in namespaces in this array can not be used as templates.
@@ -5275,7 +5275,7 @@ config-schema:
             ```
     Autopromote:
         default:
-            autoconfirmed: ['&', [1, null], [2, null]]
+            autoconfirmed: [ "&", [ 1, null ], [ 2, null ] ]
         type: object
         description: |-
             Array containing the conditions of automatic promotion of a user to specific groups.
@@ -5357,7 +5357,7 @@ config-schema:
             only new groups the user was autopromoted to.
             @since 1.44
     AddGroups:
-        default: {  }
+        default: { }
         type: object
         mergeStrategy: array_merge_recursive
         description: |-
@@ -5381,10 +5381,10 @@ config-schema:
             $wgRemoveGroups['sysop'] = [ 'sysop', 'bot' ];
             ```
     RemoveGroups:
-        default: {  }
+        default: { }
         type: object
         mergeStrategy: array_merge_recursive
-        description: '@see self::AddGroups'
+        description: "@see self::AddGroups"
     AvailableRights:
         default: []
         type: array
@@ -5526,7 +5526,7 @@ config-schema:
     SummarySpamRegex:
         default: []
         type: array
-        description: 'Same as SpamRegex except for edit summaries'
+        description: Same as SpamRegex except for edit summaries
     EnableDnsBlacklist:
         default: false
         description: |-
@@ -5590,22 +5590,22 @@ config-schema:
             (transparent) proxies without needing to block the proxies themselves.
     RateLimits:
         default:
-            edit: { ip: [8, 60], newbie: [8, 60], user: [90, 60] }
-            move: { newbie: [2, 120], user: [8, 60] }
-            upload: { ip: [8, 60], newbie: [8, 60] }
-            rollback: { user: [10, 60], newbie: [5, 120] }
-            mailpassword: { ip: [5, 3600] }
-            sendemail: { ip: [5, 86400], newbie: [5, 86400], user: [20, 86400] }
-            changeemail: { ip-all: [10, 3600], user: [4, 86400] }
-            confirmemail: { ip-all: [10, 3600], user: [4, 86400] }
-            purge: { ip: [30, 60], user: [30, 60] }
-            linkpurge: { ip: [30, 60], user: [30, 60] }
-            renderfile: { ip: [700, 30], user: [700, 30] }
-            renderfile-nonstandard: { ip: [70, 30], user: [70, 30] }
-            stashedit: { ip: [30, 60], newbie: [30, 60] }
-            stashbasehtml: { ip: [5, 60], newbie: [5, 60] }
-            changetags: { ip: [8, 60], newbie: [8, 60] }
-            editcontentmodel: { newbie: [2, 120], user: [8, 60] }
+            edit: { ip: [ 8, 60 ], newbie: [ 8, 60 ], user: [ 90, 60 ] }
+            move: { newbie: [ 2, 120 ], user: [ 8, 60 ] }
+            upload: { ip: [ 8, 60 ], newbie: [ 8, 60 ] }
+            rollback: { user: [ 10, 60 ], newbie: [ 5, 120 ] }
+            mailpassword: { ip: [ 5, 3600 ] }
+            sendemail: { ip: [ 5, 86400 ], newbie: [ 5, 86400 ], user: [ 20, 86400 ] }
+            changeemail: { ip-all: [ 10, 3600 ], user: [ 4, 86400 ] }
+            confirmemail: { ip-all: [ 10, 3600 ], user: [ 4, 86400 ] }
+            purge: { ip: [ 30, 60 ], user: [ 30, 60 ] }
+            linkpurge: { ip: [ 30, 60 ], user: [ 30, 60 ] }
+            renderfile: { ip: [ 700, 30 ], user: [ 700, 30 ] }
+            renderfile-nonstandard: { ip: [ 70, 30 ], user: [ 70, 30 ] }
+            stashedit: { ip: [ 30, 60 ], newbie: [ 30, 60 ] }
+            stashbasehtml: { ip: [ 5, 60 ], newbie: [ 5, 60 ] }
+            changetags: { ip: [ 8, 60 ], newbie: [ 8, 60 ] }
+            editcontentmodel: { newbie: [ 2, 120 ], user: [ 8, 60 ] }
         type: object
         mergeStrategy: array_plus_2d
         description: |-
@@ -5792,7 +5792,7 @@ config-schema:
     EnableBotPasswords:
         default: true
         type: boolean
-        description: '@since 1.27'
+        description: "@since 1.27"
     BotPasswordsCluster:
         default: false
         type:
@@ -5815,7 +5815,7 @@ config-schema:
             @deprecated since 1.42 Use $wgVirtualDomainsMapping instead.
     SecretKey:
         default: false
-        description: 'This should always be customised in LocalSettings.php'
+        description: This should always be customised in LocalSettings.php
     AllowUserJs:
         default: false
         description: |-
@@ -5836,10 +5836,10 @@ config-schema:
             are available to users.
     UseSiteJs:
         default: true
-        description: 'Use the site''s Javascript page?'
+        description: "Use the site's Javascript page?"
     UseSiteCss:
         default: true
-        description: 'Use the site''s Cascading Style Sheets (CSS)?'
+        description: "Use the site's Cascading Style Sheets (CSS)?"
     BreakFrames:
         default: false
         description: |-
@@ -5893,20 +5893,20 @@ config-schema:
             @since 1.32
     CSPFalsePositiveUrls:
         default:
-            'https://3hub.co': true
-            'https://morepro.info': true
-            'https://p.ato.mx': true
-            'https://s.ato.mx': true
-            'https://adserver.adtech.de': true
-            'https://ums.adtechus.com': true
-            'https://cas.criteo.com': true
-            'https://cat.nl.eu.criteo.com': true
-            'https://atpixel.alephd.com': true
-            'https://rtb.metrigo.com': true
-            'https://d5p.de17a.com': true
-            'https://ad.lkqd.net/vpaid/vpaid.js': true
-            'https://ad.lkqd.net/vpaid/vpaid.js?fusion=1.0': true
-            'https://t.lkqd.net/t': true
+            "https://3hub.co": true
+            "https://morepro.info": true
+            "https://p.ato.mx": true
+            "https://s.ato.mx": true
+            "https://adserver.adtech.de": true
+            "https://ums.adtechus.com": true
+            "https://cas.criteo.com": true
+            "https://cat.nl.eu.criteo.com": true
+            "https://atpixel.alephd.com": true
+            "https://rtb.metrigo.com": true
+            "https://d5p.de17a.com": true
+            "https://ad.lkqd.net/vpaid/vpaid.js": true
+            "https://ad.lkqd.net/vpaid/vpaid.js?fusion=1.0": true
+            "https://t.lkqd.net/t": true
             chrome-extension: true
         type: object
         description: |-
@@ -5943,7 +5943,7 @@ config-schema:
             @since 1.27
     CookieExpiration:
         default: 2592000
-        description: 'Default cookie lifetime, in seconds. Setting to 0 makes all cookies session-only.'
+        description: "Default cookie lifetime, in seconds. Setting to 0 makes all cookies session-only."
     ExtendedLoginCookieExpiration:
         default: 15552000
         description: |-
@@ -5952,7 +5952,7 @@ config-schema:
             calculate the cookie lifetime. As with $wgCookieExpiration, 0 will make
             login cookies session-only.
     CookieDomain:
-        default: ''
+        default: ""
         description: |-
             Set to set an explicit domain on the login cookies eg, "justthis.domain.org"
             or ".any.subdomain.net"
@@ -5964,8 +5964,8 @@ config-schema:
     CookieSecure:
         default: detect
         dynamicDefault:
-            use: [ForceHTTPS]
-            callback: [MediaWiki\MainConfigSchema, getDefaultCookieSecure]
+            use: [ ForceHTTPS ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultCookieSecure ]
         description: |-
             Whether the "secure" flag should be set on the cookie. This can be:
               - true:      Set secure flag
@@ -5977,8 +5977,8 @@ config-schema:
     CookiePrefix:
         default: false
         dynamicDefault:
-            use: [SharedDB, SharedPrefix, SharedTables, DBname, DBprefix]
-            callback: [MediaWiki\MainConfigSchema, getDefaultCookiePrefix]
+            use: [ SharedDB, SharedPrefix, SharedTables, DBname, DBprefix ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultCookiePrefix ]
         description: |-
             Cookies generated by MediaWiki have names starting with this prefix. Set it
             to a string to use a custom prefix. Setting it to false causes the database
@@ -5993,7 +5993,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             The SameSite cookie attribute used for login cookies. This can be "Lax",
             "Strict", "None" or empty/null to omit the attribute.
@@ -6003,10 +6003,10 @@ config-schema:
     CacheVaryCookies:
         default: []
         type: array
-        description: 'A list of cookies that vary the cache (for use by extensions)'
+        description: A list of cookies that vary the cache (for use by extensions)
     SessionName:
         default: false
-        description: 'Override to customise the session name'
+        description: Override to customise the session name
     CookieSetOnAutoblock:
         default: true
         description: |-
@@ -6024,7 +6024,7 @@ config-schema:
             which case there is a possibility of an attacker discovering the names of revdeleted users,
             so it is best to use this in conjunction with $wgSecretKey being set).
     DebugLogFile:
-        default: ''
+        default: ""
         description: |-
             Enable verbose debug logging for all channels and log levels.
             See https://www.mediawiki.org/wiki/How_to_debug
@@ -6033,8 +6033,8 @@ config-schema:
             The debug log file should be not be web-accessible if it is used in
             a production environment, as may contain private data.
     DebugLogPrefix:
-        default: ''
-        description: 'Prefix for debug log lines'
+        default: ""
+        description: Prefix for debug log lines
     DebugRedirects:
         default: false
         description: |-
@@ -6082,7 +6082,7 @@ config-schema:
             Performance expectations for DB usage
             @since 1.26
     DebugLogGroups:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Map of string log group names to log destinations.
@@ -6136,7 +6136,7 @@ config-schema:
             Useful for developers and technical users trying to working on a closed wiki.
     SpecialVersionShowHooks:
         default: false
-        description: 'Show the contents of $wgHooks in Special:Version'
+        description: "Show the contents of $wgHooks in Special:Version"
     ShowExceptionDetails:
         default: false
         description: |-
@@ -6146,7 +6146,7 @@ config-schema:
             If set to false, only the exception type or class name will be exposed.
     LogExceptionBacktrace:
         default: true
-        description: 'If true, send the exception backtrace to the error log'
+        description: "If true, send the exception backtrace to the error log"
     PropagateErrors:
         default: true
         description: |-
@@ -6154,7 +6154,7 @@ config-schema:
             after logging them. The setting is ignored when the track_errors php.ini flag is true.
     ShowHostnames:
         default: false
-        description: 'Expose backend server host names through the API and various HTML comments'
+        description: Expose backend server host names through the API and various HTML comments
     OverrideHostname:
         default: false
         description: |-
@@ -6173,7 +6173,7 @@ config-schema:
             development warnings will not be generated for deprecations added in releases
             after the limit.
     Profiler:
-        default: {  }
+        default: { }
         type: object
         mergeStrategy: replace
         description: |-
@@ -6244,7 +6244,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Stats output target URI e.g. udp://127.0.0.1:8125
             If null, metrics will not be sent.
@@ -6254,7 +6254,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Stats output format
             If null, metrics will not be rendered nor sent.
@@ -6274,7 +6274,7 @@ config-schema:
         default: null
         type:
             - object
-            - 'null'
+            - "null"
         description: |-
             Configuration for OpenTelemetry instrumentation, or `null` to disable it.
             Possible keys:
@@ -6300,7 +6300,7 @@ config-schema:
             templates.
     EnableJavaScriptTest:
         default: false
-        description: 'Allow running of QUnit tests via [[Special:JavaScriptTest]].'
+        description: "Allow running of QUnit tests via [[Special:JavaScriptTest]]."
     CachePrefix:
         default: false
         description: |-
@@ -6315,7 +6315,7 @@ config-schema:
             @since 1.19
     DisableTextSearch:
         default: false
-        description: 'Set this to true to disable the full text search feature.'
+        description: Set this to true to disable the full text search feature.
     AdvancedSearchHighlighting:
         default: false
         description: |-
@@ -6348,7 +6348,7 @@ config-schema:
             sentence.
     SearchSuggestCacheExpiry:
         default: 1200
-        description: 'Expiry time for search suggestion responses'
+        description: Expiry time for search suggestion responses
     DisableSearchUpdate:
         default: false
         description: |-
@@ -6418,7 +6418,7 @@ config-schema:
             contributions page. E.g. searching for "1.2.3.4" will redirect to
             [[Special:Contributions/1.2.3.4]]
     SpecialSearchFormOptions:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Options for Special:Search completion widget form created by SearchFormWidget class.
@@ -6450,7 +6450,7 @@ config-schema:
             fall back to the old behavior (no merging).
     Diff:
         default: /usr/bin/diff
-        description: 'Path to the GNU diff utility.'
+        description: Path to the GNU diff utility.
     PreviewOnOpenNamespaces:
         default:
             14: true
@@ -6473,7 +6473,7 @@ config-schema:
             ting this variable false.
     CommandLineDarkBg:
         default: false
-        description: 'For colorized maintenance script output, is your terminal background dark ?'
+        description: "For colorized maintenance script output, is your terminal background dark ?"
     ReadOnly:
         default: null
         description: |-
@@ -6491,8 +6491,8 @@ config-schema:
     ReadOnlyFile:
         default: false
         dynamicDefault:
-            use: [UploadDirectory]
-            callback: [MediaWiki\MainConfigSchema, getDefaultReadOnlyFile]
+            use: [ UploadDirectory ]
+            callback: [ MediaWiki\MainConfigSchema, getDefaultReadOnlyFile ]
         description: |-
             If this lock file exists (size > 0), the wiki will be forced into read-only mode.
             Its contents will be shown to users as part of the read-only warning
@@ -6509,11 +6509,11 @@ config-schema:
             delete the old key from LocalSettings.php.
     GitBin:
         default: /usr/bin/git
-        description: 'Fully specified path to git binary'
+        description: Fully specified path to git binary
     GitRepositoryViewers:
         default:
-            'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)': 'https://gerrit.wikimedia.org/g/%R/+/%H'
-            'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)': 'https://gerrit.wikimedia.org/g/%R/+/%H'
+            "https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)": "https://gerrit.wikimedia.org/g/%R/+/%H"
+            "ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)": "https://gerrit.wikimedia.org/g/%R/+/%H"
         type: object
         description: |-
             Map GIT repository URLs to viewer URLs to provide links in Special:Version
@@ -6592,7 +6592,7 @@ config-schema:
             Special:Recentchangeslinked pages.
             @see \MediaWiki\SpecialPage\ChangesListSpecialPage::getLinkDays
     RCFeeds:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Configuration for feeds to which notifications about recent changes will be sent.
@@ -6696,7 +6696,7 @@ config-schema:
             @since 1.27
     Feed:
         default: true
-        description: 'Provide syndication feeds (RSS, Atom) for, e.g., Recentchanges, Newpages'
+        description: "Provide syndication feeds (RSS, Atom) for, e.g., Recentchanges, Newpages"
     FeedLimit:
         default: 50
         description: |-
@@ -6716,7 +6716,7 @@ config-schema:
             When generating Recentchanges RSS/Atom feed, diffs will not be generated for
             pages larger than this size.
     OverrideSiteFeed:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Override the site's default RSS/ATOM feed for recentchanges that appears on
@@ -6747,10 +6747,10 @@ config-schema:
             'atom', neither, or both.
     RCShowWatchingUsers:
         default: false
-        description: 'Show watching users in recent changes, watchlist and page history views'
+        description: "Show watching users in recent changes, watchlist and page history views"
     RCShowChangedSize:
         default: true
-        description: 'Show the amount of changed characters in recent changes'
+        description: Show the amount of changed characters in recent changes
     RCChangedSizeThreshold:
         default: 500
         description: |-
@@ -6856,10 +6856,10 @@ config-schema:
             and the purgeExpiredWatchlistItems.php maintenance script should be run periodically.
             @since 1.35
     WatchlistExpiryMaxDuration:
-        default: '1 year'
+        default: 1 year
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             Relative maximum duration for watchlist expiries, as accepted by strtotime().
             This relates to finite watchlist expiries only. Pages can be watched indefinitely
@@ -6891,10 +6891,10 @@ config-schema:
             of the page will also be used as the link text if this variable is not set.
     RightsIcon:
         default: null
-        description: 'Override for copyright metadata.'
+        description: Override for copyright metadata.
     UseCopyrightUpload:
         default: false
-        description: 'Set this to true if you want detailed copyright information forms on Upload.'
+        description: Set this to true if you want detailed copyright information forms on Upload.
     MaxCredits:
         default: 0
         description: |-
@@ -6909,7 +6909,7 @@ config-schema:
             If there are more than $wgMaxCredits authors, show $wgMaxCredits of them.
             Otherwise, link to a separate credits page.
     ImportSources:
-        default: {  }
+        default: { }
         type: object
         description: |-
             List of interwiki prefixes for wikis we'll accept as sources for
@@ -6950,7 +6950,7 @@ config-schema:
             could get bogged down by very very long pages.
     ExportAllowListContributors:
         default: false
-        description: 'Return distinct author list (when not returning full history)'
+        description: Return distinct author list (when not returning full history)
     ExportMaxLinkDepth:
         default: 0
         description: |-
@@ -6967,7 +6967,7 @@ config-schema:
         description: 'Whether to allow the "export all pages in namespace" option'
     ExportAllowAll:
         default: false
-        description: 'Whether to allow exporting the entire wiki into a single file'
+        description: Whether to allow exporting the entire wiki into a single file
     ExportPagelistLimit:
         default: 5000
         description: |-
@@ -6975,7 +6975,7 @@ config-schema:
             GetPagesFromNamespace functions.
             @since 1.27
     XmlDumpSchemaVersion:
-        default: '0.11'
+        default: "0.11"
         description: |-
             The schema to use by default when generating XML dumps. This allows sites to control
             explicitly when to make breaking changes to their export and dump format.
@@ -7001,7 +7001,7 @@ config-schema:
             A list of callback functions which are called once MediaWiki is fully
             initialised
     ExtensionMessagesFiles:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Extension messages files.
@@ -7024,7 +7024,7 @@ config-schema:
             $wgExtensionMessagesFiles['ConfirmEdit'] = __DIR__.'/ConfirmEdit.i18n.php';
             ```
     MessagesDirs:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Extension messages directories.
@@ -7047,7 +7047,7 @@ config-schema:
             ```
             @since 1.23
     TranslationAliasesDirs:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Message directories containing JSON files for localisation of special page aliases.
@@ -7071,7 +7071,7 @@ config-schema:
             @unstable EXPERIMENTAL
             @since 1.42
     ExtensionEntryPointListFiles:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Array of files with list(s) of extension entry points to be used in
@@ -7079,9 +7079,9 @@ config-schema:
             @since 1.22
     EnableParserLimitReporting:
         default: true
-        description: 'Whether to include the NewPP limit report as a HTML comment'
+        description: Whether to include the NewPP limit report as a HTML comment
     ValidSkinNames:
-        default: {  }
+        default: { }
         type: object
         description: |-
             List of valid skin names
@@ -7102,14 +7102,14 @@ config-schema:
             skin to load. Use Skin::getSkinNames() as an accessor if you wish to have access to the
             full list.
     SpecialPages:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Special page list. This is an associative array mapping the (canonical) names of
             special pages to either a class name or a ObjectFactory spec to be instantiated, or a callback to use for
             creating the special page object. In all cases, the result must be an instance of SpecialPage.
     ExtensionCredits:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Add information about an installed extension, keyed by its type.
@@ -7157,7 +7157,7 @@ config-schema:
               as "GPL-2.0-or-later" or "MIT" (https://spdx.org/licenses/ for a list of identifiers).
             @see \MediaWiki\Specials\SpecialVersion::getCredits
     Hooks:
-        default: {  }
+        default: { }
         type: object
         mergeStrategy: array_merge_recursive
         description: |-
@@ -7201,9 +7201,9 @@ config-schema:
             refreshLinks: MediaWiki\JobQueue\Jobs\RefreshLinksJob
             deleteLinks: MediaWiki\JobQueue\Jobs\DeleteLinksJob
             htmlCacheUpdate: MediaWiki\JobQueue\Jobs\HTMLCacheUpdateJob
-            sendMail: { class: EmaillingJob, services: [Emailer] }
+            sendMail: { class: EmaillingJob, services: [ Emailer ] }
             enotifNotify: EnotifNotifyJob
-            fixDoubleRedirect: { class: MediaWiki\JobQueue\Jobs\DoubleRedirectJob, services: [RevisionLookup, MagicWordFactory, WikiPageFactory], needsPage: true }
+            fixDoubleRedirect: { class: MediaWiki\JobQueue\Jobs\DoubleRedirectJob, services: [ RevisionLookup, MagicWordFactory, WikiPageFactory ], needsPage: true }
             AssembleUploadChunks: MediaWiki\JobQueue\Jobs\AssembleUploadChunksJob
             PublishStashedFile: MediaWiki\JobQueue\Jobs\PublishStashedFileJob
             ThumbnailRender: MediaWiki\JobQueue\Jobs\ThumbnailRenderJob
@@ -7220,12 +7220,12 @@ config-schema:
             clearWatchlistNotifications: MediaWiki\Watchlist\ClearWatchlistNotificationsJob
             userOptionsUpdate: UserOptionsUpdateJob
             revertedTagUpdate: MediaWiki\JobQueue\Jobs\RevertedTagUpdateJob
-            'null': MediaWiki\JobQueue\Jobs\NullJob
+            "null": MediaWiki\JobQueue\Jobs\NullJob
             userEditCountInit: UserEditCountInitJob
-            parsoidCachePrewarm: { class: MediaWiki\JobQueue\Jobs\ParsoidCachePrewarmJob, services: [ParserOutputAccess, PageStore, RevisionLookup, ParsoidSiteConfig], needsPage: false }
-            renameUserTable: { class: MediaWiki\RenameUser\Job\RenameUserTableJob, services: [MainConfig, DBLoadBalancerFactory] }
-            renameUserDerived: { class: MediaWiki\RenameUser\Job\RenameUserDerivedJob, services: [RenameUserFactory, UserFactory] }
-            renameUser: { class: MediaWiki\RenameUser\Job\RenameUserTableJob, services: [MainConfig, DBLoadBalancerFactory] }
+            parsoidCachePrewarm: { class: MediaWiki\JobQueue\Jobs\ParsoidCachePrewarmJob, services: [ ParserOutputAccess, PageStore, RevisionLookup, ParsoidSiteConfig ], needsPage: false }
+            renameUserTable: { class: MediaWiki\RenameUser\Job\RenameUserTableJob, services: [ MainConfig, DBLoadBalancerFactory ] }
+            renameUserDerived: { class: MediaWiki\RenameUser\Job\RenameUserDerivedJob, services: [ RenameUserFactory, UserFactory ] }
+            renameUser: { class: MediaWiki\RenameUser\Job\RenameUserTableJob, services: [ MainConfig, DBLoadBalancerFactory ] }
         type: object
         description: |-
             Maps jobs to their handlers; extensions
@@ -7258,7 +7258,7 @@ config-schema:
               machine on your cluster has 'outside' web access you could restrict uploadFromUrl )
             These settings should be global to all wikis.
     JobBackoffThrottling:
-        default: {  }
+        default: { }
         type: object
         additionalProperties:
             type: number
@@ -7294,7 +7294,7 @@ config-schema:
             @since 1.29
     SpecialPageCacheUpdates:
         default:
-            Statistics: [MediaWiki\Deferred\SiteStatsUpdate, cacheUpdate]
+            Statistics: [ MediaWiki\Deferred\SiteStatsUpdate, cacheUpdate ]
         type: object
         description: |-
             Additional functions to be performed with updateSpecialPages.
@@ -7316,7 +7316,7 @@ config-schema:
             category instead of listing them as articles.
     CategoryPagingLimit:
         default: 200
-        description: 'Paging limit for categories'
+        description: Paging limit for categories
     CategoryCollation:
         default: uppercase
         description: |-
@@ -7373,7 +7373,7 @@ config-schema:
             @since 1.23
     LogTypes:
         default:
-            - ''
+            - ""
             - block
             - protect
             - rights
@@ -7426,7 +7426,7 @@ config-schema:
             used for the link text.
     LogNames:
         default:
-            '': all-logs-page
+            "": all-logs-page
             block: blocklogpage
             protect: protectlogpage
             rights: rightslog
@@ -7446,7 +7446,7 @@ config-schema:
             where TYPE is your log type, you don't need to use this array.
     LogHeaders:
         default:
-            '': alllogstext
+            "": alllogstext
             block: blocklogtext
             delete: dellogpagetext
             import: importlogpagetext
@@ -7465,7 +7465,7 @@ config-schema:
             @since 1.19, if you follow the naming convention log-description-TYPE,
             where TYPE is your log type, yoy don't need to use this array.
     LogActions:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Maps log actions to message keys, for formatting log entries of each type
@@ -7474,9 +7474,9 @@ config-schema:
             Extensions with custom log types may add to this array.
     LogActionsHandlers:
         default:
-            block/block: { class: MediaWiki\Logging\BlockLogFormatter, services: [TitleParser, NamespaceInfo] }
-            block/reblock: { class: MediaWiki\Logging\BlockLogFormatter, services: [TitleParser, NamespaceInfo] }
-            block/unblock: { class: MediaWiki\Logging\BlockLogFormatter, services: [TitleParser, NamespaceInfo] }
+            block/block: { class: MediaWiki\Logging\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }
+            block/reblock: { class: MediaWiki\Logging\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }
+            block/unblock: { class: MediaWiki\Logging\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }
             contentmodel/change: MediaWiki\Logging\ContentModelLogFormatter
             contentmodel/new: MediaWiki\Logging\ContentModelLogFormatter
             delete/delete: MediaWiki\Logging\DeleteLogFormatter
@@ -7494,23 +7494,23 @@ config-schema:
             managetags/create: MediaWiki\Logging\LogFormatter
             managetags/deactivate: MediaWiki\Logging\LogFormatter
             managetags/delete: MediaWiki\Logging\LogFormatter
-            merge/merge: { class: MediaWiki\Logging\MergeLogFormatter, services: [TitleParser] }
-            merge/merge-into: { class: MediaWiki\Logging\MergeLogFormatter, services: [TitleParser] }
-            move/move: { class: MediaWiki\Logging\MoveLogFormatter, services: [TitleParser] }
-            move/move_redir: { class: MediaWiki\Logging\MoveLogFormatter, services: [TitleParser] }
+            merge/merge: { class: MediaWiki\Logging\MergeLogFormatter, services: [ TitleParser ] }
+            merge/merge-into: { class: MediaWiki\Logging\MergeLogFormatter, services: [ TitleParser ] }
+            move/move: { class: MediaWiki\Logging\MoveLogFormatter, services: [ TitleParser ] }
+            move/move_redir: { class: MediaWiki\Logging\MoveLogFormatter, services: [ TitleParser ] }
             patrol/patrol: MediaWiki\Logging\PatrolLogFormatter
             patrol/autopatrol: MediaWiki\Logging\PatrolLogFormatter
-            protect/modify: { class: MediaWiki\Logging\ProtectLogFormatter, services: [TitleParser] }
-            protect/move_prot: { class: MediaWiki\Logging\ProtectLogFormatter, services: [TitleParser] }
-            protect/protect: { class: MediaWiki\Logging\ProtectLogFormatter, services: [TitleParser] }
-            protect/unprotect: { class: MediaWiki\Logging\ProtectLogFormatter, services: [TitleParser] }
-            renameuser/renameuser: { class: MediaWiki\Logging\RenameuserLogFormatter, services: [TitleParser] }
+            protect/modify: { class: MediaWiki\Logging\ProtectLogFormatter, services: [ TitleParser ] }
+            protect/move_prot: { class: MediaWiki\Logging\ProtectLogFormatter, services: [ TitleParser ] }
+            protect/protect: { class: MediaWiki\Logging\ProtectLogFormatter, services: [ TitleParser ] }
+            protect/unprotect: { class: MediaWiki\Logging\ProtectLogFormatter, services: [ TitleParser ] }
+            renameuser/renameuser: { class: MediaWiki\Logging\RenameuserLogFormatter, services: [ TitleParser ] }
             rights/autopromote: MediaWiki\Logging\RightsLogFormatter
             rights/rights: MediaWiki\Logging\RightsLogFormatter
-            suppress/block: { class: MediaWiki\Logging\BlockLogFormatter, services: [TitleParser, NamespaceInfo] }
+            suppress/block: { class: MediaWiki\Logging\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }
             suppress/delete: MediaWiki\Logging\DeleteLogFormatter
             suppress/event: MediaWiki\Logging\DeleteLogFormatter
-            suppress/reblock: { class: MediaWiki\Logging\BlockLogFormatter, services: [TitleParser, NamespaceInfo] }
+            suppress/reblock: { class: MediaWiki\Logging\BlockLogFormatter, services: [ TitleParser, NamespaceInfo ] }
             suppress/revision: MediaWiki\Logging\DeleteLogFormatter
             tag/update: MediaWiki\Logging\TagLogFormatter
             upload/overwrite: MediaWiki\Logging\UploadLogFormatter
@@ -7526,17 +7526,17 @@ config-schema:
             @see \MediaWiki\Logging\LogFormatter
     ActionFilteredLogs:
         default:
-            block: { block: [block], reblock: [reblock], unblock: [unblock] }
-            contentmodel: { change: [change], new: [new] }
-            delete: { delete: [delete], delete_redir: [delete_redir, delete_redir2], restore: [restore], event: [event], revision: [revision] }
-            import: { interwiki: [interwiki], upload: [upload] }
-            managetags: { create: [create], delete: [delete], activate: [activate], deactivate: [deactivate] }
-            move: { move: [move], move_redir: [move_redir] }
-            newusers: { create: [create, newusers], create2: [create2], autocreate: [autocreate], byemail: [byemail] }
-            protect: { protect: [protect], modify: [modify], unprotect: [unprotect], move_prot: [move_prot] }
-            rights: { rights: [rights], autopromote: [autopromote] }
-            suppress: { event: [event], revision: [revision], delete: [delete], block: [block], reblock: [reblock] }
-            upload: { upload: [upload], overwrite: [overwrite], revert: [revert] }
+            block: { block: [ block ], reblock: [ reblock ], unblock: [ unblock ] }
+            contentmodel: { change: [ change ], new: [ new ] }
+            delete: { delete: [ delete ], delete_redir: [ delete_redir, delete_redir2 ], restore: [ restore ], event: [ event ], revision: [ revision ] }
+            import: { interwiki: [ interwiki ], upload: [ upload ] }
+            managetags: { create: [ create ], delete: [ delete ], activate: [ activate ], deactivate: [ deactivate ] }
+            move: { move: [ move ], move_redir: [ move_redir ] }
+            newusers: { create: [ create, newusers ], create2: [ create2 ], autocreate: [ autocreate ], byemail: [ byemail ] }
+            protect: { protect: [ protect ], modify: [ modify ], unprotect: [ unprotect ], move_prot: [ move_prot ] }
+            rights: { rights: [ rights ], autopromote: [ autopromote ] }
+            suppress: { event: [ event ], revision: [ revision ], delete: [ delete ], block: [ block ], reblock: [ reblock ] }
+            upload: { upload: [ upload ], overwrite: [ overwrite ], revert: [ revert ] }
         type: object
         description: |-
             List of log types that can be filtered by action types
@@ -7546,7 +7546,7 @@ config-schema:
             @since 1.27
     NewUserLog:
         default: true
-        description: 'Maintain a log of newusers at Special:Log/newusers?'
+        description: "Maintain a log of newusers at Special:Log/newusers?"
     PageCreationLog:
         default: true
         description: |-
@@ -7554,7 +7554,7 @@ config-schema:
             @since 1.32
     AllowSpecialInclusion:
         default: true
-        description: 'Allow special page inclusions such as {{Special:Allpages}}'
+        description: "Allow special page inclusions such as {{Special:Allpages}}"
     DisableQueryPageUpdate:
         default: false
         description: |-
@@ -7583,7 +7583,7 @@ config-schema:
             at Special:Contributions.
             @since 1.30
     Actions:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Map of allowed values for the "title=foo&action=<action>" parameter.
@@ -7591,13 +7591,13 @@ config-schema:
             See ActionFactory for the syntax. Core defaults are in ActionFactory::CORE_ACTIONS,
             anything here overrides that.
     DefaultRobotPolicy:
-        default: 'index,follow'
+        default: "index,follow"
         description: |-
             Default robot policy.  The default policy is to encourage indexing and fol-
             lowing of links.  It may be overridden on a per-namespace and/or per-page
             basis.
     NamespaceRobotPolicies:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Robot policies per namespaces. The default policy is given above, the array
@@ -7612,7 +7612,7 @@ config-schema:
             $wgNamespaceRobotPolicies = [ NS_TALK => 'noindex' ];
             ```
     ArticleRobotPolicies:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Robot policies per article. These override the per-namespace robot policies.
@@ -7641,7 +7641,7 @@ config-schema:
         default: null
         type:
             - array
-            - 'null'
+            - "null"
         description: |-
             An array of namespace keys in which the __INDEX__/__NOINDEX__ magic words
             will not function, so users can't decide whether pages in that namespace are
@@ -7663,7 +7663,7 @@ config-schema:
             requiring POST.
             @since 1.21
     APIModules:
-        default: {  }
+        default: { }
         type: object
         description: |-
             API module extensions.
@@ -7695,7 +7695,7 @@ config-schema:
             Extension modules may override the core modules.
             See ApiMain::MODULES for a list of the core modules.
     APIFormatModules:
-        default: {  }
+        default: { }
         type: object
         description: |-
             API format module extensions.
@@ -7703,7 +7703,7 @@ config-schema:
             Extension modules may override the core modules.
             See ApiMain::FORMATS for a list of the core format modules.
     APIMetaModules:
-        default: {  }
+        default: { }
         type: object
         description: |-
             API Query meta module extensions.
@@ -7711,7 +7711,7 @@ config-schema:
             Extension modules may override the core modules.
             See ApiQuery::QUERY_META_MODULES for a list of the core meta modules.
     APIPropModules:
-        default: {  }
+        default: { }
         type: object
         description: |-
             API Query prop module extensions.
@@ -7719,7 +7719,7 @@ config-schema:
             Extension modules may override the core modules.
             See ApiQuery::QUERY_PROP_MODULES for a list of the core prop modules.
     APIListModules:
-        default: {  }
+        default: { }
         type: object
         description: |-
             API Query list module extensions.
@@ -7749,13 +7749,13 @@ config-schema:
             This should be lower than the 'max lag' value in $wgLBFactoryConf.
     APIRequestLog:
         default: false
-        deprecated: 'since 1.43; use api or api-request $wgDebugLogGroups channel'
+        deprecated: since 1.43; use api or api-request $wgDebugLogGroups channel
         description: |-
             Log file or URL (TCP or UDP) to log API requests to, or false to disable
             API request logging
     APICacheHelpTimeout:
         default: 3600
-        description: 'Set the timeout for the API help text cache. If set to 0, caching disabled'
+        description: "Set the timeout for the API help text cache. If set to 0, caching disabled"
     APIUselessQueryPages:
         default:
             - MIMEsearch
@@ -7766,9 +7766,9 @@ config-schema:
             API queries.
     AjaxLicensePreview:
         default: true
-        description: 'Enable previewing licences via AJAX.'
+        description: Enable previewing licences via AJAX.
     CrossSiteAJAXdomains:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Settings for incoming cross-site AJAX requests:
@@ -7788,7 +7788,7 @@ config-schema:
             ];
             ```
     CrossSiteAJAXdomainExceptions:
-        default: {  }
+        default: { }
         type: object
         description: |-
             Domains that should not be allowed to make AJAX requests,
@@ -7808,7 +7808,7 @@ config-schema:
             - Access-Control-Max-Age
             - Authorization
         type: array
-        description: 'List of allowed headers for cross-origin API requests.'
+        description: List of allowed headers for cross-origin API requests.
     RestAPIAdditionalRouteFiles:
         default: []
         type: array
@@ -7816,12 +7816,12 @@ config-schema:
             Additional REST API Route files.
             A common usage is to enable development/experimental endpoints only on test wikis.
     RestSandboxSpecs:
-        default: {  }
+        default: { }
         type: object
         additionalProperties:
             type: object
-            properties: { url: { type: string, format: url }, name: { type: string }, msg: { type: string, description: 'a message key' } }
-            required: [url]
+            properties: { url: { type: string, format: url }, name: { type: string }, msg: { type: string, description: a message key } }
+            required: [ url ]
         description: |-
             A list of OpenAPI specs to be made available for exploration on
             Special:RestSandbox. If none are given, Special:RestSandbox is disabled.
@@ -7837,7 +7837,7 @@ config-schema:
             document.
     MaxShellMemory:
         default: 307200
-        description: 'Maximum amount of virtual memory available to shell processes under linux, in KiB.'
+        description: "Maximum amount of virtual memory available to shell processes under linux, in KiB."
     MaxShellFileSize:
         default: 102400
         description: |-
@@ -7845,7 +7845,7 @@ config-schema:
             ImageMagick convert for example can be fairly hungry for scratch space
     MaxShellTime:
         default: 180
-        description: 'Maximum CPU time in seconds for shell processes under Linux'
+        description: Maximum CPU time in seconds for shell processes under Linux
     MaxShellWallClockTime:
         default: 180
         description: |-
@@ -7873,7 +7873,7 @@ config-schema:
             https://gerrit.wikimedia.org/r/#/c/40784
     PhpCli:
         default: /usr/bin/php
-        description: 'Executable path of the PHP cli binary. Should be set up on install.'
+        description: Executable path of the PHP cli binary. Should be set up on install.
     ShellRestrictionMethod:
         default: autodetect
         type:
@@ -7893,7 +7893,7 @@ config-schema:
             default: null
         type: object
         additionalProperties:
-            type: [string, boolean, 'null']
+            type: [ string, boolean, "null" ]
         description: |-
             Shell commands can be run on a remote server using Shellbox. To use this
             feature, set this to the URLs mapped by the service, and also configure $wgShellboxSecretKey.
@@ -7906,7 +7906,7 @@ config-schema:
         default: null
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             The secret key for HMAC verification of Shellbox requests. Set this to
             a long random string.
@@ -7915,7 +7915,7 @@ config-schema:
         default: /bin/sh
         type:
             - string
-            - 'null'
+            - "null"
         description: |-
             The POSIX-compatible shell to use when running scripts. This is used by
             some media handling shell commands.
@@ -7958,12 +7958,12 @@ config-schema:
             @since 1.29
     AsyncHTTPTimeout:
         default: 25
-        description: 'Timeout for Asynchronous (background) HTTP requests, in seconds.'
+        description: "Timeout for Asynchronous (background) HTTP requests, in seconds."
     HTTPProxy:
-        default: ''
-        description: 'Proxy to use for CURL requests.'
+        default: ""
+        description: Proxy to use for CURL requests.
     LocalVirtualHosts:
-        default: {  }
+        default: { }
         type: object
         description: |-
             A list of URL domains that will be routed to the proxy specified by
@@ -8011,10 +8011,10 @@ config-schema:
             @since 1.23
     UpdateRowsPerJob:
         default: 300
-        description: 'Number of rows to update per job'
+        description: Number of rows to update per job
     UpdateRowsPerQuery:
         default: 100
-        description: 'Number of rows to update per query'
+        description: Number of rows to update per query
     RedirectOnLogin:
         default: null
         description: |-
@@ -8142,7 +8142,7 @@ config-schema:
     EditRecoveryExpiry:
         default: 2592000
         type: integer
-        description: 'Number of seconds to keep edit recovery data after the edit is stored.'
+        description: Number of seconds to keep edit recovery data after the edit is stored.
     UseCodexSpecialBlock:
         default: false
         type: boolean
@@ -8164,7 +8164,7 @@ config-schema:
             Whether to show indicators on a page when it is protected.
             @since 1.43
     OutputPipelineStages:
-        default: {  }
+        default: { }
         type: object
         description: |-
             OutputPipelineStages to add to the DefaultOutputPipeline.
diff --git a/package-lock.json b/package-lock.json
index 29c5874..a9a321c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
 				"chai-openapi-response-validator": "^0.14.2",
 				"domino": "2.1.0",
 				"dotenv": "8.2.0",
-				"eslint-config-wikimedia": "0.29.1",
+				"eslint-config-wikimedia": "0.30.0",
 				"grunt": "1.6.1",
 				"grunt-banana-checker": "0.13.0",
 				"grunt-contrib-watch": "1.1.0",
@@ -7841,11 +7841,10 @@
 			}
 		},
 		"node_modules/eslint-config-wikimedia": {
-			"version": "0.29.1",
-			"resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.29.1.tgz",
-			"integrity": "sha512-4dbL5o3hKGSvreyrGZWLPoTDLFubZ575IQOPhUaTcpbTsi0u05TBEMsOyYkthTaK21vsFQqhSYtxp/xU93BSdA==",
+			"version": "0.30.0",
+			"resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.30.0.tgz",
+			"integrity": "sha512-i8ESzSoo0x3Jur/0JhAgCVPxbV51zfdI3MN3MVQPnjiFdmo21CNKmiBBmw8JnJ3fx/d5zHDrBa+yDjxSLpnDlA==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"browserslist-config-wikimedia": "^0.7.0",
 				"eslint": "^8.57.0",
@@ -17227,8 +17226,13 @@
 			}
 		},
 		"node_modules/wdio-mediawiki": {
-			"resolved": "tests/selenium/wdio-mediawiki",
-			"link": true
+			"version": "3.0.0",
+			"resolved": "file:tests/selenium/wdio-mediawiki",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"mwbot": "2.1.3"
+			}
 		},
 		"node_modules/web-streams-polyfill": {
 			"version": "3.3.3",
@@ -17806,14 +17810,6 @@
 			"dependencies": {
 				"safe-buffer": "~5.2.0"
 			}
-		},
-		"tests/selenium/wdio-mediawiki": {
-			"version": "3.0.0",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"mwbot": "2.1.3"
-			}
 		}
 	},
 	"dependencies": {
@@ -23527,9 +23523,9 @@
 			}
 		},
 		"eslint-config-wikimedia": {
-			"version": "0.29.1",
-			"resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.29.1.tgz",
-			"integrity": "sha512-4dbL5o3hKGSvreyrGZWLPoTDLFubZ575IQOPhUaTcpbTsi0u05TBEMsOyYkthTaK21vsFQqhSYtxp/xU93BSdA==",
+			"version": "0.30.0",
+			"resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.30.0.tgz",
+			"integrity": "sha512-i8ESzSoo0x3Jur/0JhAgCVPxbV51zfdI3MN3MVQPnjiFdmo21CNKmiBBmw8JnJ3fx/d5zHDrBa+yDjxSLpnDlA==",
 			"dev": true,
 			"requires": {
 				"browserslist-config-wikimedia": "^0.7.0",
@@ -30497,7 +30493,8 @@
 			}
 		},
 		"wdio-mediawiki": {
-			"version": "file:tests/selenium/wdio-mediawiki",
+			"version": "3.0.0",
+			"dev": true,
 			"requires": {
 				"mwbot": "2.1.3"
 			}
diff --git a/package.json b/package.json
index e2df268..bffa2dc 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
 		"chai-openapi-response-validator": "^0.14.2",
 		"domino": "2.1.0",
 		"dotenv": "8.2.0",
-		"eslint-config-wikimedia": "0.29.1",
+		"eslint-config-wikimedia": "0.30.0",
 		"grunt": "1.6.1",
 		"grunt-banana-checker": "0.13.0",
 		"grunt-contrib-watch": "1.1.0",
diff --git a/resources/src/mediawiki.debug/debug.js b/resources/src/mediawiki.debug/debug.js
index 509d9e9..78c6168 100644
--- a/resources/src/mediawiki.debug/debug.js
+++ b/resources/src/mediawiki.debug/debug.js
@@ -1,5 +1,3 @@
-/* eslint-disable es-x/no-array-prototype-includes */
-
 ( function () {
 	'use strict';
 
diff --git a/resources/src/startup/startup.js b/resources/src/startup/startup.js
index 2f0d132..e01d813 100644
--- a/resources/src/startup/startup.js
+++ b/resources/src/startup/startup.js
@@ -49,9 +49,9 @@ function isCompatible() {
 		// https://caniuse.com/mdn-javascript_builtins_regexp_flags
 		// Edge 79+ (Chromium-based, rejects MSEdgeHTML-based Edge <= 18)
 		//
-		// eslint-disable-next-line es-x/no-promise, es-x/no-promise-prototype-finally, dot-notation
+		// eslint-disable-next-line es-x/no-promise-prototype-finally, dot-notation
 		typeof Promise === 'function' && Promise.prototype[ 'finally' ] &&
-		// eslint-disable-next-line es-x/no-regexp-prototype-flags
+
 		/./g.flags === 'g' &&
 
 		// Ensure ES2017 grammar and syntax support, including:
diff --git a/tests/api-testing/REST/PageHistory.js b/tests/api-testing/REST/PageHistory.js
index 73d7ba4..ca4d963 100644
--- a/tests/api-testing/REST/PageHistory.js
+++ b/tests/api-testing/REST/PageHistory.js
@@ -232,7 +232,7 @@ describe( 'Page History', () => {
 		it( 'Should return 400 for invalid parameter', async () => {
 			const res = await client.get( `/v1/page/${ title }/history/counts/editts` );
 			assert.equal( res.status, 400 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -241,7 +241,7 @@ describe( 'Page History', () => {
 			const res = await client.get( `/v1/page/${ title2 }/history/counts/edits` );
 
 			assert.equal( res.status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 
 		} );
@@ -274,7 +274,7 @@ describe( 'Page History', () => {
 			await mindy.action( 'delete', { title: titleToDelete, token: await mindy.token() }, 'POST' );
 			const res = await client.get( `/v1/page/${ titleToDelete }/history/counts/edits` );
 			assert.equal( res.status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
@@ -335,7 +335,7 @@ describe( 'Page History', () => {
 			const { status: editorsStatus, header: editorsHeader } = res;
 			assert.equal( editorsStatus, 404 );
 			assert.match( editorsHeader[ 'content-type' ], /^application\/json/ );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -436,7 +436,7 @@ describe( 'Page History', () => {
 			const res = await client.get( `/v1/page/${ title }/history`, { filter: 'anon' } );
 
 			assert.equal( res.status, 400 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -445,7 +445,7 @@ describe( 'Page History', () => {
 			const res = await client.get( `/v1/page/${ title2 }/history`, { filter: 'bot' } );
 
 			assert.equal( res.status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -533,7 +533,7 @@ describe( 'Page History', () => {
 			const res = await client.get( `/v1/page/${ title }/history`, { newer_than: -1 } );
 
 			assert.equal( res.status, 400 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -543,7 +543,7 @@ describe( 'Page History', () => {
 			const res = await client.get( `/v1/page/${ title }/history`, { newer_than: id1, older_than: id2 } );
 
 			assert.equal( res.status, 400 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -554,7 +554,7 @@ describe( 'Page History', () => {
 			const res = await client.get( `/v1/page/${ title }/history`, { newer_than: edit.newrevid } );
 
 			assert.equal( res.status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
diff --git a/tests/api-testing/REST/PageLanguageLinks.js b/tests/api-testing/REST/PageLanguageLinks.js
index 235d0d5..c29676b 100644
--- a/tests/api-testing/REST/PageLanguageLinks.js
+++ b/tests/api-testing/REST/PageLanguageLinks.js
@@ -39,7 +39,7 @@ describe( 'Page language links', () => {
 			const dummyPageTitle = utils.title( 'DummyPage_' );
 			const { status, text } = await client.get( `/v1/page/${ dummyPageTitle }/links/language` );
 			assert.deepEqual( status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
diff --git a/tests/api-testing/REST/PageMediaLinks.js b/tests/api-testing/REST/PageMediaLinks.js
index 947ce82..fe57bd1 100644
--- a/tests/api-testing/REST/PageMediaLinks.js
+++ b/tests/api-testing/REST/PageMediaLinks.js
@@ -39,7 +39,7 @@ describe( 'Page media links', () => {
 			const dummyPageTitle = utils.title( 'DummyPage_' );
 			const { status, text } = await client.get( `/v1/page/${ dummyPageTitle }/links/media` );
 			assert.deepEqual( status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
diff --git a/tests/api-testing/REST/RevisionCompare.js b/tests/api-testing/REST/RevisionCompare.js
index 99360b6..0b93c82 100644
--- a/tests/api-testing/REST/RevisionCompare.js
+++ b/tests/api-testing/REST/RevisionCompare.js
@@ -31,7 +31,7 @@ describe( 'Revision Compare', () => {
 		it( 'should return 400 if revision id is not an integer', async () => {
 			const { status, text } = await client.get( `/v1/revision/${ validRevId }/compare/${ invalidRevId }` );
 			assert.equal( status, 400 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -54,7 +54,7 @@ describe( 'Revision Compare', () => {
 		it( 'should return 404 for revision that does not exist', async () => {
 			const { status, text } = await client.get( `/v1/revision/${ validRevId }/compare/${ nonExistentRevId }` );
 			assert.strictEqual( status, 404 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -63,7 +63,7 @@ describe( 'Revision Compare', () => {
 			const { newrevid: pageTwoRev } = await mindy.edit( pageTwo, { text: 'Page 2 edit' } );
 			const { status, text } = await client.get( `/v1/revision/${ pageOneRev }/compare/${ pageTwoRev }` );
 			assert.strictEqual( status, 400 );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
diff --git a/tests/api-testing/REST/Transform.js b/tests/api-testing/REST/Transform.js
index 98ff736..9813d91 100644
--- a/tests/api-testing/REST/Transform.js
+++ b/tests/api-testing/REST/Transform.js
@@ -90,7 +90,7 @@ function validateSpec( response ) {
 }
 
 function validateDefaultSpec( response ) {
-	// eslint-disable-next-line no-unused-expressions
+
 	expect( response.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 }
 
diff --git a/tests/api-testing/REST/content.v1/Creation.js b/tests/api-testing/REST/content.v1/Creation.js
index 89e0dc6..06f2d62 100644
--- a/tests/api-testing/REST/content.v1/Creation.js
+++ b/tests/api-testing/REST/content.v1/Creation.js
@@ -163,7 +163,7 @@ describe( 'POST /page', () => {
 				assert.equal( editStatus, 400 );
 				assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 				assert.nestedProperty( editBody, 'messageTranslations' );
-				// eslint-disable-next-line no-unused-expressions
+
 				expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 			} );
 		} );
@@ -183,7 +183,7 @@ describe( 'POST /page', () => {
 			assert.equal( editStatus, 403 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -202,7 +202,7 @@ describe( 'POST /page', () => {
 			assert.equal( editStatus, 403 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -222,7 +222,7 @@ describe( 'POST /page', () => {
 			assert.equal( editStatus, 400 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 
 		} );
@@ -242,7 +242,7 @@ describe( 'POST /page', () => {
 			assert.equal( editStatus, 400 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
@@ -266,7 +266,7 @@ describe( 'POST /page', () => {
 			assert.equal( editStatus, 409 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
@@ -294,7 +294,7 @@ describe( 'POST /page', () => {
 			assert.equal( editStatus, 403 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( newPage.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
diff --git a/tests/api-testing/REST/content.v1/Update.js b/tests/api-testing/REST/content.v1/Update.js
index a2cbfb3..6b3102e 100644
--- a/tests/api-testing/REST/content.v1/Update.js
+++ b/tests/api-testing/REST/content.v1/Update.js
@@ -222,7 +222,7 @@ describe( 'PUT /page/{title}', () => {
 				assert.equal( editStatus, 400 );
 				assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 				assert.nestedProperty( editBody, 'messageTranslations' );
-				// eslint-disable-next-line no-unused-expressions
+
 				expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 			} );
 		} );
@@ -241,7 +241,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 403 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -259,7 +259,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 403 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -279,7 +279,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 400 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -299,7 +299,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 400 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -317,7 +317,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 400 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
@@ -338,7 +338,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 404 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -360,7 +360,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 409 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 
@@ -383,7 +383,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 409 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
@@ -413,7 +413,7 @@ describe( 'PUT /page/{title}', () => {
 			assert.equal( editStatus, 403 );
 			assert.match( editHeader[ 'content-type' ], /^application\/json/ );
 			assert.nestedProperty( editBody, 'messageTranslations' );
-			// eslint-disable-next-line no-unused-expressions
+
 			expect( res.text ).to.satisfySchemaInApiSpec( 'GenericErrorResponseModel' );
 		} );
 	} );
-- 
2.39.5


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