VisualEditor/VisualEditor (main)

sourcepatches
From f25e758ae358e4e8ef698cccfde552a5f1e14546 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sat, 15 May 2021 10:32:16 +0000
Subject: [PATCH] build: Updating postcss to 8.2.15

* https://npmjs.com/advisories/1693 (CVE-2021-23368)

Change-Id: Ib980510a57fa5881064f919e711d0faa81d9946a
---
 package-lock.json | 36 ++++++++++++++++++++++--------------
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 071bb36..bfbf860 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1507,16 +1507,22 @@
 			},
 			"dependencies": {
 				"postcss": {
-					"version": "8.2.9",
-					"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.9.tgz",
-					"integrity": "sha512-b+TmuIL4jGtCHtoLi+G/PisuIl9avxs8IZMSmlABRwNz5RLUUACrC+ws81dcomz1nRezm5YPdXiMEzBEKgYn+Q==",
+					"version": "8.2.15",
+					"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz",
+					"integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==",
 					"dev": true,
 					"requires": {
 						"colorette": "^1.2.2",
-						"nanoid": "^3.1.22",
+						"nanoid": "^3.1.23",
 						"source-map": "^0.6.1"
 					},
 					"dependencies": {
+						"nanoid": {
+							"version": "3.1.23",
+							"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
+							"integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==",
+							"dev": true
+						},
 						"source-map": {
 							"version": "0.6.1",
 							"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -4287,12 +4293,6 @@
 			"dev": true,
 			"optional": true
 		},
-		"nanoid": {
-			"version": "3.1.22",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz",
-			"integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==",
-			"dev": true
-		},
 		"natural-compare": {
 			"version": "1.4.0",
 			"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -5780,14 +5780,22 @@
 			},
 			"dependencies": {
 				"postcss": {
-					"version": "8.2.9",
-					"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.9.tgz",
-					"integrity": "sha512-b+TmuIL4jGtCHtoLi+G/PisuIl9avxs8IZMSmlABRwNz5RLUUACrC+ws81dcomz1nRezm5YPdXiMEzBEKgYn+Q==",
+					"version": "8.2.15",
+					"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz",
+					"integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==",
 					"dev": true,
 					"requires": {
 						"colorette": "^1.2.2",
-						"nanoid": "^3.1.22",
+						"nanoid": "^3.1.23",
 						"source-map": "^0.6.1"
+					},
+					"dependencies": {
+						"nanoid": {
+							"version": "3.1.23",
+							"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
+							"integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==",
+							"dev": true
+						}
 					}
 				},
 				"source-map": {
-- 
2.20.1

$ date
Sat May 15 10:28:02 UTC 2021

$ git clone file:///srv/git/VisualEditor-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

$ grr init
Installed commit-msg hook.

$ git show-ref refs/heads/master
e645b06af2f768819667de04382e2ce4035b3186 refs/heads/master

Attempting to npm audit fix
$ npm audit fix --only=dev

> mmmagic@0.5.3 install /src/repo/node_modules/mmmagic
> node-gyp rebuild

make: Entering directory '/src/repo/node_modules/mmmagic/build'
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/apprentice.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/apptype.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/ascmagic.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/cdf.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/cdf_time.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/compress.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/der.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/encoding.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/fsmagic.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/funcs.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/is_tar.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/magic.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/print.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/readcdf.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/readelf.o
../deps/libmagic/src/readelf.c: In function ‘dophn_core’:
../deps/libmagic/src/readelf.c:1024:13: warning: ‘nh64.n_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  Elf64_Nhdr nh64;
             ^~~~
../deps/libmagic/src/readelf.c:1023:13: warning: ‘nh32.n_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  Elf32_Nhdr nh32;
             ^~~~
../deps/libmagic/src/readelf.c: In function ‘dophn_exec’:
../deps/libmagic/src/readelf.c:1024:13: warning: ‘nh64.n_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  Elf64_Nhdr nh64;
             ^~~~
../deps/libmagic/src/readelf.c:1023:13: warning: ‘nh32.n_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  Elf32_Nhdr nh32;
             ^~~~
../deps/libmagic/src/readelf.c: In function ‘doshn’:
../deps/libmagic/src/readelf.c:1024:13: warning: ‘nh64.n_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  Elf64_Nhdr nh64;
             ^~~~
../deps/libmagic/src/readelf.c:1023:13: warning: ‘nh32.n_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  Elf32_Nhdr nh32;
             ^~~~
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/softmagic.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/fmtcheck.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/strlcat.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/strlcpy.o
  AR(target) Release/obj.target/deps/libmagic/magic.a
  COPY Release/magic.a
  CXX(target) Release/obj.target/magic/src/binding.o
../src/binding.cc: In static member function ‘static void Magic::DetectFile(const Nan::FunctionCallbackInfo<v8::Value>&)’:
../src/binding.cc:184:59: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                  (uv_after_work_cb)Magic::DetectAfter);
                                                           ^~~~~~~~~~~
../src/binding.cc: In static member function ‘static void Magic::Detect(const Nan::FunctionCallbackInfo<v8::Value>&)’:
../src/binding.cc:217:59: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                  (uv_after_work_cb)Magic::DetectAfter);
                                                           ^~~~~~~~~~~
In file included from ../src/binding.cc:1:
../src/binding.cc: At global scope:
/cache/node-gyp/10.24.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/cache/node-gyp/10.24.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/binding.cc:415:3: note: in expansion of macro ‘NODE_MODULE’
   NODE_MODULE(magic, init);
   ^~~~~~~~~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../src/binding.cc:1:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/magic.node
  COPY Release/magic.node
make: Leaving directory '/src/repo/node_modules/mmmagic/build'

> 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 -)

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 747 packages from 1179 contributors in 24.074s

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

fixed 2 of 9 vulnerabilities in 747 scanned packages
  7 vulnerabilities required manual review and could not be updated

$ npm audit fix --only=dev
npm WARN grunt-karma@4.0.0 requires a peer of karma@^4.0.0 || ^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

up to date in 3.568s

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

fixed 0 of 7 vulnerabilities in 748 scanned packages
  7 vulnerabilities required manual review and could not be updated

$ npm audit fix --only=dev
npm WARN grunt-karma@4.0.0 requires a peer of karma@^4.0.0 || ^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

up to date in 3.129s

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

fixed 0 of 7 vulnerabilities in 748 scanned packages
  7 vulnerabilities required manual review and could not be updated

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){}"


> mmmagic@0.5.3 install /src/repo/node_modules/mmmagic
> node-gyp rebuild

make: Entering directory '/src/repo/node_modules/mmmagic/build'
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/apprentice.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/apptype.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/ascmagic.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/cdf.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/cdf_time.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/compress.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/der.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/encoding.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/fsmagic.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/funcs.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/is_tar.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/magic.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/print.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/readcdf.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/readelf.o
../deps/libmagic/src/readelf.c: In function ‘dophn_core’:
../deps/libmagic/src/readelf.c:1024:13: warning: ‘nh64.n_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  Elf64_Nhdr nh64;
             ^~~~
../deps/libmagic/src/readelf.c:1023:13: warning: ‘nh32.n_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  Elf32_Nhdr nh32;
             ^~~~
../deps/libmagic/src/readelf.c: In function ‘dophn_exec’:
../deps/libmagic/src/readelf.c:1024:13: warning: ‘nh64.n_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  Elf64_Nhdr nh64;
             ^~~~
../deps/libmagic/src/readelf.c:1023:13: warning: ‘nh32.n_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  Elf32_Nhdr nh32;
             ^~~~
../deps/libmagic/src/readelf.c: In function ‘doshn’:
../deps/libmagic/src/readelf.c:1024:13: warning: ‘nh64.n_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  Elf64_Nhdr nh64;
             ^~~~
../deps/libmagic/src/readelf.c:1023:13: warning: ‘nh32.n_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  Elf32_Nhdr nh32;
             ^~~~
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/softmagic.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/fmtcheck.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/strlcat.o
  CC(target) Release/obj.target/libmagic/deps/libmagic/src/strlcpy.o
  AR(target) Release/obj.target/deps/libmagic/magic.a
  COPY Release/magic.a
  CXX(target) Release/obj.target/magic/src/binding.o
../src/binding.cc: In static member function ‘static void Magic::DetectFile(const Nan::FunctionCallbackInfo<v8::Value>&)’:
../src/binding.cc:184:59: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                  (uv_after_work_cb)Magic::DetectAfter);
                                                           ^~~~~~~~~~~
../src/binding.cc: In static member function ‘static void Magic::Detect(const Nan::FunctionCallbackInfo<v8::Value>&)’:
../src/binding.cc:217:59: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                  (uv_after_work_cb)Magic::DetectAfter);
                                                           ^~~~~~~~~~~
In file included from ../src/binding.cc:1:
../src/binding.cc: At global scope:
/cache/node-gyp/10.24.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/cache/node-gyp/10.24.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/binding.cc:415:3: note: in expansion of macro ‘NODE_MODULE’
   NODE_MODULE(magic, init);
   ^~~~~~~~~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../src/binding.cc:1:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/magic.node
  COPY Release/magic.node
make: Leaving directory '/src/repo/node_modules/mmmagic/build'

> visualeditor@0.0.0 postinstall /src/repo
> cd rebaser && npm ci


> ejs@3.0.1 postinstall /src/repo/rebaser/node_modules/ejs
> node ./postinstall.js

Thank you for installing EJS: built with the Jake JavaScript build tool (https://jakejs.com/)


> unix-dgram@2.0.3 install /src/repo/rebaser/node_modules/unix-dgram
> node-gyp rebuild

make: Entering directory '/src/repo/rebaser/node_modules/unix-dgram/build'
  CXX(target) Release/obj.target/unix_dgram/src/unix_dgram.o
In file included from ../src/unix_dgram.cc:5:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from ../../nan/nan.h:54,
                 from ../src/unix_dgram.cc:5:
../src/unix_dgram.cc: At global scope:
/cache/node-gyp/10.24.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/cache/node-gyp/10.24.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/unix_dgram.cc:404:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(unix_dgram, Initialize)
 ^~~~~~~~~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:54,
                 from ../src/unix_dgram.cc:5:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/unix_dgram.node
  COPY Release/unix_dgram.node
make: Leaving directory '/src/repo/rebaser/node_modules/unix-dgram/build'

> heapdump@0.3.15 install /src/repo/rebaser/node_modules/heapdump
> node-gyp rebuild

make: Entering directory '/src/repo/rebaser/node_modules/heapdump/build'
  CXX(target) Release/obj.target/addon/src/heapdump.o
In file included from ../src/heapdump.cc:17:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from ../src/heapdump.cc:15:
../src/heapdump.cc: At global scope:
/cache/node-gyp/10.24.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/cache/node-gyp/10.24.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/heapdump.cc:136:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(addon, Initialize)
 ^~~~~~~~~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../src/heapdump.cc:15:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/addon.node
  COPY Release/addon.node
make: Leaving directory '/src/repo/rebaser/node_modules/heapdump/build'

> gc-stats@1.4.0 install /src/repo/rebaser/node_modules/gc-stats
> node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using request for node-pre-gyp https download 
[gc-stats] Success: "/src/repo/rebaser/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node-v64-linux-x64/gcstats.node" is installed via remote

> dtrace-provider@0.8.8 install /src/repo/rebaser/node_modules/dtrace-provider
> node-gyp rebuild || node suppress-error.js

make: Entering directory '/src/repo/rebaser/node_modules/dtrace-provider/build'
  TOUCH Release/obj.target/DTraceProviderStub.stamp
make: Leaving directory '/src/repo/rebaser/node_modules/dtrace-provider/build'
added 194 packages in 11.072s

> visualeditor@0.0.0 prepare /src/repo
> grunt build

Running "clean:dist" (clean) task
>> 0 paths cleaned.

Running "concat:rebaser.build" (concat) task

Running "concat:visualEditor.rebase.scripts" (concat) task

Running "concat:visualEditor.rebase.styles" (concat) task

Running "concat:js" (concat) task

Running "concat:css-apex" (concat) task

Running "concat:css-wikimediaui" (concat) task

Running "concat:jquery.i18n" (concat) task

Running "concat:jquery.uls.data" (concat) task

Running "cssjanus:apex" (cssjanus) task
File "dist/visualEditor-apex.rtl.css" created.

Running "cssjanus:wikimediaui" (cssjanus) task
File "dist/visualEditor-wikimediaui.rtl.css" created.

Running "cssUrlEmbed:dist" (cssUrlEmbed) task

Processing source file "dist/visualEditor-apex.css"
2 embeddable URLs found

Processing source file "dist/visualEditor-apex.rtl.css"
2 embeddable URLs found

Processing source file "dist/visualEditor-wikimediaui.css"
2 embeddable URLs found

Processing source file "dist/visualEditor-wikimediaui.rtl.css"
2 embeddable URLs found
>> "../../../ui/styles/images/resize-nw-se.svg" embedded
>> "../../../ui/styles/images/resize-nw-se.svg" embedded
>> "../../../ui/styles/images/resize-nw-se.svg" embedded
>> "../../../ui/styles/images/resize-nw-se.svg" embedded
>> "../../../ui/styles/images/resize-ne-sw.svg" embedded
File "dist/visualEditor-apex.css" created
>> "../../../ui/styles/images/resize-ne-sw.svg" embedded
File "dist/visualEditor-apex.rtl.css" created
>> "../../../ui/styles/images/resize-ne-sw.svg" embedded
File "dist/visualEditor-wikimediaui.rtl.css" created
>> "../../../ui/styles/images/resize-ne-sw.svg" embedded
File "dist/visualEditor-wikimediaui.css" created

Running "copy:i18n" (copy) task
Copied 201 files

Running "copy:lib" (copy) task
Created 28 directories, copied 1335 files

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

Running "buildloader:desktopDemoApex" (buildloader) task
>> File "demos/ve/desktop.html" written.

Running "buildloader:desktopDemoApexDist" (buildloader) task
>> File "demos/ve/desktop-dist.html" written.

Running "buildloader:desktopDemoWikimediaUI" (buildloader) task
>> File "demos/ve/desktop-wikimediaui.html" written.

Running "buildloader:desktopDemoWikimediaUIDist" (buildloader) task
>> File "demos/ve/desktop-wikimediaui-dist.html" written.

Running "buildloader:mobileDemo" (buildloader) task
>> File "demos/ve/mobile.html" written.

Running "buildloader:mobileDemoDist" (buildloader) task
>> File "demos/ve/mobile-dist.html" written.

Running "buildloader:minimalDemo" (buildloader) task
>> File "demos/ve/minimal.html" written.

Running "buildloader:minimalDemoRtl" (buildloader) task
>> File "demos/ve/minimal-rtl.html" written.

Running "buildloader:performanceTest" (buildloader) task
>> File "demos/ve/performance.html" written.

Running "buildloader:test" (buildloader) task
>> File "tests/index.html" written.

Done.
added 748 packages in 37.729s

$ npm test

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

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

Running "eslint:all" (eslint) task

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

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

Running "git-build" task

Running "clean:dist" (clean) task
>> 12 paths cleaned.

Running "concat:rebaser.build" (concat) task

Running "concat:visualEditor.rebase.scripts" (concat) task

Running "concat:visualEditor.rebase.styles" (concat) task

Running "concat:js" (concat) task

Running "concat:css-apex" (concat) task

Running "concat:css-wikimediaui" (concat) task

Running "concat:jquery.i18n" (concat) task

Running "concat:jquery.uls.data" (concat) task

Running "cssjanus:apex" (cssjanus) task
File "dist/visualEditor-apex.rtl.css" created.

Running "cssjanus:wikimediaui" (cssjanus) task
File "dist/visualEditor-wikimediaui.rtl.css" created.

Running "cssUrlEmbed:dist" (cssUrlEmbed) task

Processing source file "dist/visualEditor-apex.css"
2 embeddable URLs found

Processing source file "dist/visualEditor-apex.rtl.css"
2 embeddable URLs found

Processing source file "dist/visualEditor-wikimediaui.css"
2 embeddable URLs found

Processing source file "dist/visualEditor-wikimediaui.rtl.css"
2 embeddable URLs found
>> "../../../ui/styles/images/resize-nw-se.svg" embedded
>> "../../../ui/styles/images/resize-nw-se.svg" embedded
>> "../../../ui/styles/images/resize-nw-se.svg" embedded
>> "../../../ui/styles/images/resize-nw-se.svg" embedded
>> "../../../ui/styles/images/resize-ne-sw.svg" embedded
File "dist/visualEditor-apex.css" created
>> "../../../ui/styles/images/resize-ne-sw.svg" embedded
File "dist/visualEditor-apex.rtl.css" created
>> "../../../ui/styles/images/resize-ne-sw.svg" embedded
File "dist/visualEditor-wikimediaui.css" created
>> "../../../ui/styles/images/resize-ne-sw.svg" embedded
File "dist/visualEditor-wikimediaui.rtl.css" created

Running "copy:i18n" (copy) task
Copied 201 files

Running "copy:lib" (copy) task
Created 28 directories, copied 1335 files

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

Running "buildloader:desktopDemoApex" (buildloader) task
>> File "demos/ve/desktop.html" written.

Running "buildloader:desktopDemoApexDist" (buildloader) task
>> File "demos/ve/desktop-dist.html" written.

Running "buildloader:desktopDemoWikimediaUI" (buildloader) task
>> File "demos/ve/desktop-wikimediaui.html" written.

Running "buildloader:desktopDemoWikimediaUIDist" (buildloader) task
>> File "demos/ve/desktop-wikimediaui-dist.html" written.

Running "buildloader:mobileDemo" (buildloader) task
>> File "demos/ve/mobile.html" written.

Running "buildloader:mobileDemoDist" (buildloader) task
>> File "demos/ve/mobile-dist.html" written.

Running "buildloader:minimalDemo" (buildloader) task
>> File "demos/ve/minimal.html" written.

Running "buildloader:minimalDemoRtl" (buildloader) task
>> File "demos/ve/minimal-rtl.html" written.

Running "buildloader:performanceTest" (buildloader) task
>> File "demos/ve/performance.html" written.

Running "buildloader:test" (buildloader) task
>> File "tests/index.html" written.

Running "karma:chrome" (karma) task
15 05 2021 10:31:18.898:WARN [karma-server]: Passing raw CLI options to `new Server(config, done)` is deprecated. Use `parseConfig(configFilePath, cliOptions, {promiseConfig: true, throwErrors: true})` to prepare a processed `Config` instance and pass that as the `config` argument instead.

START:
15 05 2021 10:31:19.353:WARN [filelist]: All files matched by "/src/repo/node_modules/qunit/qunit/qunit.js" were excluded or matched by prior matchers.
15 05 2021 10:31:30.972:INFO [karma-server]: Karma v6.3.2 server started at http://localhost:9876/
15 05 2021 10:31:30.973:INFO [launcher]: Launching browsers ChromeCustom with concurrency unlimited
15 05 2021 10:31:30.978:INFO [launcher]: Starting browser ChromeHeadless
15 05 2021 10:31:34.547:INFO [Chrome Headless 89.0.4389.114 (Linux x86_64)]: Connected on socket 6PkE7QG-_Ai4cTaYAAAB with id 24524795
  ve
    ✔ compareClassLists
    ✔ isInstanceOfAny
    ✔ getDomAttributes
    ✔ setDomAttributes
    ✔ sparseSplice
    ✔ batchSplice
    ✔ batchPush
    ✔ insertIntoArray
    ✔ escapeHtml
    ✔ createDocumentFromHtml
    ✔ resolveUrl
    ✔ resolveAttributes
    ✔ fixBase
    ✔ isUriComponentValid
    ✔ safeDecodeURIComponent
    ✔ isBlockElement/isVoidElement
    ✔ graphemeSafeSubstring
    ✔ transformStyleAttributes
    ✔ normalizeNode
    ✔ getCommonAncestor
    ✔ getCommonStartSequenceLength
    ✔ adjacentDomPosition
    ✔ deepFreeze
    ✔ deepFreeze (on cyclic structure)
    ✔ deepFreeze (recursive, aliased)
  ve.DiffMatchPatch
    ✔ indexOf/lastIndexOf
  ve.EventSequencer
    ✔ EventSequencer
  ve.Scheduler
    ✔ Call with no real async
    ✔ Call with delay
    ✔ Test that throws an exception
    ✔ Test that never succeeds
  ve.Range
    ✔ Basic usage (isCollapsed, isBackwards, getLength, equals, equalsSelection, containsOffset, containsRange, touchesRange)
    ✔ Modification (flip, truncate, expand, translate)
    ✔ Factory methods & serialization (newCoveringRange, newFromJSON, toJSON)
  ve.Document
    ✔ getDocumentNode
  ve.Node
    ✔ getType
    ✔ getParent
    ✔ getRoot
  ve.BranchNode
    ✔ getChildren
    ✔ indexOf
    ✔ setDocument
  ve.dm.Annotation
    ✔ getHashObject
  ve.dm.AnnotationSet
    ✔ Basic usage
    ✔ Comparable
  ve.dm.LinkAnnotation
    ✔ getFragment
  ve.dm.NodeFactory
    ✔ getChildNodeTypes
    ✔ getParentNodeTypes
    ✔ canNodeHaveChildren
    ✔ canNodeTakeAnnotation
    ✔ canNodeHaveChildrenNotContent
    ✔ initialization
  ve.dm.Node
    ✔ canHaveChildren
    ✔ canHaveChildrenNotContent
    ✔ getLength
    ✔ getOuterLength
    ✔ setLength
    ✔ adjustLength
    ✔ getAttribute
    ✔ setRoot
    ✔ attach
    ✔ detach
    ✔ canBeMergedWith
    ✔ getClonedElement
  ve.dm.Converter
    ✔ getModelFromDom
    ✔ getModelFromDom with store argument
    ✔ getDomFromModel
    ✔ getFullData
    ✔ roundTripMetadata
  ve.dm.SourceConverter
    ✔ conversion
  ve.dm.BranchNode
    ✔ canHaveChildren
    ✔ canHaveChildrenNotContent
    ✔ setRoot
    ✔ setDocument
    ✔ push
    ✔ pop
    ✔ unshift
    ✔ shift
    ✔ splice
  ve.dm.LeafNode
    ✔ canHaveChildren
    ✔ canHaveChildrenNotContent
    ✔ getAnnotations
  ve.dm.TextNode
    ✔ getOuterLength
  ve.dm.Document
    ✔ constructor
    ✔ newBlankDocument
    ✔ getData
    ✔ getFullData
    ✔ cloneFromRange
    ✔ getRelativeOffset
    ✔ getRelativeRange
    ✔ getBranchNodeFromOffset
    ✔ hasSlugAtOffset
    ✔ getDataFromNode
    ✔ getOuterLength
    ✔ rebuildNodes
    ✔ selectNodes
    ✔ rangeInsideOneLeafNode
    ✔ shallowCloneFromRange
    ✔ protection against double application of transactions
    ✔ getNearestCursorOffset
    ✔ Selection equality
    ✔ findText (plain text)
    ✔ findText (non-text content)
    ✔ fixupInsertion
    ✔ read-only and offset caching
  ve.dm.HashValueStore
    ✔ hash(es)
    ✔ value(s)
    ✔ slice
  ve.dm.InternalList
    ✔ getDocument
    ✔ queueItemHtml/getItemHtmlQueue
    ✔ convertToData
    ✔ clone
  ve.dm.LinearData
    ✔ basic usage
    ✔ slice(Object)/splice(Object)/batchSplice
  ve.dm.Transaction
    ✔ translateOffset
    ✔ translateRange
    ✔ getModifiedRange
    ✔ Metadata transactions
  ve.dm.TransactionBuilder
    ✔ newFromInsertion
    ✔ newFromRemoval
    ✔ newFromReplacement
    ✔ newFromDocumentInsertion
    ✔ newFromAttributeChanges
    ✔ newFromAnnotation
    ✔ newFromContentBranchConversion
    ✔ newFromWrap
    ✔ pushRetain
    ✔ pushReplacement
    ✔ pushReplaceElementAttribute
    ✔ isNoOp
    ✔ operations/build from operations
    ✔ newFromRemoval preserving metadata
  ve.dm.TransactionSquasher
    ✔ squash
  ve.dm.Change
    ✔ rebaseTransactions
    ✔ Change operations
    ✔ Rebase with conflicting annotations
    ✔ toJSON/deserialize/unsafeDeserialize
    ✔ Minified serialization
    ✔ Same-offset typing
  ve.dm.RebaseServer
    ✔ Rebase
  ve.dm.DocumentStore
    ✔ Create
  ve.dm.TransportServer
    ✔ Create
  ve.dm.TreeModifier
    ✔ treeDiff
    ✔ modify
    ✔ bare content
    ✔ applyTreeOperation: ensureNotText
    ✔ setupBlockSlugs
    ✔ checkEqualData
    ✔ TreeCursor#crossIgnoredNodes
    ✔ TreeCursor#normalizeCursor
  ve.dm.TransactionProcessor
    ✔ commit
    ✔ undo clear annotation
  ve.dm.Surface
    ✔ getDocument
    ✔ getSelection
    ✔ setSelection out of range
    ✔ contextChange events
    ✔ documentUpdate/select events
    ✔ breakpoint/undo/redo
    ✔ multi-user undo
    ✔ change rollback
    ✔ range translation
    ✔ staging
    ✔ getOffsetFromSourceOffset / getSourceOffsetFromOffset / getRangeFromSourceOffsets
    ✔ autosave
  ve.dm.SurfaceFragment
    ✔ constructor
    ✔ update
    ✔ getSelectedModels
    ✔ getAnnotations
    ✔ hasAnnotations
    ✔ adjustLinearSelection
    ✔ truncateLinearSelection
    ✔ collapseToStart/End
    ✔ expandLinearSelection (annotation)
    ✔ expandLinearSelection (closest)
    ✔ expandLinearSelection (word)
    ✔ removeContent
    ✔ delete
    ✔ insertContent/insertDocument
    ✔ changeAttributes
    ✔ wrapNodes/unwrapNodes
    ✔ rewrapNodes
    ✔ wrapAllNodes
    ✔ rewrapAllNodes
    ✔ isolateAndUnwrap
  ve.dm.SourceSurfaceFragment
    ✔ insertContent/insertDocument
  ve.dm.ModelRegistry
    ✔ register/unregister/matchElement
    ✔ isAnnotation
  ve.dm.MetaList
    ✔ constructor
    ✔ onTransact
  ve.dm.Scalable
    ✔ construction/clone/getters/setters/toggleDefault/clearers
    ✔ getBoundedDimensions/getCurrentScale/isCurrentDimensionsValid/isTooSmall/isTooLarge
    ✔ isDefault/toggleDefault
    ✔ isDimensionsObjectValid
    ✔ getDimensionsFromValue
  ve.dm.LinearSelection
    ✔ Construction and getters (getRange(s))
    ✔ Basic methods (collapse*, isCollased, equals, isNull)
    ✔ Factory methods & serialization (newFromJSON, toJSON, getDescription)
  ve.dm.NullSelection
    ✔ Construction and getters (getDocument, getRanges)
    ✔ Basic methods (collapse*, isCollased, equals, isNull)
    ✔ Factory methods & serialization (newFromJSON, toJSON, getDescription)
  ve.dm.TableSelection
    ✔ Construction and getters (getDocument, getRanges, getOuterRanges, getTableNode)
    ✔ Basic methods (expand, collapse*, getRange(s), isCollased, isSingleCell, equals, isNull, isFullRow/Col, getRow/ColCount)
    ✔ Factory methods & serialization (newFromJSON, toJSON, getDescription)
  ve.dm.FlatLinearData
    ✔ getType/isOpenElementData/isCloseElementData
    ✔ isElementData
    ✔ containsElementData
  ve.dm.ElementLinearData
    ✔ getAnnotationsFromOffset
    ✔ getAnnotationsFromRange
    ✔ getInsertionAnnotationsFromRange
    ✔ getAnnotatedRangeFromOffset
    ✔ trimOuterSpaceFromRange
    ✔ isContentOffset
    ✔ isStructuralOffset
    ✔ getCharacterData
    ✔ isPlainText
    ✔ getText
    ✔ getSourceText
    ✔ isContentData
    ✔ getRelativeOffset
    ✔ getRelativeContentOffset
    ✔ getNearestContentOffset
    ✔ getRelativeStructuralOffset
    ✔ getNearestStructuralOffset
    ✔ getWordRange
    ✔ sanitize
    ✔ countNonInternalElements
    ✔ hasContent
    ✔ getAnnotationHashesFromOffset
    ✔ getUsedStoreValues
    ✔ compareElements and compareElementsUnannotated
  ve.ce
    ✔ getDomHash/getDomText (with ve.dm.Converter)
    ✔ getDomHash/getDomText (without ve.dm.Converter)
    ✔ getOffset
    ✔ isShortcutKey
    ✔ nextCursorOffset
    ✔ resolveTestOffset
    ✔ fakeImes
    ✔ isAfterAnnotationBoundary
  ve.ce.Document
    ✔ Converter tests
    ✔ getNodeAndOffset
    ✔ attachedRoot
  ve.ce.Surface
    ✔ handleObservedChanges (content changes)
    ✔ handleDataTransfer/handleDataTransferItems
    ✔ getClipboardHash
    ✔ onCopy
    ✔ beforePaste/afterPaste
    ✔ onDocumentDragStart/onDocumentDrop
    ✔ getSelectionState
    ✔ findBlockSlug
  ve.ce.RangeState
    ✔ Basic tests
  ve.ce.TextState
    ✔ getChangeTransaction
  ve.ce.NodeFactory
    ✔ splitNodeOnEnter/getDescription
    ✔ initialization
  ve.ce.AnnotationFactory
    ✔ canAnnotationBeActive/getDescription
    ✔ initialization
  ve.ce.Node
    ✔ getModel
    ✔ getParent
    ✔ attach
    ✔ detach
  ve.ce.BranchNode
    ✔ splitOnEnter
    ✔ canHaveChildren
    ✔ canHaveChildrenNotContent
    ✔ updateTagName
    ✔ getDomPosition
    ✔ onSplice
  ve.ce.ContentBranchNode
    ✔ getRenderedContents
  ve.ce.LeafNode
    ✔ splitOnEnter
    ✔ canHaveChildren
    ✔ canHaveChildrenNotContent
  ve.ce.Selection
    ✔ Rects
    ✔ getDirectionality
    ✔ equals
  ve.ce.LinearArrowKeyDownHandler
    ✔ special key down: linear arrow keys
  ve.ce.LinearDeleteKeyDownHandler
    ✔ special key down: linear backspace/delete
  ve.ce.LinearEnterKeyDownHandler
    ✔ special key down: linear enter
  ve.ce.LinearEscapeKeyDownHandler
    ✔ special key down: linear escape
  ve.ce.TableArrowKeyDownHandler
    ✔ special key down: table arrow keys (complex movements)
    ✔ special key down: table arrow keys (simple movements)
  ve.ce.TableDeleteKeyDownHandler
    ✔ special key down: table backspace/delete
  ve.ce.TableEnterKeyDownHandler
    ✔ special key down: table enter
  ve.ce.TableF2KeyDownHandler
    ✔ special key down: table f2
  ve.ce.ResizableNode
    ✔ updateSizeLabel
    ✔ resize events
    ✔ notResizable
  ve.ce.TextNode
    ✔ getAnnotatedHtml
  ve.ce.TableNode
    ✔ getNearestCellNode
    ✔ getFirstSectionNode
    ✔ onTableMouseDown/onTableMouseMove/onTableMouseUp/onTableDblClick
    ✔ onTableMouseDown
  ve.init.sa.Platform
    ✔ getUserConfig
    ✔ setUserConfig
    ✔ messages
    ✔ parsedMessage
  ve.ui.DataTransferHandlerFactory
    ✔ getHandlerNameForItem
  ve.ui.Trigger
    ✔ constructor
  ve.ui.Sequence
    ✔ findAndExecuteSequences
  ve.ui.DiffElement
    ✔ Diffing
    ✔ compareAttributes/describeChanges
  ve.ui.PreviewElement
    ✔ Basic tests
  ve.ui.AnnotationAction
    ✔ toggle
  ve.ui.BlockquoteAction
    ✔ wrap/unwrap/toggle
  ve.ui.ContentAction
    ✔ insert/remove/select/selectAll
  ve.ui.FormatAction
    ✔ convert
  ve.ui.IndentationAction
    ✔ increase/decrease
  ve.ui.LinkAction
    ✔ autolink
  ve.ui.ListAction
    ✔ (un)wrap
  ve.ui.TableAction
    ✔ create / insert / mergeCells / delete / changeCellStyle / moveRelative
  ve.ui.WindowAction
    ✔ Basic open/close
  ve.ui.DSVFileTransferHandler
    ✔ getInsertableData
  ve.ui.UrlStringTransferHandler
    ✔ paste
  ve.ui.FindAndReplaceDialog
    ✔ find fragments
    ✔ replace all
  ve.ui.FragmentInspector
    ✔ Different selections and inputs

Finished in 14.605 secs / 14.24 secs @ 10:31:50 GMT+0000 (Coordinated Universal Time)

SUMMARY:
✔ 312 tests completed

=============================== Coverage summary ===============================
Statements   : 80.66% ( 17460/21647 )
Branches     : 72.44% ( 7590/10478 )
Functions    : 72.72% ( 2191/3013 )
Lines        : 80.65% ( 17441/21626 )
================================================================================

Running "karma:firefox" (karma) task
15 05 2021 10:31:51.710:WARN [karma-server]: Passing raw CLI options to `new Server(config, done)` is deprecated. Use `parseConfig(configFilePath, cliOptions, {promiseConfig: true, throwErrors: true})` to prepare a processed `Config` instance and pass that as the `config` argument instead.
15 05 2021 10:31:51.807:WARN [filelist]: All files matched by "/src/repo/node_modules/qunit/qunit/qunit.js" were excluded or matched by prior matchers.
15 05 2021 10:31:51.925:INFO [karma-server]: Karma v6.3.2 server started at http://localhost:9876/
15 05 2021 10:31:51.925:INFO [launcher]: Launching browsers FirefoxHeadless with concurrency unlimited
15 05 2021 10:31:51.927:INFO [launcher]: Starting browser FirefoxHeadless
15 05 2021 10:31:56.303:INFO [Firefox 78.0 (Linux x86_64)]: Connected on socket IthnDIipDaZ3SqGOAAAD with id 72648107
................................................................................
................................................................................
................................................................................
........................................................................
Firefox 78.0 (Linux x86_64): Executed 312 of 312 SUCCESS (17.851 secs / 17.707 secs)

Done.

Upgrading n:postcss from 7.0.35 -> 8.2.15
$ git add .

$ git commit -F /tmp/tmpf31vamna
[master f25e758] build: Updating postcss to 8.2.15
 1 file changed, 22 insertions(+), 14 deletions(-)

$ git format-patch HEAD~1 --stdout
From f25e758ae358e4e8ef698cccfde552a5f1e14546 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sat, 15 May 2021 10:32:16 +0000
Subject: [PATCH] build: Updating postcss to 8.2.15

* https://npmjs.com/advisories/1693 (CVE-2021-23368)

Change-Id: Ib980510a57fa5881064f919e711d0faa81d9946a
---
 package-lock.json | 36 ++++++++++++++++++++++--------------
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 071bb36..bfbf860 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1507,16 +1507,22 @@
 			},
 			"dependencies": {
 				"postcss": {
-					"version": "8.2.9",
-					"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.9.tgz",
-					"integrity": "sha512-b+TmuIL4jGtCHtoLi+G/PisuIl9avxs8IZMSmlABRwNz5RLUUACrC+ws81dcomz1nRezm5YPdXiMEzBEKgYn+Q==",
+					"version": "8.2.15",
+					"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz",
+					"integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==",
 					"dev": true,
 					"requires": {
 						"colorette": "^1.2.2",
-						"nanoid": "^3.1.22",
+						"nanoid": "^3.1.23",
 						"source-map": "^0.6.1"
 					},
 					"dependencies": {
+						"nanoid": {
+							"version": "3.1.23",
+							"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
+							"integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==",
+							"dev": true
+						},
 						"source-map": {
 							"version": "0.6.1",
 							"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -4287,12 +4293,6 @@
 			"dev": true,
 			"optional": true
 		},
-		"nanoid": {
-			"version": "3.1.22",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz",
-			"integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==",
-			"dev": true
-		},
 		"natural-compare": {
 			"version": "1.4.0",
 			"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -5780,14 +5780,22 @@
 			},
 			"dependencies": {
 				"postcss": {
-					"version": "8.2.9",
-					"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.9.tgz",
-					"integrity": "sha512-b+TmuIL4jGtCHtoLi+G/PisuIl9avxs8IZMSmlABRwNz5RLUUACrC+ws81dcomz1nRezm5YPdXiMEzBEKgYn+Q==",
+					"version": "8.2.15",
+					"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz",
+					"integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==",
 					"dev": true,
 					"requires": {
 						"colorette": "^1.2.2",
-						"nanoid": "^3.1.22",
+						"nanoid": "^3.1.23",
 						"source-map": "^0.6.1"
+					},
+					"dependencies": {
+						"nanoid": {
+							"version": "3.1.23",
+							"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
+							"integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==",
+							"dev": true
+						}
 					}
 				},
 				"source-map": {
-- 
2.20.1

npm dependencies

Development dependencies

Logs

Source code is licensed under the AGPL.