@samitouri / QOS-React-1 / commits / 9aef5d225b

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"