tree ae94a8feb04df9437d82cb1798bf0e18c59243ed
parent f2b54de205eff996e76bd3d634360cc59c6b3577
author John Gozde <john@gozde.ca> 1618629319 -0600
committer GitHub <noreply@github.com> 1618629319 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJgelLICRBK7hj4Ov3rIwAADVkIAAfTidfp/L98+nlubSVxQXPj
 /W3GfvCsGIjBJfklzrXX76MNzRMkinNgXtwSg7cYK88PgcrjwqnTF24HFzE3z5wI
 4UPkO9hf5NLU+Ga8XlqKK6w+QvFSaaBxbiI3lHZHAzrFpR8AMjZyGqiZ0XKBjKiM
 I3VLA/p827azEjoU2cXvmUAtWb2PvdBNd5a3QwzTz/NmSurFylN4uuZ4TiT8+tEs
 F5m1QDmD1hROyPw4tvLoL8ZZUdPcpR235cPxI5ZHcztW3lRjYQJwZ+PH8H7ZWrXy
 0T+rhJENC3GJS3LLtLhKHLmbsAXjiDI+agIKLJPTxsDDgs9COYUgpL1fvZkAHCU=
 =CGSE
 -----END PGP SIGNATURE-----
 

Web console: update dev dependencies (#11119)

* Update some dev dependencies, prettify, tslint-fix

* Sort tsconfig keys for easy comparison

* Set noImplicitThis

* Slightly more accurate types

* Bump Jest and related

* Bump react to latest on v16

* Bump node-sass, sass-loader for node14 support

* Remove node-sass-chokidar (unused)

* More unused dependencies

* Fix blueprint imports

* Webpack 5

* Update webpack config for 'process' usage

* Update playwright-chromium

* Emit esnext modules for tree shaking

* Enable source maps in development

* Dedupe

* Bump babel and things

* npm audit fix

* Add .editorconfig file to match prettier settings

* Update licenses (tslib is 0BSD as of 1.11.2)

https://github.com/microsoft/tslib/pull/96

* Require node >= 10

* Use Node 10 to run e2e tests

* Use 'ws' transport mode for dev server (will be default in next version)

* Remove an 'any'

* No sourcemaps in prod

* Exclude .editorconfig from license checks

* Try nvm for setting node version