mediawiki/extensions/VisualEditor: main (log #508844)

sourcepatches

This run took 397 seconds.

From 121c462c7e66d2e66870e332b8b533e5df8e24a1 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Wed, 27 Oct 2021 08:33:55 +0000
Subject: [PATCH] build: Updating grunt to 1.4.1

Change-Id: Ibd63a63b76a9a966c560b7987dc1ef85ac314a8e
---
 package-lock.json | 40 ++++++++++++++++++++--------------------
 package.json      |  2 +-
 2 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index a5a9449..ad33c98 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1049,9 +1049,9 @@
 			"dev": true
 		},
 		"async": {
-			"version": "3.2.0",
-			"resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz",
-			"integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==",
+			"version": "3.2.1",
+			"resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz",
+			"integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==",
 			"dev": true
 		},
 		"autoprefixer": {
@@ -3381,9 +3381,9 @@
 			"dev": true
 		},
 		"getobject": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.0.tgz",
-			"integrity": "sha512-tbUz6AKKKr2YiMB+fLWIgq5ZeBOobop9YMMAU9dC54/ot2ksMXt3DOFyBuhZw6ptcVszEykgByK20j7W9jHFag==",
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz",
+			"integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==",
 			"dev": true
 		},
 		"gifsicle": {
@@ -3643,9 +3643,9 @@
 			"dev": true
 		},
 		"grunt": {
-			"version": "1.4.0",
-			"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.4.0.tgz",
-			"integrity": "sha512-yRFc0GVCDu9yxqOFzpuXQ2pEdgtLDnFv5Qz54jfIcNnpJ8Z7B7P7kPkT4VMuRvm+N+QOsI8C4v/Q0DSaoj3LgQ==",
+			"version": "1.4.1",
+			"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.4.1.tgz",
+			"integrity": "sha512-ZXIYXTsAVrA7sM+jZxjQdrBOAg7DyMUplOMhTaspMRExei+fD0BTwdWXnn0W5SXqhb/Q/nlkzXclSi3IH55PIA==",
 			"dev": true,
 			"requires": {
 				"dateformat": "~3.0.3",
@@ -3654,7 +3654,7 @@
 				"findup-sync": "~0.3.0",
 				"glob": "~7.1.6",
 				"grunt-cli": "~1.4.2",
-				"grunt-known-options": "~1.1.1",
+				"grunt-known-options": "~2.0.0",
 				"grunt-legacy-log": "~3.0.0",
 				"grunt-legacy-util": "~2.0.1",
 				"iconv-lite": "~0.4.13",
@@ -3666,12 +3666,12 @@
 			},
 			"dependencies": {
 				"grunt-cli": {
-					"version": "1.4.2",
-					"resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.2.tgz",
-					"integrity": "sha512-wsu6BZh7KCnfeaSkDrKIAvOlqGKxNRTZjc8xfZlvxCByQIqUfZ31kh5uHpPnhQ4NdVgvaWaVxa1LUbVU80nACw==",
+					"version": "1.4.3",
+					"resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz",
+					"integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==",
 					"dev": true,
 					"requires": {
-						"grunt-known-options": "~1.1.1",
+						"grunt-known-options": "~2.0.0",
 						"interpret": "~1.1.0",
 						"liftup": "~3.0.1",
 						"nopt": "~4.0.1",
@@ -3839,9 +3839,9 @@
 			}
 		},
 		"grunt-known-options": {
-			"version": "1.1.1",
-			"resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
-			"integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==",
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz",
+			"integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==",
 			"dev": true
 		},
 		"grunt-legacy-log": {
@@ -6110,9 +6110,9 @@
 			}
 		},
 		"rechoir": {
-			"version": "0.7.0",
-			"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz",
-			"integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==",
+			"version": "0.7.1",
+			"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
+			"integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
 			"dev": true,
 			"requires": {
 				"resolve": "^1.9.0"
diff --git a/package.json b/package.json
index 9abcad6..7bd1a96 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,7 @@
 	},
 	"devDependencies": {
 		"eslint-config-wikimedia": "0.20.0",
-		"grunt": "1.4.0",
+		"grunt": "1.4.1",
 		"grunt-banana-checker": "0.9.0",
 		"grunt-contrib-copy": "1.0.0",
 		"grunt-contrib-watch": "1.1.0",
-- 
2.20.1

$ date
Wed Oct 27 08:27:29 UTC 2021

$ git clone file:///srv/git/mediawiki-extensions-VisualEditor.git repo --depth=1 -b master
Cloning into 'repo'...

$ git config user.name libraryupgrader

$ git config user.email tools.libraryupgrader@tools.wmflabs.org

$ git submodule update --init
Submodule 'lib/ve' (https://gerrit.wikimedia.org/r/VisualEditor/VisualEditor.git) registered for path 'lib/ve'
Cloning into '/src/repo/lib/ve'...
Submodule path 'lib/ve': checked out '7e8550432bd2ca523511f4409dce61b6ef20f8f2'

$ grr init
Installed commit-msg hook.

$ git show-ref refs/heads/master
939548c8123b569fb63139b45f9788c103bdeab5 refs/heads/master

$ composer install
Loading composer repositories with package information
Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/
Updating dependencies (including require-dev)
Package operations: 33 installs, 0 updates, 0 removals
  - Installing squizlabs/php_codesniffer (3.6.1): Loading from cache
  - Installing composer/spdx-licenses (1.5.5): Loading from cache
  - Installing composer/semver (3.2.6): Loading from cache
  - Installing mediawiki/mediawiki-codesniffer (v38.0.0): Loading from cache
  - Installing tysonandre/var_representation_polyfill (0.1.1): Loading from cache
  - Installing symfony/polyfill-php80 (v1.23.1): Loading from cache
  - Installing symfony/polyfill-mbstring (v1.23.1): Loading from cache
  - Installing symfony/polyfill-intl-normalizer (v1.23.0): Loading from cache
  - Installing symfony/polyfill-intl-grapheme (v1.23.1): Loading from cache
  - Installing symfony/polyfill-ctype (v1.23.0): Loading from cache
  - Installing symfony/string (v5.3.7): Loading from cache
  - Installing psr/container (1.1.1): Loading from cache
  - Installing symfony/service-contracts (v2.4.0): Loading from cache
  - Installing symfony/polyfill-php73 (v1.23.0): Loading from cache
  - Installing symfony/deprecation-contracts (v2.4.0): Loading from cache
  - Installing symfony/console (v5.3.7): Loading from cache
  - Installing psr/log (1.1.4): Loading from cache
  - Installing sabre/event (5.1.2): Loading from cache
  - Installing netresearch/jsonmapper (v4.0.0): Loading from cache
  - Installing microsoft/tolerant-php-parser (v0.1.1): Loading from cache
  - Installing phpdocumentor/reflection-common (2.2.0): Loading from cache
  - Installing webmozart/assert (1.10.0): Loading from cache
  - Installing phpdocumentor/type-resolver (1.5.1): Loading from cache
  - Installing phpdocumentor/reflection-docblock (5.3.0): Loading from cache
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Loading from cache
  - Installing composer/xdebug-handler (2.0.2): Loading from cache
  - Installing phan/phan (5.2.0): Loading from cache
  - Installing mediawiki/phan-taint-check-plugin (3.3.2): Loading from cache
  - Installing mediawiki/mediawiki-phan-config (0.11.0): Loading from cache
  - Installing mediawiki/minus-x (1.1.1): Loading from cache
  - Installing php-parallel-lint/php-console-color (v0.3): Loading from cache
  - Installing php-parallel-lint/php-console-highlighter (v0.5): Loading from cache
  - Installing php-parallel-lint/php-parallel-lint (v1.3.1): Loading from cache
tysonandre/var_representation_polyfill suggests installing ext-var_representation (*)
symfony/service-contracts suggests installing symfony/service-implementation
symfony/console suggests installing symfony/event-dispatcher
symfony/console suggests installing symfony/lock
symfony/console suggests installing symfony/process
phan/phan suggests installing ext-ast (Needed for parsing ASTs (unless --use-fallback-parser is used). 1.0.1+ is needed, 1.0.14+ is recommended.)
phan/phan suggests installing ext-var_representation (Suggested for converting values to strings in issue messages)
Writing lock file
Generating autoload files
13 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

Upgrading n:grunt from 1.4.0 -> 1.4.1
$ npm install

> core-js@3.10.1 postinstall /src/repo/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"

Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

The project needs your help! Please consider supporting of core-js on Open Collective or Patreon: 
> https://opencollective.com/core-js 
> https://www.patreon.com/zloirock 

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)


> jpeg-recompress-bin@4.0.0 postinstall /src/repo/node_modules/jpeg-recompress-bin
> node lib/install.js

  ✔ jpeg-recompress pre-build test passed successfully

> gifsicle@4.0.1 postinstall /src/repo/node_modules/gifsicle
> node lib/install.js

  ✔ gifsicle pre-build test passed successfully

> guetzli@2.0.0 postinstall /src/repo/node_modules/guetzli
> node lib/install.js

  ⚠ Command failed: /src/repo/node_modules/guetzli/vendor/guetzli --verbose
Guetzli JPEG compressor. Usage: 
guetzli [flags] input_filename output_filename

Flags:
  --verbose    - Print a verbose trace of all attempts to standard output.
  --quality Q  - Visual quality to aim for, expressed as a JPEG quality value.
  --memlimit M - Memory limit in MB. Guetzli will fail if unable to stay under
                 the limit. Default is 6000 MB
  --nomemlimit - Do not limit memory usage.


  ⚠ guetzli pre-build test failed
  ℹ compiling from source
  ✔ guetzli built successfully

> mozjpeg@6.0.1 postinstall /src/repo/node_modules/mozjpeg
> node lib/install.js

  ✔ mozjpeg pre-build test passed successfully

> optipng-bin@6.0.0 postinstall /src/repo/node_modules/optipng-bin
> node lib/install.js

  ✔ optipng pre-build test passed successfully

> pngquant-bin@5.0.2 postinstall /src/repo/node_modules/pngquant-bin
> node lib/install.js

  ✔ pngquant pre-build test passed successfully

> zopflipng-bin@5.0.0 postinstall /src/repo/node_modules/zopflipng-bin
> node lib/install.js

  ✔ zopflipng pre-build test passed successfully
added 891 packages from 934 contributors and audited 891 packages in 162.988s

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

found 4 vulnerabilities (3 moderate, 1 high)
  run `npm audit fix` to fix them, or `npm audit` for details

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

$ npm ci
npm WARN prepare removing existing node_modules/ before installation

> core-js@3.10.1 postinstall /src/repo/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> zopflipng-bin@5.0.0 postinstall /src/repo/node_modules/zopflipng-bin
> node lib/install.js

  ✔ zopflipng pre-build test passed successfully

> pngquant-bin@5.0.2 postinstall /src/repo/node_modules/pngquant-bin
> node lib/install.js

  ✔ pngquant pre-build test passed successfully

> optipng-bin@6.0.0 postinstall /src/repo/node_modules/optipng-bin
> node lib/install.js

  ✔ optipng pre-build test passed successfully

> mozjpeg@6.0.1 postinstall /src/repo/node_modules/mozjpeg
> node lib/install.js

  ✔ mozjpeg pre-build test passed successfully

> jpeg-recompress-bin@4.0.0 postinstall /src/repo/node_modules/jpeg-recompress-bin
> node lib/install.js

  ✔ jpeg-recompress pre-build test passed successfully

> guetzli@2.0.0 postinstall /src/repo/node_modules/guetzli
> node lib/install.js

  ⚠ Command failed: /src/repo/node_modules/guetzli/vendor/guetzli --verbose
Guetzli JPEG compressor. Usage: 
guetzli [flags] input_filename output_filename

Flags:
  --verbose    - Print a verbose trace of all attempts to standard output.
  --quality Q  - Visual quality to aim for, expressed as a JPEG quality value.
  --memlimit M - Memory limit in MB. Guetzli will fail if unable to stay under
                 the limit. Default is 6000 MB
  --nomemlimit - Do not limit memory usage.


  ⚠ guetzli pre-build test failed
  ℹ compiling from source
  ✔ guetzli built successfully

> gifsicle@4.0.1 postinstall /src/repo/node_modules/gifsicle
> node lib/install.js

  ✔ gifsicle pre-build test passed successfully
added 891 packages in 43.038s

$ npm test

> visualeditor@0.0.0 test /src/repo
> grunt test

Running "jsduckcatconfig:main" (jsduckcatconfig) task
>> File ".jsduck/categories.json" written.

Running "buildloader:egiframe" (buildloader) task
>> File ".jsduck/eg-iframe.html" written.

Running "tyops:src" (tyops) task
>> No typos found; 391 files checked for 16 typos.

Running "eslint:all" (eslint) task

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

Running "banana:all" (banana) task
>> 3 message directories checked.

Done.

Attempting to npm audit fix
$ npm audit fix --only=dev
up to date in 4.844s

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

fixed 0 of 4 vulnerabilities in 891 scanned packages
  2 vulnerabilities required manual review and could not be updated
  2 package updates for 2 vulnerabilities involved breaking changes
  (use `npm audit fix --force` to install breaking changes; or refer to `npm audit` for steps to fix these manually)

$ npm audit fix --only=dev
up to date in 4.785s

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

fixed 0 of 4 vulnerabilities in 891 scanned packages
  2 vulnerabilities required manual review and could not be updated
  2 package updates for 2 vulnerabilities involved breaking changes
  (use `npm audit fix --force` to install breaking changes; or refer to `npm audit` for steps to fix these manually)

$ npm audit fix --only=dev
up to date in 4.565s

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

fixed 0 of 4 vulnerabilities in 891 scanned packages
  2 vulnerabilities required manual review and could not be updated
  2 package updates for 2 vulnerabilities involved breaking changes
  (use `npm audit fix --force` to install breaking changes; or refer to `npm audit` for steps to fix these manually)

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

Verifying that tests still pass
$ npm ci
npm WARN prepare removing existing node_modules/ before installation

> core-js@3.10.1 postinstall /src/repo/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"

Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

The project needs your help! Please consider supporting of core-js on Open Collective or Patreon: 
> https://opencollective.com/core-js 
> https://www.patreon.com/zloirock 

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)


> zopflipng-bin@5.0.0 postinstall /src/repo/node_modules/zopflipng-bin
> node lib/install.js

  ✔ zopflipng pre-build test passed successfully

> pngquant-bin@5.0.2 postinstall /src/repo/node_modules/pngquant-bin
> node lib/install.js

  ✔ pngquant pre-build test passed successfully

> optipng-bin@6.0.0 postinstall /src/repo/node_modules/optipng-bin
> node lib/install.js

  ✔ optipng pre-build test passed successfully

> mozjpeg@6.0.1 postinstall /src/repo/node_modules/mozjpeg
> node lib/install.js

  ✔ mozjpeg pre-build test passed successfully

> jpeg-recompress-bin@4.0.0 postinstall /src/repo/node_modules/jpeg-recompress-bin
> node lib/install.js

  ✔ jpeg-recompress pre-build test passed successfully

> guetzli@2.0.0 postinstall /src/repo/node_modules/guetzli
> node lib/install.js

  ⚠ Command failed: /src/repo/node_modules/guetzli/vendor/guetzli --verbose
Guetzli JPEG compressor. Usage: 
guetzli [flags] input_filename output_filename

Flags:
  --verbose    - Print a verbose trace of all attempts to standard output.
  --quality Q  - Visual quality to aim for, expressed as a JPEG quality value.
  --memlimit M - Memory limit in MB. Guetzli will fail if unable to stay under
                 the limit. Default is 6000 MB
  --nomemlimit - Do not limit memory usage.


  ⚠ guetzli pre-build test failed
  ℹ compiling from source
  ✔ guetzli built successfully

> gifsicle@4.0.1 postinstall /src/repo/node_modules/gifsicle
> node lib/install.js

  ✔ gifsicle pre-build test passed successfully
added 891 packages in 40.686s

$ npm test

> visualeditor@0.0.0 test /src/repo
> grunt test

Running "jsduckcatconfig:main" (jsduckcatconfig) task
>> File ".jsduck/categories.json" written.

Running "buildloader:egiframe" (buildloader) task
>> File ".jsduck/eg-iframe.html" written.

Running "tyops:src" (tyops) task
>> No typos found; 391 files checked for 16 typos.

Running "eslint:all" (eslint) task

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

Running "banana:all" (banana) task
>> 3 message directories checked.

Done.

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

$ git add .

$ git commit -F /tmp/tmp7o_ehcwb
[master 121c462] build: Updating grunt to 1.4.1
 2 files changed, 21 insertions(+), 21 deletions(-)

$ git format-patch HEAD~1 --stdout
From 121c462c7e66d2e66870e332b8b533e5df8e24a1 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Wed, 27 Oct 2021 08:33:55 +0000
Subject: [PATCH] build: Updating grunt to 1.4.1

Change-Id: Ibd63a63b76a9a966c560b7987dc1ef85ac314a8e
---
 package-lock.json | 40 ++++++++++++++++++++--------------------
 package.json      |  2 +-
 2 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index a5a9449..ad33c98 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1049,9 +1049,9 @@
 			"dev": true
 		},
 		"async": {
-			"version": "3.2.0",
-			"resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz",
-			"integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==",
+			"version": "3.2.1",
+			"resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz",
+			"integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==",
 			"dev": true
 		},
 		"autoprefixer": {
@@ -3381,9 +3381,9 @@
 			"dev": true
 		},
 		"getobject": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.0.tgz",
-			"integrity": "sha512-tbUz6AKKKr2YiMB+fLWIgq5ZeBOobop9YMMAU9dC54/ot2ksMXt3DOFyBuhZw6ptcVszEykgByK20j7W9jHFag==",
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz",
+			"integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==",
 			"dev": true
 		},
 		"gifsicle": {
@@ -3643,9 +3643,9 @@
 			"dev": true
 		},
 		"grunt": {
-			"version": "1.4.0",
-			"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.4.0.tgz",
-			"integrity": "sha512-yRFc0GVCDu9yxqOFzpuXQ2pEdgtLDnFv5Qz54jfIcNnpJ8Z7B7P7kPkT4VMuRvm+N+QOsI8C4v/Q0DSaoj3LgQ==",
+			"version": "1.4.1",
+			"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.4.1.tgz",
+			"integrity": "sha512-ZXIYXTsAVrA7sM+jZxjQdrBOAg7DyMUplOMhTaspMRExei+fD0BTwdWXnn0W5SXqhb/Q/nlkzXclSi3IH55PIA==",
 			"dev": true,
 			"requires": {
 				"dateformat": "~3.0.3",
@@ -3654,7 +3654,7 @@
 				"findup-sync": "~0.3.0",
 				"glob": "~7.1.6",
 				"grunt-cli": "~1.4.2",
-				"grunt-known-options": "~1.1.1",
+				"grunt-known-options": "~2.0.0",
 				"grunt-legacy-log": "~3.0.0",
 				"grunt-legacy-util": "~2.0.1",
 				"iconv-lite": "~0.4.13",
@@ -3666,12 +3666,12 @@
 			},
 			"dependencies": {
 				"grunt-cli": {
-					"version": "1.4.2",
-					"resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.2.tgz",
-					"integrity": "sha512-wsu6BZh7KCnfeaSkDrKIAvOlqGKxNRTZjc8xfZlvxCByQIqUfZ31kh5uHpPnhQ4NdVgvaWaVxa1LUbVU80nACw==",
+					"version": "1.4.3",
+					"resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz",
+					"integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==",
 					"dev": true,
 					"requires": {
-						"grunt-known-options": "~1.1.1",
+						"grunt-known-options": "~2.0.0",
 						"interpret": "~1.1.0",
 						"liftup": "~3.0.1",
 						"nopt": "~4.0.1",
@@ -3839,9 +3839,9 @@
 			}
 		},
 		"grunt-known-options": {
-			"version": "1.1.1",
-			"resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
-			"integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==",
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz",
+			"integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==",
 			"dev": true
 		},
 		"grunt-legacy-log": {
@@ -6110,9 +6110,9 @@
 			}
 		},
 		"rechoir": {
-			"version": "0.7.0",
-			"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz",
-			"integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==",
+			"version": "0.7.1",
+			"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
+			"integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
 			"dev": true,
 			"requires": {
 				"resolve": "^1.9.0"
diff --git a/package.json b/package.json
index 9abcad6..7bd1a96 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,7 @@
 	},
 	"devDependencies": {
 		"eslint-config-wikimedia": "0.20.0",
-		"grunt": "1.4.0",
+		"grunt": "1.4.1",
 		"grunt-banana-checker": "0.9.0",
 		"grunt-contrib-copy": "1.0.0",
 		"grunt-contrib-watch": "1.1.0",
-- 
2.20.1

Source code is licensed under the AGPL.