Use modern rendering APIs for attribute-behavior fixture (#27883)
The attribute-behavior fixture now uses `createRoot().render()` and `renderToReadableStream` instead of depdrecated APIs. This revealed some changes to the snapshots that I annotated for discussion. I also added some new tests related to upcoming changes for easier future diffing. Also adds support for running the attribute-behavior fixture using Apple Silicon chips (Apple MBP M-series).
Sebastian Silbermann committed
Jan 26, 2024 at 19:03 UTC
9aef5d225b489ceeba753c5c86b236259baf816c
6 files changed
+180
-203
fixtures/attribute-behavior/.gitignore
+1
-1
@@ -10,7 +10,7 @@
10
/build
11
/public/react.development.js
12
/public/react-dom.development.js
13
-/public/react-dom-server-legacy.browser.development.js
13
+/public/react-dom-server.browser.development.js
14
15
# misc
16
.DS_Store
fixtures/attribute-behavior/AttributeTableSnapshot.md
+91
-41
@@ -294,7 +294,7 @@
294
| `action=(string 'on')`| (changed)| `"http://localhost:3000/on"` |
295
| `action=(string 'off')`| (changed)| `"http://localhost:3000/off"` |
296
| `action=(symbol)`| (initial, warning)| `"http://localhost:3000/"` |
297
-| `action=(function)`| (initial, warning)| `"http://localhost:3000/"` |
297
+| `action=(function)`| (changed, ssr error, ssr mismatch)| `"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')"` |
298
| `action=(null)`| (initial)| `"http://localhost:3000/"` |
299
| `action=(undefined)`| (initial)| `"http://localhost:3000/"` |
300
@@ -648,6 +648,31 @@
648
| `aria-=(null)`| (initial, warning)| `<null>` |
649
| `aria-=(undefined)`| (initial, warning)| `<null>` |
650
651
+## `aria-hidden` (on `<div>` inside `<div>`)
652
+| Test Case | Flags | Result |
653
+| --- | --- | --- |
654
+| `aria-hidden=(string)`| (changed)| `"a string"` |
655
+| `aria-hidden=(empty string)`| (changed)| `<empty string>` |
656
+| `aria-hidden=(array with string)`| (changed)| `"string"` |
657
+| `aria-hidden=(empty array)`| (changed)| `<empty string>` |
658
+| `aria-hidden=(object)`| (changed)| `"result of toString()"` |
659
+| `aria-hidden=(numeric string)`| (changed)| `"42"` |
660
+| `aria-hidden=(-1)`| (changed)| `"-1"` |
661
+| `aria-hidden=(0)`| (changed)| `"0"` |
662
+| `aria-hidden=(integer)`| (changed)| `"1"` |
663
+| `aria-hidden=(NaN)`| (changed)| `"NaN"` |
664
+| `aria-hidden=(float)`| (changed)| `"99.99"` |
665
+| `aria-hidden=(true)`| (changed)| `"true"` |
666
+| `aria-hidden=(false)`| (changed)| `"false"` |
667
+| `aria-hidden=(string 'true')`| (changed)| `"true"` |
668
+| `aria-hidden=(string 'false')`| (changed)| `"false"` |
669
+| `aria-hidden=(string 'on')`| (changed)| `"on"` |
670
+| `aria-hidden=(string 'off')`| (changed)| `"off"` |
671
+| `aria-hidden=(symbol)`| (initial)| `<null>` |
672
+| `aria-hidden=(function)`| (initial)| `<null>` |
673
+| `aria-hidden=(null)`| (initial)| `<null>` |
674
+| `aria-hidden=(undefined)`| (initial)| `<null>` |
675
+
676
## `aria-invalidattribute` (on `<div>` inside `<div>`)
677
| Test Case | Flags | Result |
678
| --- | --- | --- |
@@ -2568,8 +2593,8 @@
2593
| `defaultChecked=(string 'false')`| (changed)| `<boolean: true>` |
2594
| `defaultChecked=(string 'on')`| (changed)| `<boolean: true>` |
2595
| `defaultChecked=(string 'off')`| (changed)| `<boolean: true>` |
2571
-| `defaultChecked=(symbol)`| (changed, ssr mismatch)| `<boolean: true>` |
2572
-| `defaultChecked=(function)`| (changed, ssr mismatch)| `<boolean: true>` |
2596
+| `defaultChecked=(symbol)`| (initial)| `<boolean: false>` |
2597
+| `defaultChecked=(function)`| (initial)| `<boolean: false>` |
2598
| `defaultChecked=(null)`| (initial)| `<boolean: false>` |
2599
| `defaultChecked=(undefined)`| (initial)| `<boolean: false>` |
2600
@@ -4176,25 +4201,25 @@
4201
## `formAction` (on `<input>` inside `<div>`)
4202
| Test Case | Flags | Result |
4203
| --- | --- | --- |
4179
-| `formAction=(string)`| (changed)| `"https://reactjs.com/"` |
4180
-| `formAction=(empty string)`| (initial)| `"http://localhost:3000/"` |
4181
-| `formAction=(array with string)`| (changed)| `"https://reactjs.com/"` |
4182
-| `formAction=(empty array)`| (initial)| `"http://localhost:3000/"` |
4183
-| `formAction=(object)`| (changed)| `"http://localhost:3000/result%20of%20toString()"` |
4184
-| `formAction=(numeric string)`| (changed)| `"http://localhost:3000/42"` |
4185
-| `formAction=(-1)`| (changed)| `"http://localhost:3000/-1"` |
4186
-| `formAction=(0)`| (changed)| `"http://localhost:3000/0"` |
4187
-| `formAction=(integer)`| (changed)| `"http://localhost:3000/1"` |
4204
+| `formAction=(string)`| (changed, warning)| `"https://reactjs.com/"` |
4205
+| `formAction=(empty string)`| (initial, warning)| `"http://localhost:3000/"` |
4206
+| `formAction=(array with string)`| (changed, warning)| `"https://reactjs.com/"` |
4207
+| `formAction=(empty array)`| (initial, warning)| `"http://localhost:3000/"` |
4208
+| `formAction=(object)`| (changed, warning)| `"http://localhost:3000/result%20of%20toString()"` |
4209
+| `formAction=(numeric string)`| (changed, warning)| `"http://localhost:3000/42"` |
4210
+| `formAction=(-1)`| (changed, warning)| `"http://localhost:3000/-1"` |
4211
+| `formAction=(0)`| (changed, warning)| `"http://localhost:3000/0"` |
4212
+| `formAction=(integer)`| (changed, warning)| `"http://localhost:3000/1"` |
4213
| `formAction=(NaN)`| (changed, warning)| `"http://localhost:3000/NaN"` |
4189
-| `formAction=(float)`| (changed)| `"http://localhost:3000/99.99"` |
4214
+| `formAction=(float)`| (changed, warning)| `"http://localhost:3000/99.99"` |
4215
| `formAction=(true)`| (initial, warning)| `"http://localhost:3000/"` |
4216
| `formAction=(false)`| (initial, warning)| `"http://localhost:3000/"` |
4192
-| `formAction=(string 'true')`| (changed)| `"http://localhost:3000/true"` |
4193
-| `formAction=(string 'false')`| (changed)| `"http://localhost:3000/false"` |
4194
-| `formAction=(string 'on')`| (changed)| `"http://localhost:3000/on"` |
4195
-| `formAction=(string 'off')`| (changed)| `"http://localhost:3000/off"` |
4217
+| `formAction=(string 'true')`| (changed, warning)| `"http://localhost:3000/true"` |
4218
+| `formAction=(string 'false')`| (changed, warning)| `"http://localhost:3000/false"` |
4219
+| `formAction=(string 'on')`| (changed, warning)| `"http://localhost:3000/on"` |
4220
+| `formAction=(string 'off')`| (changed, warning)| `"http://localhost:3000/off"` |
4221
| `formAction=(symbol)`| (initial, warning)| `"http://localhost:3000/"` |
4197
-| `formAction=(function)`| (initial, warning)| `"http://localhost:3000/"` |
4222
+| `formAction=(function)`| (changed, warning, ssr error, ssr mismatch)| `"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')"` |
4223
| `formAction=(null)`| (initial)| `"http://localhost:3000/"` |
4224
| `formAction=(undefined)`| (initial)| `"http://localhost:3000/"` |
4225
@@ -5052,7 +5077,7 @@
5077
| Test Case | Flags | Result |
5078
| --- | --- | --- |
5079
| `href=(string)`| (changed)| `"https://reactjs.com/"` |
5055
-| `href=(empty string)`| (changed)| `"http://localhost:3000/"` |
5080
+| `href=(empty string)`| (initial, warning)| `<empty string>` |
5081
| `href=(array with string)`| (changed)| `"https://reactjs.com/"` |
5082
| `href=(empty array)`| (changed)| `"http://localhost:3000/"` |
5083
| `href=(object)`| (changed)| `"http://localhost:3000/result%20of%20toString()"` |
@@ -5398,6 +5423,31 @@
5423
| `in=(null)`| (initial)| `<null>` |
5424
| `in=(undefined)`| (initial)| `<null>` |
5425
5426
+## `inert` (on `<div>` inside `<div>`)
5427
+| Test Case | Flags | Result |
5428
+| --- | --- | --- |
5429
+| `inert=(string)`| (changed)| `<boolean: true>` |
5430
+| `inert=(empty string)`| (changed)| `<boolean: true>` |
5431
+| `inert=(array with string)`| (changed)| `<boolean: true>` |
5432
+| `inert=(empty array)`| (changed)| `<boolean: true>` |
5433
+| `inert=(object)`| (changed)| `<boolean: true>` |
5434
+| `inert=(numeric string)`| (changed)| `<boolean: true>` |
5435
+| `inert=(-1)`| (changed)| `<boolean: true>` |
5436
+| `inert=(0)`| (changed)| `<boolean: true>` |
5437
+| `inert=(integer)`| (changed)| `<boolean: true>` |
5438
+| `inert=(NaN)`| (changed, warning)| `<boolean: true>` |
5439
+| `inert=(float)`| (changed)| `<boolean: true>` |
5440
+| `inert=(true)`| (initial, warning)| `<boolean: false>` |
5441
+| `inert=(false)`| (initial, warning)| `<boolean: false>` |
5442
+| `inert=(string 'true')`| (changed)| `<boolean: true>` |
5443
+| `inert=(string 'false')`| (changed)| `<boolean: true>` |
5444
+| `inert=(string 'on')`| (changed)| `<boolean: true>` |
5445
+| `inert=(string 'off')`| (changed)| `<boolean: true>` |
5446
+| `inert=(symbol)`| (initial, warning)| `<boolean: false>` |
5447
+| `inert=(function)`| (initial, warning)| `<boolean: false>` |
5448
+| `inert=(null)`| (initial)| `<boolean: false>` |
5449
+| `inert=(undefined)`| (initial)| `<boolean: false>` |
5450
+
5451
## `in2` (on `<feBlend>` inside `<svg>`)
5452
| Test Case | Flags | Result |
5453
| --- | --- | --- |
@@ -5501,27 +5551,27 @@
5551
## `inputMode` (on `<input>` inside `<div>`)
5552
| Test Case | Flags | Result |
5553
| --- | --- | --- |
5504
-| `inputMode=(string)`| (changed)| `"a string"` |
5505
-| `inputMode=(empty string)`| (changed)| `<empty string>` |
5506
-| `inputMode=(array with string)`| (changed)| `"string"` |
5507
-| `inputMode=(empty array)`| (changed)| `<empty string>` |
5508
-| `inputMode=(object)`| (changed)| `"result of toString()"` |
5509
-| `inputMode=(numeric string)`| (changed)| `"42"` |
5510
-| `inputMode=(-1)`| (changed)| `"-1"` |
5511
-| `inputMode=(0)`| (changed)| `"0"` |
5512
-| `inputMode=(integer)`| (changed)| `"1"` |
5513
-| `inputMode=(NaN)`| (changed, warning)| `"NaN"` |
5514
-| `inputMode=(float)`| (changed)| `"99.99"` |
5515
-| `inputMode=(true)`| (initial, warning)| `<null>` |
5516
-| `inputMode=(false)`| (initial, warning)| `<null>` |
5517
-| `inputMode=(string 'true')`| (changed)| `"true"` |
5518
-| `inputMode=(string 'false')`| (changed)| `"false"` |
5519
-| `inputMode=(string 'on')`| (changed)| `"on"` |
5520
-| `inputMode=(string 'off')`| (changed)| `"off"` |
5521
-| `inputMode=(symbol)`| (initial, warning)| `<null>` |
5522
-| `inputMode=(function)`| (initial, warning)| `<null>` |
5523
-| `inputMode=(null)`| (initial)| `<null>` |
5524
-| `inputMode=(undefined)`| (initial)| `<null>` |
5554
+| `inputMode=(string)`| (initial)| `<empty string>` |
5555
+| `inputMode=(empty string)`| (initial)| `<empty string>` |
5556
+| `inputMode=(array with string)`| (initial)| `<empty string>` |
5557
+| `inputMode=(empty array)`| (initial)| `<empty string>` |
5558
+| `inputMode=(object)`| (initial)| `<empty string>` |
5559
+| `inputMode=(numeric string)`| (initial)| `<empty string>` |
5560
+| `inputMode=(-1)`| (initial)| `<empty string>` |
5561
+| `inputMode=(0)`| (initial)| `<empty string>` |
5562
+| `inputMode=(integer)`| (initial)| `<empty string>` |
5563
+| `inputMode=(NaN)`| (initial, warning)| `<empty string>` |
5564
+| `inputMode=(float)`| (initial)| `<empty string>` |
5565
+| `inputMode=(true)`| (initial, warning)| `<empty string>` |
5566
+| `inputMode=(false)`| (initial, warning)| `<empty string>` |
5567
+| `inputMode=(string 'true')`| (initial)| `<empty string>` |
5568
+| `inputMode=(string 'false')`| (initial)| `<empty string>` |
5569
+| `inputMode=(string 'on')`| (initial)| `<empty string>` |
5570
+| `inputMode=(string 'off')`| (initial)| `<empty string>` |
5571
+| `inputMode=(symbol)`| (initial, warning)| `<empty string>` |
5572
+| `inputMode=(function)`| (initial, warning)| `<empty string>` |
5573
+| `inputMode=(null)`| (initial)| `<empty string>` |
5574
+| `inputMode=(undefined)`| (initial)| `<empty string>` |
5575
5576
## `integrity` (on `<script>` inside `<div>`)
5577
| Test Case | Flags | Result |
@@ -9877,7 +9927,7 @@
9927
| Test Case | Flags | Result |
9928
| --- | --- | --- |
9929
| `src=(string)`| (changed)| `"https://reactjs.com/"` |
9880
-| `src=(empty string)`| (changed)| `"http://localhost:3000/"` |
9930
+| `src=(empty string)`| (initial, warning)| `<empty string>` |
9931
| `src=(array with string)`| (changed)| `"https://reactjs.com/"` |
9932
| `src=(empty array)`| (changed)| `"http://localhost:3000/"` |
9933
| `src=(object)`| (changed)| `"http://localhost:3000/result%20of%20toString()"` |
fixtures/attribute-behavior/package.json
+4
-1
@@ -10,9 +10,12 @@
10
"react-scripts": "1.0.11",
11
"react-virtualized": "^9.9.0"
12
},
13
+ "resolutions": {
14
+ "fsevents": "1.2.13"
15
+ },
16
"scripts": {
17
"predev":
15
- "cp ../../build/oss-experimental/react/umd/react.development.js public/ && cp ../../build/oss-experimental/react-dom/umd/react-dom.development.js public/ && cp ../../build/oss-experimental/react-dom/umd/react-dom-server-legacy.browser.development.js public/",
18
+ "cp ../../build/oss-experimental/react/umd/react.development.js public/ && cp ../../build/oss-experimental/react-dom/umd/react-dom.development.js public/ && cp ../../build/oss-experimental/react-dom/umd/react-dom-server.browser.development.js public/",
19
"dev": "react-scripts start",
20
"build": "react-scripts build",
21
"test": "react-scripts test --env=jsdom",
fixtures/attribute-behavior/src/App.js
+50
-18
@@ -213,13 +213,32 @@ function getCanonicalizedValue(value) {
213
214
let _didWarn = false;
215
function warn(str) {
216
- if (str.includes('ReactDOM.render is no longer supported')) {
217
- return;
218
- }
216
_didWarn = true;
217
}
218
+
219
+/**
220
+ * @param {import('react-dom/server')} serverRenderer
221
+ */
222
+async function renderToString(serverRenderer, element) {
223
+ let didError = false;
224
+ const stream = await serverRenderer.renderToReadableStream(element, {
225
+ onError(error) {
226
+ didError = true;
227
+ console.error(error);
228
+ },
229
+ });
230
+ await stream.allReady;
231
+
232
+ if (didError) {
233
+ throw new Error('The above error occurred while rendering to string.');
234
+ }
235
+
236
+ const response = new Response(stream);
237
+ return response.text();
238
+}
239
+
240
const UNKNOWN_HTML_TAGS = new Set(['keygen', 'time', 'command']);
222
-function getRenderedAttributeValue(
241
+async function getRenderedAttributeValue(
242
react,
243
renderer,
244
serverRenderer,
@@ -283,12 +302,21 @@ function getRenderedAttributeValue(
302
_didWarn = false;
303
try {
304
let container = createContainer();
286
- renderer.render(react.createElement(tagName, baseProps), container);
305
+ renderer.flushSync(() => {
306
+ renderer
307
+ .createRoot(container)
308
+ .render(react.createElement(tagName, baseProps));
309
+ });
310
defaultValue = read(container.lastChild);
311
canonicalDefaultValue = getCanonicalizedValue(defaultValue);
312
313
container = createContainer();
291
- renderer.render(react.createElement(tagName, props), container);
314
+
315
+ renderer.flushSync(() => {
316
+ renderer
317
+ .createRoot(container)
318
+ .render(react.createElement(tagName, props));
319
+ });
320
result = read(container.lastChild);
321
canonicalResult = getCanonicalizedValue(result);
322
didWarn = _didWarn;
@@ -305,19 +333,22 @@ function getRenderedAttributeValue(
333
try {
334
let container;
335
if (containerTagName === 'document') {
308
- const html = serverRenderer.renderToString(
336
+ const html = await renderToString(
337
+ serverRenderer,
338
react.createElement(tagName, props)
339
);
340
container = createContainer();
341
container.innerHTML = html;
342
} else if (containerTagName === 'head') {
314
- const html = serverRenderer.renderToString(
343
+ const html = await renderToString(
344
+ serverRenderer,
345
react.createElement(tagName, props)
346
);
347
container = createContainer();
348
container.innerHTML = html;
349
} else {
320
- const html = serverRenderer.renderToString(
350
+ const html = await renderToString(
351
+ serverRenderer,
352
react.createElement(
353
containerTagName,
354
null,
@@ -326,7 +357,8 @@ function getRenderedAttributeValue(
357
);
358
const outerContainer = document.createElement('div');
359
outerContainer.innerHTML = html;
329
- container = outerContainer.firstChild;
360
+ // Float may prepend `<link />`
361
+ container = outerContainer.lastChild;
362
}
363
364
if (
@@ -396,8 +428,8 @@ function getRenderedAttributeValue(
428
};
429
}
430
399
-function prepareState(initGlobals) {
400
- function getRenderedAttributeValues(attribute, type) {
431
+async function prepareState(initGlobals) {
432
+ async function getRenderedAttributeValues(attribute, type) {
433
const {
434
ReactStable,
435
ReactDOMStable,
@@ -406,14 +438,14 @@ function prepareState(initGlobals) {
438
ReactDOMNext,
439
ReactDOMServerNext,
440
} = initGlobals(attribute, type);
409
- const reactStableValue = getRenderedAttributeValue(
441
+ const reactStableValue = await getRenderedAttributeValue(
442
ReactStable,
443
ReactDOMStable,
444
ReactDOMServerStable,
445
attribute,
446
type
447
);
416
- const reactNextValue = getRenderedAttributeValue(
448
+ const reactNextValue = await getRenderedAttributeValue(
449
ReactNext,
450
ReactDOMNext,
451
ReactDOMServerNext,
@@ -451,7 +483,7 @@ function prepareState(initGlobals) {
483
let hasSameBehaviorForAll = true;
484
let rowPatternHash = '';
485
for (let type of types) {
454
- const result = getRenderedAttributeValues(attribute, type);
486
+ const result = await getRenderedAttributeValues(attribute, type);
487
results.set(type.name, result);
488
if (!result.hasSameBehavior) {
489
hasSameBehaviorForAll = false;
@@ -772,10 +804,10 @@ class App extends React.Component {
804
ReactDOMStable:
805
'https://unpkg.com/react-dom@latest/umd/react-dom.development.js',
806
ReactDOMServerStable:
775
- 'https://unpkg.com/react-dom@latest/umd/react-dom-server-legacy.browser.development.js',
807
+ 'https://unpkg.com/react-dom@latest/umd/react-dom-server.browser.development.js',
808
ReactNext: '/react.development.js',
809
ReactDOMNext: '/react-dom.development.js',
778
- ReactDOMServerNext: '/react-dom-server-legacy.browser.development.js',
810
+ ReactDOMServerNext: '/react-dom-server.browser.development.js',
811
};
812
const codePromises = Object.values(sources).map(src =>
813
fetch(src).then(res => res.text())
@@ -820,7 +852,7 @@ class App extends React.Component {
852
return globals;
853
}
854
823
- const {table, rowPatternHashes} = prepareState(initGlobals);
855
+ const {table, rowPatternHashes} = await prepareState(initGlobals);
856
document.title = 'Ready';
857
858
this.setState({
fixtures/attribute-behavior/src/attributes.js
+4
-2
@@ -119,6 +119,7 @@ const attributes = [
119
},
120
{name: 'aria', read: getAttribute('aria')},
121
{name: 'aria-', read: getAttribute('aria-')},
122
+ {name: 'aria-hidden', read: getProperty('ariaHidden')},
123
{name: 'aria-invalidattribute', read: getAttribute('aria-invalidattribute')},
124
{name: 'as', tagName: 'link'},
125
{
@@ -905,7 +906,7 @@ const attributes = [
906
read: getSVGProperty('height'),
907
overrideStringValue: '100%',
908
},
908
- {name: 'hidden'},
909
+ {name: 'hidden', overrideStringValue: 'until-found'},
910
{name: 'high', tagName: 'meter'},
911
{
912
name: 'horiz-adv-x',
@@ -968,6 +969,7 @@ const attributes = [
969
containerTagName: 'svg',
970
tagName: 'feBlend',
971
},
972
+ {name: 'inert'},
973
{
974
name: 'in2',
975
read: getSVGProperty('in2'),
@@ -977,7 +979,7 @@ const attributes = [
979
{name: 'initialChecked', read: getAttribute('initialchecked')},
980
{name: 'initialValue', read: getAttribute('initialvalue')},
981
{name: 'inlist', read: getAttribute('inlist')},
980
- {name: 'inputMode', tagName: 'input', read: getAttribute('inputmode')}, // TODO: Should use property but it's not implemented in Chrome
982
+ {name: 'inputMode', tagName: 'input'},
983
{name: 'integrity', tagName: 'script'},
984
{
985
name: 'intercept',
fixtures/attribute-behavior/yarn.lock
+30
-140
@@ -6,10 +6,6 @@ abab@^1.0.3:
6
version "1.0.3"
7
resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d"
8
9
-abbrev@1:
10
- version "1.1.0"
11
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
12
-
9
accepts@~1.3.3:
10
version "1.3.4"
11
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f"
@@ -144,17 +140,6 @@ append-transform@^0.4.0:
140
dependencies:
141
default-require-extensions "^1.0.0"
142
147
-aproba@^1.0.3:
148
- version "1.1.2"
149
- resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1"
150
-
151
-are-we-there-yet@~1.1.2:
152
- version "1.1.4"
153
- resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
154
- dependencies:
155
- delegates "^1.0.0"
156
- readable-stream "^2.0.6"
157
-
143
argparse@^1.0.7:
144
version "1.0.9"
145
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
@@ -1036,11 +1021,12 @@ binary-extensions@^1.0.0:
1021
version "1.10.0"
1022
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0"
1023
1039
-block-stream@*:
1040
- version "0.0.9"
1041
- resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
1024
+bindings@^1.5.0:
1025
+ version "1.5.0"
1026
+ resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
1027
+ integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
1028
dependencies:
1043
- inherits "~2.0.0"
1029
+ file-uri-to-path "1.0.0"
1030
1031
bluebird@^3.4.7:
1032
version "3.5.0"
@@ -1536,10 +1522,6 @@ console-browserify@^1.1.0:
1522
dependencies:
1523
date-now "^0.1.4"
1524
1539
-console-control-strings@^1.0.0, console-control-strings@~1.1.0:
1540
- version "1.1.0"
1541
- resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
1542
-
1525
constants-browserify@^1.0.0:
1526
version "1.0.0"
1527
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
@@ -1887,10 +1869,6 @@ delayed-stream@~1.0.0:
1869
version "1.0.0"
1870
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
1871
1890
-delegates@^1.0.0:
1891
- version "1.0.0"
1892
- resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
1893
-
1872
depd@1.1.1, depd@~1.1.1:
1873
version "1.1.1"
1874
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
@@ -2583,6 +2561,11 @@ file-saver@^1.3.3:
2561
version "1.3.3"
2562
resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-1.3.3.tgz#cdd4c44d3aa264eac2f68ec165bc791c34af1232"
2563
2564
+file-uri-to-path@1.0.0:
2565
+ version "1.0.0"
2566
+ resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
2567
+ integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
2568
+
2569
filename-regex@^2.0.0:
2570
version "2.0.1"
2571
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
@@ -2722,29 +2705,13 @@ fs.realpath@^1.0.0:
2705
version "1.0.0"
2706
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
2707
2725
-fsevents@1.1.2, fsevents@^1.0.0:
2726
- version "1.1.2"
2727
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4"
2708
+fsevents@1.1.2, fsevents@1.2.13, fsevents@^1.0.0:
2709
+ version "1.2.13"
2710
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
2711
+ integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
2712
dependencies:
2729
- nan "^2.3.0"
2730
- node-pre-gyp "^0.6.36"
2731
-
2732
-fstream-ignore@^1.0.5:
2733
- version "1.0.5"
2734
- resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
2735
- dependencies:
2736
- fstream "^1.0.0"
2737
- inherits "2"
2738
- minimatch "^3.0.0"
2739
-
2740
-fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
2741
- version "1.0.11"
2742
- resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
2743
- dependencies:
2744
- graceful-fs "^4.1.2"
2745
- inherits "~2.0.0"
2746
- mkdirp ">=0.5 0"
2747
- rimraf "2"
2713
+ bindings "^1.5.0"
2714
+ nan "^2.12.1"
2715
2716
function-bind@^1.0.2, function-bind@^1.1.0:
2717
version "1.1.0"
@@ -2754,19 +2721,6 @@ functional-red-black-tree@^1.0.1:
2721
version "1.0.1"
2722
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
2723
2757
-gauge@~2.7.3:
2758
- version "2.7.4"
2759
- resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
2760
- dependencies:
2761
- aproba "^1.0.3"
2762
- console-control-strings "^1.0.0"
2763
- has-unicode "^2.0.0"
2764
- object-assign "^4.1.0"
2765
- signal-exit "^3.0.0"
2766
- string-width "^1.0.1"
2767
- strip-ansi "^3.0.1"
2768
- wide-align "^1.1.0"
2769
-
2724
get-caller-file@^1.0.1:
2725
version "1.0.2"
2726
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
@@ -2935,10 +2889,6 @@ has-flag@^2.0.0:
2889
version "2.0.0"
2890
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
2891
2938
-has-unicode@^2.0.0:
2939
- version "2.0.1"
2940
- resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
2941
-
2892
has@^1.0.1:
2893
version "1.0.1"
2894
resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
@@ -3159,7 +3109,7 @@ inflight@^1.0.4:
3109
once "^1.3.0"
3110
wrappy "1"
3111
3162
-inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
3112
+inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
3113
version "2.0.3"
3114
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
3115
@@ -4190,7 +4140,7 @@ minimatch@3.0.3:
4140
dependencies:
4141
brace-expansion "^1.0.0"
4142
4193
-minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
4143
+minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
4144
version "3.0.4"
4145
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
4146
dependencies:
@@ -4208,7 +4158,7 @@ minimist@~0.0.1:
4158
version "0.0.10"
4159
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
4160
4211
-mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
4161
+mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
4162
version "0.5.1"
4163
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
4164
dependencies:
@@ -4233,9 +4183,10 @@ mute-stream@0.0.7:
4183
version "0.0.7"
4184
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
4185
4236
-nan@^2.3.0:
4237
- version "2.6.2"
4238
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
4186
+nan@^2.12.1:
4187
+ version "2.18.0"
4188
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554"
4189
+ integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==
4190
4191
natural-compare@^1.4.0:
4192
version "1.4.0"
@@ -4313,31 +4264,10 @@ node-notifier@^5.0.2:
4264
shellwords "^0.1.0"
4265
which "^1.2.12"
4266
4316
-node-pre-gyp@^0.6.36:
4317
- version "0.6.36"
4318
- resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786"
4319
- dependencies:
4320
- mkdirp "^0.5.1"
4321
- nopt "^4.0.1"
4322
- npmlog "^4.0.2"
4323
- rc "^1.1.7"
4324
- request "^2.81.0"
4325
- rimraf "^2.6.1"
4326
- semver "^5.3.0"
4327
- tar "^2.2.1"
4328
- tar-pack "^3.4.0"
4329
-
4267
node-status-codes@^1.0.0:
4268
version "1.0.0"
4269
resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f"
4270
4334
-nopt@^4.0.1:
4335
- version "4.0.1"
4336
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
4337
- dependencies:
4338
- abbrev "1"
4339
- osenv "^0.1.4"
4340
-
4271
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
4272
version "2.4.0"
4273
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
@@ -4372,15 +4302,6 @@ npm-run-path@^2.0.0:
4302
dependencies:
4303
path-key "^2.0.0"
4304
4375
-npmlog@^4.0.2:
4376
- version "4.1.2"
4377
- resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
4378
- dependencies:
4379
- are-we-there-yet "~1.1.2"
4380
- console-control-strings "~1.1.0"
4381
- gauge "~2.7.3"
4382
- set-blocking "~2.0.0"
4383
-
4305
nth-check@~1.0.1:
4306
version "1.0.1"
4307
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4"
@@ -4436,7 +4357,7 @@ on-headers@~1.0.1:
4357
version "1.0.1"
4358
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
4359
4439
-once@^1.3.0, once@^1.3.3, once@^1.4.0:
4360
+once@^1.3.0, once@^1.4.0:
4361
version "1.4.0"
4362
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
4363
dependencies:
@@ -4511,7 +4432,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1:
4432
version "1.0.2"
4433
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
4434
4514
-osenv@^0.1.0, osenv@^0.1.4:
4435
+osenv@^0.1.0:
4436
version "0.1.4"
4437
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
4438
dependencies:
@@ -5146,7 +5067,7 @@ range-parser@^1.0.3, range-parser@~1.2.0:
5067
version "1.2.0"
5068
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
5069
5149
-rc@^1.0.1, rc@^1.1.6, rc@^1.1.7:
5070
+rc@^1.0.1, rc@^1.1.6:
5071
version "1.2.1"
5072
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
5073
dependencies:
@@ -5308,7 +5229,7 @@ readable-stream@1.0:
5229
isarray "0.0.1"
5230
string_decoder "~0.10.x"
5231
5311
-readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9:
5232
+readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9:
5233
version "2.3.3"
5234
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
5235
dependencies:
@@ -5470,7 +5391,7 @@ repeating@^2.0.0:
5391
dependencies:
5392
is-finite "^1.0.0"
5393
5473
-request@^2.79.0, request@^2.81.0:
5394
+request@^2.79.0:
5395
version "2.81.0"
5396
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
5397
dependencies:
@@ -5554,7 +5475,7 @@ right-align@^0.1.1:
5475
dependencies:
5476
align-text "^0.1.1"
5477
5557
-rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1:
5478
+rimraf@^2.2.8, rimraf@^2.6.1:
5479
version "2.6.1"
5480
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
5481
dependencies:
@@ -5680,7 +5601,7 @@ serviceworker-cache-polyfill@^4.0.0:
5601
version "4.0.0"
5602
resolved "https://registry.yarnpkg.com/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz#de19ee73bef21ab3c0740a37b33db62464babdeb"
5603
5683
-set-blocking@^2.0.0, set-blocking@~2.0.0:
5604
+set-blocking@^2.0.0:
5605
version "2.0.0"
5606
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
5607
@@ -6048,27 +5969,6 @@ tapable@^0.2.7:
5969
version "0.2.8"
5970
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22"
5971
6051
-tar-pack@^3.4.0:
6052
- version "3.4.0"
6053
- resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984"
6054
- dependencies:
6055
- debug "^2.2.0"
6056
- fstream "^1.0.10"
6057
- fstream-ignore "^1.0.5"
6058
- once "^1.3.3"
6059
- readable-stream "^2.1.4"
6060
- rimraf "^2.5.1"
6061
- tar "^2.2.1"
6062
- uid-number "^0.0.6"
6063
-
6064
-tar@^2.2.1:
6065
- version "2.2.1"
6066
- resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
6067
- dependencies:
6068
- block-stream "*"
6069
- fstream "^1.0.2"
6070
- inherits "2"
6071
-
5972
test-exclude@^4.1.1:
5973
version "4.1.1"
5974
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26"
@@ -6223,10 +6123,6 @@ uglifyjs-webpack-plugin@^0.4.6:
6123
uglify-js "^2.8.29"
6124
webpack-sources "^1.0.1"
6125
6226
-uid-number@^0.0.6:
6227
- version "0.0.6"
6228
- resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
6229
-
6126
uniq@^1.0.1:
6127
version "1.0.1"
6128
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
@@ -6523,12 +6419,6 @@ which@^1.2.12, which@^1.2.14, which@^1.2.9:
6419
dependencies:
6420
isexe "^2.0.0"
6421
6526
-wide-align@^1.1.0:
6527
- version "1.1.2"
6528
- resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
6529
- dependencies:
6530
- string-width "^1.0.2"
6531
-
6422
widest-line@^1.0.0:
6423
version "1.0.0"
6424
resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c"