[DevTools] upgrade electron to latest version & security improvements (#26337)
## Summary resolves #25667 This PR also resolves several security issues in the standalone app ## How did you test this change? Tested locally `yarn start` in react-devtools package. Everything works normal --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1204123419819195
Mengdi Chen committed
Mar 7, 2023 at 22:31 UTC
aef930314f55d4b445078f83be53d46028d4574c
5 files changed
+80
-140
packages/react-devtools/app.html
+8
-34
@@ -156,28 +156,11 @@
156
</div>
157
</div>
158
<script>
159
- const fs = require('fs');
160
- let options;
161
- let useHttps = false;
159
+ // window.api is defined in preload.js
160
+ const {electron, readEnv, ip, getDevTools} = window.api;
161
+ const {options, useHttps, host, protocol, port} = readEnv();
162
163
- try {
164
- if (process.env.KEY && process.env.CERT) {
165
- options = {
166
- key: fs.readFileSync(process.env.KEY),
167
- cert: fs.readFileSync(process.env.CERT)
168
- };
169
- useHttps = true;
170
- }
171
- } catch (err) {
172
- console.error('Failed to process SSL options - ', err);
173
- options = undefined;
174
- }
175
-
176
- const {clipboard} = require("electron");
177
- const host = process.env.HOST || 'localhost';
178
- const protocol = useHttps ? 'https' : 'http';
179
- const port = Number(process.env.PORT || 8097);
180
- const localIp = require("ip").address();
163
+ const localIp = ip.address();
164
const defaultPort = (port === 443 && useHttps) || (port === 80 && !useHttps);
165
const server = defaultPort ? `${protocol}://${host}` : `${protocol}://${host}:${port}`;
166
const serverIp = defaultPort ? `${protocol}://${localIp}` : `${protocol}://${localIp}:${port}`;
@@ -193,7 +176,7 @@
176
range.selectNodeContents(element);
177
selection.removeAllRanges();
178
selection.addRange(range);
196
- clipboard.writeText(event.target.textContent);
179
+ electron.clipboard.writeText(event.target.textContent);
180
181
const $promptDiv = $("#box-content-prompt");
182
const $confirmationDiv = $("#box-content-confirmation");
@@ -221,7 +204,7 @@
204
const link = $('#rn-help-link');
205
link.addEventListener('click', event => {
206
event.preventDefault();
224
- require('electron').shell.openExternal(link.href);
207
+ electron.shell.openExternal(link.href);
208
});
209
210
const $localhost = $("#localhost");
@@ -241,17 +224,8 @@
224
// Initially attach the listeners
225
attachListeners();
226
244
- let devtools;
245
- try {
246
- devtools = require("react-devtools-core/standalone").default;
247
- } catch (err) {
248
- alert(
249
- err.toString() +
250
- "\n\nDid you run `yarn` and `yarn run build` in packages/react-devtools-core?"
251
- );
252
- }
253
- window.devtools = devtools;
254
- window.server = devtools
227
+ window.devtools = getDevTools();
228
+ window.server = window.devtools
229
.setContentDOMNode(document.getElementById("container"))
230
.setDisconnectedCallback(attachListeners)
231
.setStatusListener(function(status) {
packages/react-devtools/app.js
+4
-2
@@ -27,8 +27,10 @@ app.on('ready', function () {
27
frame: false,
28
//titleBarStyle: 'customButtonsOnHover',
29
webPreferences: {
30
- nodeIntegration: true,
31
- nodeIntegrationInWorker: true,
30
+ contextIsolation: true, // protect against prototype pollution
31
+ enableRemoteModule: false, // turn off remote
32
+ sandbox: false, // allow preload script to access file system
33
+ preload: join(__dirname, 'preload.js'), // use a preload script to expose node globals
34
},
35
});
36
packages/react-devtools/package.json
+1
-1
@@ -23,7 +23,7 @@
23
},
24
"dependencies": {
25
"cross-spawn": "^5.0.1",
26
- "electron": "^11.1.0",
26
+ "electron": "^23.1.2",
27
"ip": "^1.1.4",
28
"minimist": "^1.2.3",
29
"react-devtools-core": "4.27.2",
packages/react-devtools/preload.js
new
+41
@@ -0,0 +1,41 @@
1
+const {clipboard, shell, contextBridge} = require('electron');
2
+const fs = require('fs');
3
+const {address} = require('ip');
4
+
5
+// Expose protected methods so that render process does not need unsafe node integration
6
+contextBridge.exposeInMainWorld('api', {
7
+ electron: {clipboard, shell},
8
+ ip: {address},
9
+ getDevTools() {
10
+ let devtools;
11
+ try {
12
+ devtools = require('react-devtools-core/standalone').default;
13
+ } catch (err) {
14
+ alert(
15
+ err.toString() +
16
+ '\n\nDid you run `yarn` and `yarn run build` in packages/react-devtools-core?',
17
+ );
18
+ }
19
+ return devtools;
20
+ },
21
+ readEnv() {
22
+ let options;
23
+ let useHttps = false;
24
+ try {
25
+ if (process.env.KEY && process.env.CERT) {
26
+ options = {
27
+ key: fs.readFileSync(process.env.KEY),
28
+ cert: fs.readFileSync(process.env.CERT),
29
+ };
30
+ useHttps = true;
31
+ }
32
+ } catch (err) {
33
+ console.error('Failed to process SSL options - ', err);
34
+ options = undefined;
35
+ }
36
+ const host = process.env.HOST || 'localhost';
37
+ const protocol = useHttps ? 'https' : 'http';
38
+ const port = +process.env.PORT || 8097;
39
+ return {options, useHttps, host, protocol, port};
40
+ },
41
+});
yarn.lock
+26
-103
@@ -2005,21 +2005,20 @@
2005
"@cliqz-oss/firefox-client" "0.3.1"
2006
es6-promise "^2.0.1"
2007
2008
-"@electron/get@^1.0.1":
2009
- version "1.12.2"
2010
- resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3"
2011
- integrity sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==
2008
+"@electron/get@^2.0.0":
2009
+ version "2.0.2"
2010
+ resolved "https://registry.yarnpkg.com/@electron/get/-/get-2.0.2.tgz#ae2a967b22075e9c25aaf00d5941cd79c21efd7e"
2011
+ integrity sha512-eFZVFoRXb3GFGd7Ak7W4+6jBl9wBtiZ4AaYOse97ej6mKj5tkyO0dUnUChs1IhJZtx1BENo4/p4WUTXpi6vT+g==
2012
dependencies:
2013
debug "^4.1.1"
2014
env-paths "^2.2.0"
2015
fs-extra "^8.1.0"
2016
- got "^9.6.0"
2016
+ got "^11.8.5"
2017
progress "^2.0.3"
2018
- sanitize-filename "^1.6.2"
2018
+ semver "^6.2.0"
2019
sumchecker "^3.0.1"
2020
optionalDependencies:
2021
- global-agent "^2.0.2"
2022
- global-tunnel-ng "^2.7.1"
2021
+ global-agent "^3.0.0"
2022
2023
"@elg/speedscope@1.9.0-a6f84db":
2024
version "1.9.0-a6f84db"
@@ -2918,10 +2917,10 @@
2917
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.1.tgz#3b5c3a26393c19b400844ac422bd0f631a94d69d"
2918
integrity sha512-aK9jxMypeSrhiYofWWBf/T7O+KwaiAHzM4sveCdWPn71lzUSMimRnKzhXDKfKwV1kWoBo2P1aGgaIYGLf9/ljw==
2919
2921
-"@types/node@^12.0.12":
2922
- version "12.12.48"
2923
- resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.48.tgz#4135f064eeed9fcfb4756deea5ba2caa11603391"
2924
- integrity sha512-m3Nmo/YaDUfYzdCQlxjF5pIy7TNyDTAJhIa//xtHcF0dlgYIBKULKnmloCPtByDxtZXrWV8Pge1AKT6/lRvVWg==
2920
+"@types/node@^16.11.26":
2921
+ version "16.18.14"
2922
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.14.tgz#5465ce598486a703caddbefe8603f8a2cffa3461"
2923
+ integrity sha512-wvzClDGQXOCVNU4APPopC2KtMYukaF1MN/W3xAmslx22Z4/IF1/izDMekuyoUlwfnDHYCIZGaj7jMwnJKBTxKw==
2924
2925
"@types/prettier@^1.0.0 || ^2.0.0", "@types/prettier@^2.1.5":
2926
version "2.7.2"
@@ -5653,7 +5652,7 @@ concat-map@0.0.1:
5652
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
5653
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
5654
5656
-concat-stream@1.6.2, concat-stream@^1.4.7, concat-stream@^1.5.0:
5655
+concat-stream@^1.4.7, concat-stream@^1.5.0:
5656
version "1.6.2"
5657
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
5658
integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
@@ -5814,11 +5813,6 @@ core-js@^3.15.0:
5813
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.0.tgz#1d46fb33720bc1fa7f90d20431f36a5540858986"
5814
integrity sha512-5+5VxRFmSf97nM8Jr2wzOwLqRo6zphH2aX+7KsAUONObyzakDNq2G/bgbhinxB4PoV9L3aXQYhiDKyIKWd2c8g==
5815
5817
-core-js@^3.6.5:
5818
- version "3.6.5"
5819
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a"
5820
- integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==
5821
-
5816
core-js@^3.8.2:
5817
version "3.27.2"
5818
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.27.2.tgz#85b35453a424abdcacb97474797815f4d62ebbf7"
@@ -6796,14 +6790,14 @@ electron-to-chromium@^1.4.284:
6790
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592"
6791
integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==
6792
6799
-electron@^11.1.0:
6800
- version "11.1.1"
6801
- resolved "https://registry.yarnpkg.com/electron/-/electron-11.1.1.tgz#188f036f8282798398dca9513e9bb3b10213e3aa"
6802
- integrity sha512-tlbex3xosJgfileN6BAQRotevPRXB/wQIq48QeQ08tUJJrXwE72c8smsM/hbHx5eDgnbfJ2G3a60PmRjHU2NhA==
6793
+electron@^23.1.2:
6794
+ version "23.1.2"
6795
+ resolved "https://registry.yarnpkg.com/electron/-/electron-23.1.2.tgz#f03e361c94f8dd2407963b5461d19aadea335316"
6796
+ integrity sha512-ajE6xzIwH7swf8TlTU5WklDqpI3mPj4Am6690YrpCXzcp+E+dmMBXIajUUNt4joDrFhJC/lC6ZqDS2Q1BApKgQ==
6797
dependencies:
6804
- "@electron/get" "^1.0.1"
6805
- "@types/node" "^12.0.12"
6806
- extract-zip "^1.0.3"
6798
+ "@electron/get" "^2.0.0"
6799
+ "@types/node" "^16.11.26"
6800
+ extract-zip "^2.0.1"
6801
6802
elliptic@^6.0.0, elliptic@^6.5.2:
6803
version "6.5.2"
@@ -6843,7 +6837,7 @@ emojis-list@^3.0.0:
6837
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
6838
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
6839
6846
-encodeurl@^1.0.2, encodeurl@~1.0.2:
6840
+encodeurl@~1.0.2:
6841
version "1.0.2"
6842
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
6843
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
@@ -7705,16 +7699,6 @@ extract-banner@0.1.2:
7699
strip-bom-string "^0.1.2"
7700
strip-use-strict "^0.1.0"
7701
7708
-extract-zip@^1.0.3:
7709
- version "1.6.7"
7710
- resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9"
7711
- integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=
7712
- dependencies:
7713
- concat-stream "1.6.2"
7714
- debug "2.6.9"
7715
- mkdirp "0.5.1"
7716
- yauzl "2.4.1"
7717
-
7702
extract-zip@^2.0.1:
7703
version "2.0.1"
7704
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
@@ -7880,13 +7864,6 @@ fbjs@^1.0.0:
7864
setimmediate "^1.0.5"
7865
ua-parser-js "^0.7.18"
7866
7883
-fd-slicer@~1.0.1:
7884
- version "1.0.1"
7885
- resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
7886
- integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=
7887
- dependencies:
7888
- pend "~1.2.0"
7889
-
7867
fd-slicer@~1.1.0:
7868
version "1.1.0"
7869
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
@@ -8559,13 +8536,12 @@ glob@^6.0.1:
8536
once "^1.3.0"
8537
path-is-absolute "^1.0.0"
8538
8562
-global-agent@^2.0.2:
8563
- version "2.1.12"
8564
- resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.12.tgz#e4ae3812b731a9e81cbf825f9377ef450a8e4195"
8565
- integrity sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==
8539
+global-agent@^3.0.0:
8540
+ version "3.0.0"
8541
+ resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6"
8542
+ integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==
8543
dependencies:
8544
boolean "^3.0.1"
8568
- core-js "^3.6.5"
8545
es6-error "^4.1.1"
8546
matcher "^3.0.0"
8547
roarr "^2.15.3"
@@ -8622,16 +8598,6 @@ global-prefix@^3.0.0:
8598
kind-of "^6.0.2"
8599
which "^1.3.1"
8600
8625
-global-tunnel-ng@^2.7.1:
8626
- version "2.7.1"
8627
- resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f"
8628
- integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==
8629
- dependencies:
8630
- encodeurl "^1.0.2"
8631
- lodash "^4.17.10"
8632
- npm-conf "^1.1.3"
8633
- tunnel "^0.0.6"
8634
-
8601
globals@^11.1.0, globals@^11.7.0:
8602
version "11.12.0"
8603
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
@@ -8721,7 +8687,7 @@ google-closure-compiler@^20230206.0.0:
8687
google-closure-compiler-osx "^20230206.0.0"
8688
google-closure-compiler-windows "^20230206.0.0"
8689
8724
-got@^11.1.4:
8690
+got@^11.1.4, got@^11.8.5:
8691
version "11.8.6"
8692
resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a"
8693
integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==
@@ -11763,11 +11729,6 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
11729
dependencies:
11730
brace-expansion "^1.1.7"
11731
11766
-minimist@0.0.8:
11767
- version "0.0.8"
11768
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
11769
- integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
11770
-
11732
minimist@1.x, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5:
11733
version "1.2.5"
11734
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
@@ -11865,13 +11826,6 @@ mixin-deep@^1.2.0:
11826
for-in "^1.0.2"
11827
is-extendable "^1.0.1"
11828
11868
-mkdirp@0.5.1:
11869
- version "0.5.1"
11870
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
11871
- integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
11872
- dependencies:
11873
- minimist "0.0.8"
11874
-
11829
mkdirp@1.0.4:
11830
version "1.0.4"
11831
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
@@ -12256,7 +12210,7 @@ npm-bundled@^1.0.1, npm-bundled@^1.1.1:
12210
dependencies:
12211
npm-normalize-package-bin "^1.0.1"
12212
12259
-npm-conf@^1.1.0, npm-conf@^1.1.3:
12213
+npm-conf@^1.1.0:
12214
version "1.1.3"
12215
resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9"
12216
integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==
@@ -14541,13 +14495,6 @@ safe-regex@^1.1.0:
14495
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
14496
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
14497
14544
-sanitize-filename@^1.6.2:
14545
- version "1.6.3"
14546
- resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378"
14547
- integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==
14548
- dependencies:
14549
- truncate-utf8-bytes "^1.0.0"
14550
-
14498
sax@>=0.6.0, sax@~1.2.4:
14499
version "1.2.4"
14500
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@@ -16108,13 +16055,6 @@ trim-repeated@^1.0.0:
16055
dependencies:
16056
escape-string-regexp "^1.0.2"
16057
16111
-truncate-utf8-bytes@^1.0.0:
16112
- version "1.0.2"
16113
- resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b"
16114
- integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys=
16115
- dependencies:
16116
- utf8-byte-length "^1.0.1"
16117
-
16058
ts-node@8.9.1:
16059
version "8.9.1"
16060
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.9.1.tgz#2f857f46c47e91dcd28a14e052482eb14cfd65a5"
@@ -16172,11 +16112,6 @@ tunnel-agent@^0.6.0:
16112
dependencies:
16113
safe-buffer "^5.0.1"
16114
16175
-tunnel@^0.0.6:
16176
- version "0.0.6"
16177
- resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
16178
- integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
16179
-
16115
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
16116
version "0.14.5"
16117
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
@@ -16539,11 +16474,6 @@ userhome@^1.0.0:
16474
resolved "https://registry.yarnpkg.com/userhome/-/userhome-1.0.0.tgz#b6491ff12d21a5e72671df9ccc8717e1c6688c0b"
16475
integrity sha1-tkkf8S0hpecmcd+czIcX4cZojAs=
16476
16542
-utf8-byte-length@^1.0.1:
16543
- version "1.0.4"
16544
- resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61"
16545
- integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=
16546
-
16477
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
16478
version "1.0.2"
16479
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -17497,13 +17427,6 @@ yauzl@2.10.0, yauzl@^2.10.0, yauzl@^2.4.2:
17427
buffer-crc32 "~0.2.3"
17428
fd-slicer "~1.1.0"
17429
17500
-yauzl@2.4.1:
17501
- version "2.4.1"
17502
- resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
17503
- integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=
17504
- dependencies:
17505
- fd-slicer "~1.0.1"
17506
-
17430
yazl@^2.5.1:
17431
version "2.5.1"
17432
resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35"