@samitouri / QOS-React / commits / e96dc14059

Use browser event names for top-level event types in React DOM (#12629)

* Add TopLevelEventTypes * Fix `ReactBrowserEventEmitter` * Fix EventPluginUtils * Fix TapEventPlugin * Fix ResponderEventPlugin * Update ReactDOMFiberComponent * Fix BeforeInputEventPlugin * Fix ChangeEventPlugin * Fix EnterLeaveEventPlugin * Add missing non top event type used in ChangeEventPlugin * Fix SelectEventPlugin * Fix SimpleEventPlugin * Fix outstanding Flow issues and move TopLevelEventTypes * Inline a list of all events in `ReactTestUtils` * Fix tests * Make it pretty * Fix completly unrelated typo * Don’t use map constructor because of IE11 * Update typings, revert changes to native code * Make topLevelTypes in ResponderEventPlugin injectable and create DOM and ReactNative variant * Set proper dependencies for DOMResponderEventPlugin * Prettify * Make some react dom tests no longer depend on internal API * Use factories to create top level speific generic event modules * Remove unused dependency * Revert exposed module renaming, hide store creation, and inline dependency decleration * Add Flow types to createResponderEventPlugin and its consumers * Remove unused dependency * Use opaque flow type for TopLevelType * Add missing semis * Use raw event names as top level identifer * Upgrade baylon This is required for parsing opaque flow types in our CI tests. * Clean up flow types * Revert Map changes of ReactBrowserEventEmitter * Upgrade babel-* packages Apparently local unit tests also have issues with parsing JavaScript modules that contain opaque types (not sure why I didn't notice earlier!?). * Revert Map changes of SimpleEventPlugin * Clean up ReactTestUtils * Add missing semi * Fix Flow issue * Make TopLevelType clearer * Favor for loops * Explain the new DOMTopLevelEventTypes concept * Use static injection for Responder plugin types * Remove null check and rely on flow checks * Add missing ResponderEventPlugin dependencies

Philipp Spieß committed May 15, 2018 at 11:38 UTC e96dc140599363029bd05565d58bcd4a432db370
32 files changed +1965 -996
fixtures/dom/src/components/fixtures/password-inputs/index.js
+1 -1
@@ -15,7 +15,7 @@ function NumberInputs() {
15 `}
16 affectedBrowsers="IE Edge, IE 11">
17 <TestCase.Steps>
18 - <li>Type any string (not an actual password</li>
18 + <li>Type any string (not an actual password)</li>
19 </TestCase.Steps>
20
21 <TestCase.ExpectedResult>
package.json
+1 -1
@@ -36,7 +36,7 @@
36 "babel-plugin-transform-regenerator": "^6.26.0",
37 "babel-preset-react": "^6.5.0",
38 "babel-traverse": "^6.9.0",
39 - "babylon": "6.15.0",
39 + "babylon": "6.18.0",
40 "bundle-collapser": "^1.1.1",
41 "chalk": "^1.1.3",
42 "cli-table": "^0.3.1",
packages/events/EventPluginHub.js
+3 -2
@@ -25,6 +25,7 @@ import type {PluginModule} from './PluginModuleType';
25 import type {ReactSyntheticEvent} from './ReactSyntheticEventType';
26 import type {Fiber} from 'react-reconciler/src/ReactFiber';
27 import type {AnyNativeEvent} from './PluginModuleType';
28 +import type {TopLevelType} from './TopLevelEventTypes';
29
30 /**
31 * Internal queue of events that have accumulated their dispatches and are
@@ -165,7 +166,7 @@ export function getListener(inst: Fiber, registrationName: string) {
166 * @internal
167 */
168 function extractEvents(
168 - topLevelType: string,
169 + topLevelType: TopLevelType,
170 targetInst: Fiber,
171 nativeEvent: AnyNativeEvent,
172 nativeEventTarget: EventTarget,
@@ -227,7 +228,7 @@ export function runEventsInBatch(
228 }
229
230 export function runExtractedEventsInBatch(
230 - topLevelType: string,
231 + topLevelType: TopLevelType,
232 targetInst: Fiber,
233 nativeEvent: AnyNativeEvent,
234 nativeEventTarget: EventTarget,
packages/events/EventPluginUtils.js
-15
@@ -30,21 +30,6 @@ export const injection = {
30 },
31 };
32
33 -export function isEndish(topLevelType) {
34 - return (
35 - topLevelType === 'topMouseUp' ||
36 - topLevelType === 'topTouchEnd' ||
37 - topLevelType === 'topTouchCancel'
38 - );
39 -}
40 -
41 -export function isMoveish(topLevelType) {
42 - return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove';
43 -}
44 -export function isStartish(topLevelType) {
45 - return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart';
46 -}
47 -
33 let validateEventDispatches;
34 if (__DEV__) {
35 validateEventDispatches = function(event) {
packages/events/PluginModuleType.js
+2 -1
@@ -12,6 +12,7 @@ import type {
12 DispatchConfig,
13 ReactSyntheticEvent,
14 } from './ReactSyntheticEventType';
15 +import type {TopLevelType} from './TopLevelEventTypes';
16
17 export type EventTypes = {[key: string]: DispatchConfig};
18
@@ -22,7 +23,7 @@ export type PluginName = string;
23 export type PluginModule<NativeEvent> = {
24 eventTypes: EventTypes,
25 extractEvents: (
25 - topLevelType: string,
26 + topLevelType: TopLevelType,
27 targetInst: Fiber,
28 nativeTarget: NativeEvent,
29 nativeEventTarget: EventTarget,
packages/events/ReactSyntheticEventType.js
+2 -1
@@ -9,9 +9,10 @@
9 */
10
11 import type {Fiber} from 'react-reconciler/src/ReactFiber';
12 +import type {TopLevelType} from './TopLevelEventTypes';
13
14 export type DispatchConfig = {
14 - dependencies: Array<string>,
15 + dependencies: Array<TopLevelType>,
16 phasedRegistrationNames?: {
17 bubbled: string,
18 captured: string,
packages/events/ResponderEventPlugin.js
+49 -41
@@ -8,9 +8,6 @@
8 import {getLowestCommonAncestor, isAncestor} from 'shared/ReactTreeTraversal';
9
10 import {
11 - isStartish,
12 - isMoveish,
13 - isEndish,
11 executeDirectDispatch,
12 hasDispatches,
13 executeDispatchesInOrderStopAtTrue,
@@ -24,6 +21,17 @@ import {
21 import ResponderSyntheticEvent from './ResponderSyntheticEvent';
22 import ResponderTouchHistoryStore from './ResponderTouchHistoryStore';
23 import accumulate from './accumulate';
24 +import {
25 + TOP_SCROLL,
26 + TOP_SELECTION_CHANGE,
27 + TOP_TOUCH_CANCEL,
28 + isStartish,
29 + isMoveish,
30 + isEndish,
31 + startDependencies,
32 + moveDependencies,
33 + endDependencies,
34 +} from './ResponderTopLevelEventTypes';
35
36 /**
37 * Instance of element that should respond to touch/move types of interactions,
@@ -37,11 +45,6 @@ let responderInst = null;
45 */
46 let trackedTouchCount = 0;
47
40 -/**
41 - * Last reported number of active touches.
42 - */
43 -let previousActiveTouches = 0;
44 -
48 const changeResponder = function(nextResponderInst, blockHostResponder) {
49 const oldResponderInst = responderInst;
50 responderInst = nextResponderInst;
@@ -64,6 +67,7 @@ const eventTypes = {
67 bubbled: 'onStartShouldSetResponder',
68 captured: 'onStartShouldSetResponderCapture',
69 },
70 + dependencies: startDependencies,
71 },
72
73 /**
@@ -80,6 +84,7 @@ const eventTypes = {
84 bubbled: 'onScrollShouldSetResponder',
85 captured: 'onScrollShouldSetResponderCapture',
86 },
87 + dependencies: [TOP_SCROLL],
88 },
89
90 /**
@@ -94,6 +99,7 @@ const eventTypes = {
99 bubbled: 'onSelectionChangeShouldSetResponder',
100 captured: 'onSelectionChangeShouldSetResponderCapture',
101 },
102 + dependencies: [TOP_SELECTION_CHANGE],
103 },
104
105 /**
@@ -105,21 +111,44 @@ const eventTypes = {
111 bubbled: 'onMoveShouldSetResponder',
112 captured: 'onMoveShouldSetResponderCapture',
113 },
114 + dependencies: moveDependencies,
115 },
116
117 /**
118 * Direct responder events dispatched directly to responder. Do not bubble.
119 */
113 - responderStart: {registrationName: 'onResponderStart'},
114 - responderMove: {registrationName: 'onResponderMove'},
115 - responderEnd: {registrationName: 'onResponderEnd'},
116 - responderRelease: {registrationName: 'onResponderRelease'},
120 + responderStart: {
121 + registrationName: 'onResponderStart',
122 + dependencies: startDependencies,
123 + },
124 + responderMove: {
125 + registrationName: 'onResponderMove',
126 + dependencies: moveDependencies,
127 + },
128 + responderEnd: {
129 + registrationName: 'onResponderEnd',
130 + dependencies: endDependencies,
131 + },
132 + responderRelease: {
133 + registrationName: 'onResponderRelease',
134 + dependencies: endDependencies,
135 + },
136 responderTerminationRequest: {
137 registrationName: 'onResponderTerminationRequest',
138 + dependencies: [],
139 + },
140 + responderGrant: {
141 + registrationName: 'onResponderGrant',
142 + dependencies: [],
143 + },
144 + responderReject: {
145 + registrationName: 'onResponderReject',
146 + dependencies: [],
147 + },
148 + responderTerminate: {
149 + registrationName: 'onResponderTerminate',
150 + dependencies: [],
151 },
120 - responderGrant: {registrationName: 'onResponderGrant'},
121 - responderReject: {registrationName: 'onResponderReject'},
122 - responderTerminate: {registrationName: 'onResponderTerminate'},
152 };
153
154 /**
@@ -322,7 +351,7 @@ function setResponderAndExtractTransfer(
351 ? eventTypes.startShouldSetResponder
352 : isMoveish(topLevelType)
353 ? eventTypes.moveShouldSetResponder
325 - : topLevelType === 'topSelectionChange'
354 + : topLevelType === TOP_SELECTION_CHANGE
355 ? eventTypes.selectionChangeShouldSetResponder
356 : eventTypes.scrollShouldSetResponder;
357
@@ -427,8 +456,8 @@ function canTriggerTransfer(topLevelType, topLevelInst, nativeEvent) {
456 // responderIgnoreScroll: We are trying to migrate away from specifically
457 // tracking native scroll events here and responderIgnoreScroll indicates we
458 // will send topTouchCancel to handle canceling touch events instead
430 - ((topLevelType === 'topScroll' && !nativeEvent.responderIgnoreScroll) ||
431 - (trackedTouchCount > 0 && topLevelType === 'topSelectionChange') ||
459 + ((topLevelType === TOP_SCROLL && !nativeEvent.responderIgnoreScroll) ||
460 + (trackedTouchCount > 0 && topLevelType === TOP_SELECTION_CHANGE) ||
461 isStartish(topLevelType) ||
462 isMoveish(topLevelType))
463 );
@@ -534,7 +563,7 @@ const ResponderEventPlugin = {
563 }
564
565 const isResponderTerminate =
537 - responderInst && topLevelType === 'topTouchCancel';
566 + responderInst && topLevelType === TOP_TOUCH_CANCEL;
567 const isResponderRelease =
568 responderInst &&
569 !isResponderTerminate &&
@@ -556,23 +585,10 @@ const ResponderEventPlugin = {
585 changeResponder(null);
586 }
587
559 - const numberActiveTouches =
560 - ResponderTouchHistoryStore.touchHistory.numberActiveTouches;
561 - if (
562 - ResponderEventPlugin.GlobalInteractionHandler &&
563 - numberActiveTouches !== previousActiveTouches
564 - ) {
565 - ResponderEventPlugin.GlobalInteractionHandler.onChange(
566 - numberActiveTouches,
567 - );
568 - }
569 - previousActiveTouches = numberActiveTouches;
570 -
588 return extracted;
589 },
590
591 GlobalResponderHandler: null,
575 - GlobalInteractionHandler: null,
592
593 injection: {
594 /**
@@ -580,17 +596,9 @@ const ResponderEventPlugin = {
596 * Object that handles any change in responder. Use this to inject
597 * integration with an existing touch handling system etc.
598 */
583 - injectGlobalResponderHandler: function(GlobalResponderHandler) {
599 + injectGlobalResponderHandler(GlobalResponderHandler) {
600 ResponderEventPlugin.GlobalResponderHandler = GlobalResponderHandler;
601 },
586 -
587 - /**
588 - * @param {{onChange: (numberActiveTouches) => void} GlobalInteractionHandler
589 - * Object that handles any change in the number of active touches.
590 - */
591 - injectGlobalInteractionHandler: function(GlobalInteractionHandler) {
592 - ResponderEventPlugin.GlobalInteractionHandler = GlobalInteractionHandler;
593 - },
602 },
603 };
604
packages/events/ResponderTopLevelEventTypes.js new
+31
@@ -0,0 +1,31 @@
1 +/**
2 + * Copyright (c) 2013-present, Facebook, Inc.
3 + *
4 + * This source code is licensed under the MIT license found in the
5 + * LICENSE file in the root directory of this source tree.
6 + *
7 + * @flow
8 + */
9 +
10 +export const TOP_TOUCH_START = 'topTouchStart';
11 +export const TOP_TOUCH_MOVE = 'topTouchMove';
12 +export const TOP_TOUCH_END = 'topTouchEnd';
13 +export const TOP_TOUCH_CANCEL = 'topTouchCancel';
14 +export const TOP_SCROLL = 'topScroll';
15 +export const TOP_SELECTION_CHANGE = 'topSelectionChange';
16 +
17 +export function isStartish(topLevelType: mixed): boolean {
18 + return topLevelType === TOP_TOUCH_START;
19 +}
20 +
21 +export function isMoveish(topLevelType: mixed): boolean {
22 + return topLevelType === TOP_TOUCH_MOVE;
23 +}
24 +
25 +export function isEndish(topLevelType: mixed): boolean {
26 + return topLevelType === TOP_TOUCH_END || topLevelType === TOP_TOUCH_CANCEL;
27 +}
28 +
29 +export const startDependencies = [TOP_TOUCH_START];
30 +export const moveDependencies = [TOP_TOUCH_MOVE];
31 +export const endDependencies = [TOP_TOUCH_CANCEL, TOP_TOUCH_END];
packages/events/ResponderTouchHistoryStore.js
+1 -1
@@ -10,7 +10,7 @@
10 import invariant from 'fbjs/lib/invariant';
11 import warning from 'fbjs/lib/warning';
12
13 -import {isEndish, isMoveish, isStartish} from './EventPluginUtils';
13 +import {isStartish, isMoveish, isEndish} from './ResponderTopLevelEventTypes';
14
15 /**
16 * Tracks the position and time of each active touch by `touch.identifier`. We
packages/events/TopLevelEventTypes.js new
+23
@@ -0,0 +1,23 @@
1 +/**
2 + * Copyright (c) 2013-present, Facebook, Inc.
3 + *
4 + * This source code is licensed under the MIT license found in the
5 + * LICENSE file in the root directory of this source tree.
6 + *
7 + * @flow
8 + */
9 +
10 +import type {DOMTopLevelEventType} from 'react-dom/src/events/DOMTopLevelEventTypes';
11 +
12 +type RNTopLevelEventType =
13 + | 'topMouseDown'
14 + | 'topMouseMove'
15 + | 'topMouseUp'
16 + | 'topScroll'
17 + | 'topSelectionChange'
18 + | 'topTouchCancel'
19 + | 'topTouchEnd'
20 + | 'topTouchMove'
21 + | 'topTouchStart';
22 +
23 +export type TopLevelType = DOMTopLevelEventType | RNTopLevelEventType;
packages/events/forks/ResponderTopLevelEventTypes.dom.js new
+41
@@ -0,0 +1,41 @@
1 +/**
2 + * Copyright (c) 2013-present, Facebook, Inc.
3 + *
4 + * This source code is licensed under the MIT license found in the
5 + * LICENSE file in the root directory of this source tree.
6 + *
7 + * @flow
8 + */
9 +
10 +// Note: ideally these would be imported from DOMTopLevelEventTypes,
11 +// but our build system currently doesn't let us do that from a fork.
12 +
13 +export const TOP_TOUCH_START = 'touchstart';
14 +export const TOP_TOUCH_MOVE = 'touchmove';
15 +export const TOP_TOUCH_END = 'touchend';
16 +export const TOP_TOUCH_CANCEL = 'touchcancel';
17 +export const TOP_SCROLL = 'scroll';
18 +export const TOP_SELECTION_CHANGE = 'selectionchange';
19 +export const TOP_MOUSE_DOWN = 'mousedown';
20 +export const TOP_MOUSE_MOVE = 'mousemove';
21 +export const TOP_MOUSE_UP = 'mouseup';
22 +
23 +export function isStartish(topLevelType: mixed): boolean {
24 + return topLevelType === TOP_TOUCH_START || topLevelType === TOP_MOUSE_DOWN;
25 +}
26 +
27 +export function isMoveish(topLevelType: mixed): boolean {
28 + return topLevelType === TOP_TOUCH_MOVE || topLevelType === TOP_MOUSE_MOVE;
29 +}
30 +
31 +export function isEndish(topLevelType: mixed): boolean {
32 + return (
33 + topLevelType === TOP_TOUCH_END ||
34 + topLevelType === TOP_TOUCH_CANCEL ||
35 + topLevelType === TOP_MOUSE_UP
36 + );
37 +}
38 +
39 +export const startDependencies = [TOP_TOUCH_START, TOP_MOUSE_DOWN];
40 +export const moveDependencies = [TOP_TOUCH_MOVE, TOP_MOUSE_MOVE];
41 +export const endDependencies = [TOP_TOUCH_CANCEL, TOP_TOUCH_END, TOP_MOUSE_UP];
packages/react-dom/src/__tests__/ReactDOM-test.js
+3 -8
@@ -309,14 +309,9 @@ describe('ReactDOM', () => {
309 const actual = [];
310
311 function click(node) {
312 - const fakeNativeEvent = function() {};
313 - fakeNativeEvent.target = node;
314 - fakeNativeEvent.path = [node, container];
315 - ReactTestUtils.simulateNativeEventOnNode(
316 - 'topClick',
317 - node,
318 - fakeNativeEvent,
319 - );
312 + ReactTestUtils.Simulate.click(node, {
313 + path: [node, container],
314 + });
315 }
316
317 class Wrapper extends React.Component {
packages/react-dom/src/__tests__/ReactDOMFiber-test.js
+4 -16
@@ -838,12 +838,7 @@ describe('ReactDOMFiber', () => {
838
839 expect(portal.tagName).toBe('DIV');
840
841 - const fakeNativeEvent = {};
842 - ReactTestUtils.simulateNativeEventOnNode(
843 - 'topClick',
844 - portal,
845 - fakeNativeEvent,
846 - );
841 + ReactTestUtils.Simulate.click(portal);
842
843 expect(ops).toEqual(['portal clicked', 'parent clicked']);
844 });
@@ -858,14 +853,12 @@ describe('ReactDOMFiber', () => {
853
854 function simulateMouseMove(from, to) {
855 if (from) {
861 - ReactTestUtils.simulateNativeEventOnNode('topMouseOut', from, {
862 - target: from,
856 + ReactTestUtils.SimulateNative.mouseOut(from, {
857 relatedTarget: to,
858 });
859 }
860 if (to) {
867 - ReactTestUtils.simulateNativeEventOnNode('topMouseOver', to, {
868 - target: to,
861 + ReactTestUtils.SimulateNative.mouseOver(to, {
862 relatedTarget: from,
863 });
864 }
@@ -983,12 +976,7 @@ describe('ReactDOMFiber', () => {
976 expect(node.tagName).toEqual('DIV');
977
978 function click(target) {
986 - const fakeNativeEvent = {};
987 - ReactTestUtils.simulateNativeEventOnNode(
988 - 'topClick',
989 - target,
990 - fakeNativeEvent,
991 - );
979 + ReactTestUtils.Simulate.click(target);
980 }
981
982 click(node);
packages/react-dom/src/__tests__/ReactDOMInput-test.js
+3 -4
@@ -694,10 +694,9 @@ describe('ReactDOMInput', () => {
694
695 setUntrackedValue.call(node, 'giraffe');
696
697 - const fakeNativeEvent = function() {};
698 - fakeNativeEvent.target = node;
699 - fakeNativeEvent.path = [node, container];
700 - ReactTestUtils.simulateNativeEventOnNode('topInput', node, fakeNativeEvent);
697 + ReactTestUtils.SimulateNative.input(node, {
698 + path: [node, container],
699 + });
700
701 expect(handled).toBe(true);
702 });
packages/react-dom/src/client/ReactDOMFiberComponent.js
+33 -29
@@ -21,8 +21,16 @@ import * as ReactDOMFiberTextarea from './ReactDOMFiberTextarea';
21 import * as inputValueTracking from './inputValueTracking';
22 import setInnerHTML from './setInnerHTML';
23 import setTextContent from './setTextContent';
24 +import {
25 + TOP_ERROR,
26 + TOP_INVALID,
27 + TOP_LOAD,
28 + TOP_RESET,
29 + TOP_SUBMIT,
30 + TOP_TOGGLE,
31 +} from '../events/DOMTopLevelEventTypes';
32 import {listenTo, trapBubbledEvent} from '../events/ReactBrowserEventEmitter';
25 -import {mediaEventTypes} from '../events/BrowserEventConstants';
33 +import {mediaEventTypes} from '../events/DOMTopLevelEventTypes';
34 import * as CSSPropertyOperations from '../shared/CSSPropertyOperations';
35 import {Namespaces, getIntrinsicNamespace} from '../shared/DOMNamespaces';
36 import {
@@ -440,43 +448,41 @@ export function setInitialProperties(
448 switch (tag) {
449 case 'iframe':
450 case 'object':
443 - trapBubbledEvent('topLoad', 'load', domElement);
451 + trapBubbledEvent(TOP_LOAD, domElement);
452 props = rawProps;
453 break;
454 case 'video':
455 case 'audio':
456 // Create listener for each media event
449 - for (const event in mediaEventTypes) {
450 - if (mediaEventTypes.hasOwnProperty(event)) {
451 - trapBubbledEvent(event, mediaEventTypes[event], domElement);
452 - }
457 + for (let i = 0; i < mediaEventTypes.length; i++) {
458 + trapBubbledEvent(mediaEventTypes[i], domElement);
459 }
460 props = rawProps;
461 break;
462 case 'source':
457 - trapBubbledEvent('topError', 'error', domElement);
463 + trapBubbledEvent(TOP_ERROR, domElement);
464 props = rawProps;
465 break;
466 case 'img':
467 case 'image':
468 case 'link':
463 - trapBubbledEvent('topError', 'error', domElement);
464 - trapBubbledEvent('topLoad', 'load', domElement);
469 + trapBubbledEvent(TOP_ERROR, domElement);
470 + trapBubbledEvent(TOP_LOAD, domElement);
471 props = rawProps;
472 break;
473 case 'form':
468 - trapBubbledEvent('topReset', 'reset', domElement);
469 - trapBubbledEvent('topSubmit', 'submit', domElement);
474 + trapBubbledEvent(TOP_RESET, domElement);
475 + trapBubbledEvent(TOP_SUBMIT, domElement);
476 props = rawProps;
477 break;
478 case 'details':
473 - trapBubbledEvent('topToggle', 'toggle', domElement);
479 + trapBubbledEvent(TOP_TOGGLE, domElement);
480 props = rawProps;
481 break;
482 case 'input':
483 ReactDOMFiberInput.initWrapperState(domElement, rawProps);
484 props = ReactDOMFiberInput.getHostProps(domElement, rawProps);
479 - trapBubbledEvent('topInvalid', 'invalid', domElement);
485 + trapBubbledEvent(TOP_INVALID, domElement);
486 // For controlled components we always need to ensure we're listening
487 // to onChange. Even if there is no listener.
488 ensureListeningTo(rootContainerElement, 'onChange');
@@ -488,7 +494,7 @@ export function setInitialProperties(
494 case 'select':
495 ReactDOMFiberSelect.initWrapperState(domElement, rawProps);
496 props = ReactDOMFiberSelect.getHostProps(domElement, rawProps);
491 - trapBubbledEvent('topInvalid', 'invalid', domElement);
497 + trapBubbledEvent(TOP_INVALID, domElement);
498 // For controlled components we always need to ensure we're listening
499 // to onChange. Even if there is no listener.
500 ensureListeningTo(rootContainerElement, 'onChange');
@@ -496,7 +502,7 @@ export function setInitialProperties(
502 case 'textarea':
503 ReactDOMFiberTextarea.initWrapperState(domElement, rawProps);
504 props = ReactDOMFiberTextarea.getHostProps(domElement, rawProps);
499 - trapBubbledEvent('topInvalid', 'invalid', domElement);
505 + trapBubbledEvent(TOP_INVALID, domElement);
506 // For controlled components we always need to ensure we're listening
507 // to onChange. Even if there is no listener.
508 ensureListeningTo(rootContainerElement, 'onChange');
@@ -829,36 +835,34 @@ export function diffHydratedProperties(
835 switch (tag) {
836 case 'iframe':
837 case 'object':
832 - trapBubbledEvent('topLoad', 'load', domElement);
838 + trapBubbledEvent(TOP_LOAD, domElement);
839 break;
840 case 'video':
841 case 'audio':
842 // Create listener for each media event
837 - for (const event in mediaEventTypes) {
838 - if (mediaEventTypes.hasOwnProperty(event)) {
839 - trapBubbledEvent(event, mediaEventTypes[event], domElement);
840 - }
843 + for (let i = 0; i < mediaEventTypes.length; i++) {
844 + trapBubbledEvent(mediaEventTypes[i], domElement);
845 }
846 break;
847 case 'source':
844 - trapBubbledEvent('topError', 'error', domElement);
848 + trapBubbledEvent(TOP_ERROR, domElement);
849 break;
850 case 'img':
851 case 'image':
852 case 'link':
849 - trapBubbledEvent('topError', 'error', domElement);
850 - trapBubbledEvent('topLoad', 'load', domElement);
853 + trapBubbledEvent(TOP_ERROR, domElement);
854 + trapBubbledEvent(TOP_LOAD, domElement);
855 break;
856 case 'form':
853 - trapBubbledEvent('topReset', 'reset', domElement);
854 - trapBubbledEvent('topSubmit', 'submit', domElement);
857 + trapBubbledEvent(TOP_RESET, domElement);
858 + trapBubbledEvent(TOP_SUBMIT, domElement);
859 break;
860 case 'details':
857 - trapBubbledEvent('topToggle', 'toggle', domElement);
861 + trapBubbledEvent(TOP_TOGGLE, domElement);
862 break;
863 case 'input':
864 ReactDOMFiberInput.initWrapperState(domElement, rawProps);
861 - trapBubbledEvent('topInvalid', 'invalid', domElement);
865 + trapBubbledEvent(TOP_INVALID, domElement);
866 // For controlled components we always need to ensure we're listening
867 // to onChange. Even if there is no listener.
868 ensureListeningTo(rootContainerElement, 'onChange');
@@ -868,14 +872,14 @@ export function diffHydratedProperties(
872 break;
873 case 'select':
874 ReactDOMFiberSelect.initWrapperState(domElement, rawProps);
871 - trapBubbledEvent('topInvalid', 'invalid', domElement);
875 + trapBubbledEvent(TOP_INVALID, domElement);
876 // For controlled components we always need to ensure we're listening
877 // to onChange. Even if there is no listener.
878 ensureListeningTo(rootContainerElement, 'onChange');
879 break;
880 case 'textarea':
881 ReactDOMFiberTextarea.initWrapperState(domElement, rawProps);
878 - trapBubbledEvent('topInvalid', 'invalid', domElement);
882 + trapBubbledEvent(TOP_INVALID, domElement);
883 // For controlled components we always need to ensure we're listening
884 // to onChange. Even if there is no listener.
885 ensureListeningTo(rootContainerElement, 'onChange');
packages/react-dom/src/events/BeforeInputEventPlugin.js
+55 -43
@@ -5,11 +5,23 @@
5 * LICENSE file in the root directory of this source tree.
6 */
7
8 -import type {TopLevelTypes} from './BrowserEventConstants';
8 +import type {TopLevelType} from 'events/TopLevelEventTypes';
9
10 import {accumulateTwoPhaseDispatches} from 'events/EventPropagators';
11 import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';
12
13 +import {
14 + TOP_BLUR,
15 + TOP_COMPOSITION_START,
16 + TOP_COMPOSITION_END,
17 + TOP_COMPOSITION_UPDATE,
18 + TOP_KEY_DOWN,
19 + TOP_KEY_PRESS,
20 + TOP_KEY_UP,
21 + TOP_MOUSE_DOWN,
22 + TOP_TEXT_INPUT,
23 + TOP_PASTE,
24 +} from './DOMTopLevelEventTypes';
25 import * as FallbackCompositionState from './FallbackCompositionState';
26 import SyntheticCompositionEvent from './SyntheticCompositionEvent';
27 import SyntheticInputEvent from './SyntheticInputEvent';
@@ -50,10 +62,10 @@ const eventTypes = {
62 captured: 'onBeforeInputCapture',
63 },
64 dependencies: [
53 - 'topCompositionEnd',
54 - 'topKeyPress',
55 - 'topTextInput',
56 - 'topPaste',
65 + TOP_COMPOSITION_END,
66 + TOP_KEY_PRESS,
67 + TOP_TEXT_INPUT,
68 + TOP_PASTE,
69 ],
70 },
71 compositionEnd: {
@@ -62,12 +74,12 @@ const eventTypes = {
74 captured: 'onCompositionEndCapture',
75 },
76 dependencies: [
65 - 'topBlur',
66 - 'topCompositionEnd',
67 - 'topKeyDown',
68 - 'topKeyPress',
69 - 'topKeyUp',
70 - 'topMouseDown',
77 + TOP_BLUR,
78 + TOP_COMPOSITION_END,
79 + TOP_KEY_DOWN,
80 + TOP_KEY_PRESS,
81 + TOP_KEY_UP,
82 + TOP_MOUSE_DOWN,
83 ],
84 },
85 compositionStart: {
@@ -76,12 +88,12 @@ const eventTypes = {
88 captured: 'onCompositionStartCapture',
89 },
90 dependencies: [
79 - 'topBlur',
80 - 'topCompositionStart',
81 - 'topKeyDown',
82 - 'topKeyPress',
83 - 'topKeyUp',
84 - 'topMouseDown',
91 + TOP_BLUR,
92 + TOP_COMPOSITION_START,
93 + TOP_KEY_DOWN,
94 + TOP_KEY_PRESS,
95 + TOP_KEY_UP,
96 + TOP_MOUSE_DOWN,
97 ],
98 },
99 compositionUpdate: {
@@ -90,12 +102,12 @@ const eventTypes = {
102 captured: 'onCompositionUpdateCapture',
103 },
104 dependencies: [
93 - 'topBlur',
94 - 'topCompositionUpdate',
95 - 'topKeyDown',
96 - 'topKeyPress',
97 - 'topKeyUp',
98 - 'topMouseDown',
105 + TOP_BLUR,
106 + TOP_COMPOSITION_UPDATE,
107 + TOP_KEY_DOWN,
108 + TOP_KEY_PRESS,
109 + TOP_KEY_UP,
110 + TOP_MOUSE_DOWN,
111 ],
112 },
113 };
@@ -124,11 +136,11 @@ function isKeypressCommand(nativeEvent) {
136 */
137 function getCompositionEventType(topLevelType) {
138 switch (topLevelType) {
127 - case 'topCompositionStart':
139 + case TOP_COMPOSITION_START:
140 return eventTypes.compositionStart;
129 - case 'topCompositionEnd':
141 + case TOP_COMPOSITION_END:
142 return eventTypes.compositionEnd;
131 - case 'topCompositionUpdate':
143 + case TOP_COMPOSITION_UPDATE:
144 return eventTypes.compositionUpdate;
145 }
146 }
@@ -142,7 +154,7 @@ function getCompositionEventType(topLevelType) {
154 * @return {boolean}
155 */
156 function isFallbackCompositionStart(topLevelType, nativeEvent) {
145 - return topLevelType === 'topKeyDown' && nativeEvent.keyCode === START_KEYCODE;
157 + return topLevelType === TOP_KEY_DOWN && nativeEvent.keyCode === START_KEYCODE;
158 }
159
160 /**
@@ -154,16 +166,16 @@ function isFallbackCompositionStart(topLevelType, nativeEvent) {
166 */
167 function isFallbackCompositionEnd(topLevelType, nativeEvent) {
168 switch (topLevelType) {
157 - case 'topKeyUp':
169 + case TOP_KEY_UP:
170 // Command keys insert or clear IME input.
171 return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;
160 - case 'topKeyDown':
172 + case TOP_KEY_DOWN:
173 // Expect IME keyCode on each keydown. If we get any other
174 // code we must have exited earlier.
175 return nativeEvent.keyCode !== START_KEYCODE;
164 - case 'topKeyPress':
165 - case 'topMouseDown':
166 - case 'topBlur':
176 + case TOP_KEY_PRESS:
177 + case TOP_MOUSE_DOWN:
178 + case TOP_BLUR:
179 // Events are not possible without cancelling IME.
180 return true;
181 default:
@@ -252,15 +264,15 @@ function extractCompositionEvent(
264 }
265
266 /**
255 - * @param {TopLevelTypes} topLevelType Record from `BrowserEventConstants`.
267 + * @param {TopLevelType} topLevelType Number from `TopLevelType`.
268 * @param {object} nativeEvent Native browser event.
269 * @return {?string} The string corresponding to this `beforeInput` event.
270 */
259 -function getNativeBeforeInputChars(topLevelType: TopLevelTypes, nativeEvent) {
271 +function getNativeBeforeInputChars(topLevelType: TopLevelType, nativeEvent) {
272 switch (topLevelType) {
261 - case 'topCompositionEnd':
273 + case TOP_COMPOSITION_END:
274 return getDataFromCustomEvent(nativeEvent);
263 - case 'topKeyPress':
275 + case TOP_KEY_PRESS:
276 /**
277 * If native `textInput` events are available, our goal is to make
278 * use of them. However, there is a special case: the spacebar key.
@@ -283,7 +295,7 @@ function getNativeBeforeInputChars(topLevelType: TopLevelTypes, nativeEvent) {
295 hasSpaceKeypress = true;
296 return SPACEBAR_CHAR;
297
286 - case 'topTextInput':
298 + case TOP_TEXT_INPUT:
299 // Record the characters to be added to the DOM.
300 const chars = nativeEvent.data;
301
@@ -306,18 +318,18 @@ function getNativeBeforeInputChars(topLevelType: TopLevelTypes, nativeEvent) {
318 * For browsers that do not provide the `textInput` event, extract the
319 * appropriate string to use for SyntheticInputEvent.
320 *
309 - * @param {string} topLevelType Record from `BrowserEventConstants`.
321 + * @param {number} topLevelType Number from `TopLevelEventTypes`.
322 * @param {object} nativeEvent Native browser event.
323 * @return {?string} The fallback string for this `beforeInput` event.
324 */
313 -function getFallbackBeforeInputChars(topLevelType: TopLevelTypes, nativeEvent) {
325 +function getFallbackBeforeInputChars(topLevelType: TopLevelType, nativeEvent) {
326 // If we are currently composing (IME) and using a fallback to do so,
327 // try to extract the composed characters from the fallback object.
328 // If composition event is available, we extract a string only at
329 // compositionevent, otherwise extract it at fallback events.
330 if (isComposing) {
331 if (
320 - topLevelType === 'topCompositionEnd' ||
332 + topLevelType === TOP_COMPOSITION_END ||
333 (!canUseCompositionEvent &&
334 isFallbackCompositionEnd(topLevelType, nativeEvent))
335 ) {
@@ -330,11 +342,11 @@ function getFallbackBeforeInputChars(topLevelType: TopLevelTypes, nativeEvent) {
342 }
343
344 switch (topLevelType) {
333 - case 'topPaste':
345 + case TOP_PASTE:
346 // If a paste event occurs after a keypress, throw out the input
347 // chars. Paste events should not lead to BeforeInput events.
348 return null;
337 - case 'topKeyPress':
349 + case TOP_KEY_PRESS:
350 /**
351 * As of v27, Firefox may fire keypress events even when no character
352 * will be inserted. A few possibilities:
@@ -365,7 +377,7 @@ function getFallbackBeforeInputChars(topLevelType: TopLevelTypes, nativeEvent) {
377 }
378 }
379 return null;
368 - case 'topCompositionEnd':
380 + case TOP_COMPOSITION_END:
381 return useFallbackCompositionData ? null : nativeEvent.data;
382 default:
383 return null;
packages/react-dom/src/events/BrowserEventConstants.js deleted
-97
@@ -1,97 +0,0 @@
1 -/**
2 - * Copyright (c) 2013-present, Facebook, Inc.
3 - *
4 - * This source code is licensed under the MIT license found in the
5 - * LICENSE file in the root directory of this source tree.
6 - */
7 -
8 -import getVendorPrefixedEventName from './getVendorPrefixedEventName';
9 -
10 -/**
11 - * Types of raw signals from the browser caught at the top level.
12 - *
13 - * For events like 'submit' or audio/video events which don't consistently
14 - * bubble (which we trap at a lower node than `document`), binding
15 - * at `document` would cause duplicate events so we don't include them here.
16 - */
17 -export const topLevelTypes = {
18 - topAnimationEnd: getVendorPrefixedEventName('animationend'),
19 - topAnimationIteration: getVendorPrefixedEventName('animationiteration'),
20 - topAnimationStart: getVendorPrefixedEventName('animationstart'),
21 - topBlur: 'blur',
22 - topCancel: 'cancel',
23 - topChange: 'change',
24 - topClick: 'click',
25 - topClose: 'close',
26 - topCompositionEnd: 'compositionend',
27 - topCompositionStart: 'compositionstart',
28 - topCompositionUpdate: 'compositionupdate',
29 - topContextMenu: 'contextmenu',
30 - topCopy: 'copy',
31 - topCut: 'cut',
32 - topDoubleClick: 'dblclick',
33 - topDrag: 'drag',
34 - topDragEnd: 'dragend',
35 - topDragEnter: 'dragenter',
36 - topDragExit: 'dragexit',
37 - topDragLeave: 'dragleave',
38 - topDragOver: 'dragover',
39 - topDragStart: 'dragstart',
40 - topDrop: 'drop',
41 - topFocus: 'focus',
42 - topInput: 'input',
43 - topKeyDown: 'keydown',
44 - topKeyPress: 'keypress',
45 - topKeyUp: 'keyup',
46 - topLoad: 'load',
47 - topLoadStart: 'loadstart',
48 - topMouseDown: 'mousedown',
49 - topMouseMove: 'mousemove',
50 - topMouseOut: 'mouseout',
51 - topMouseOver: 'mouseover',
52 - topMouseUp: 'mouseup',
53 - topPaste: 'paste',
54 - topScroll: 'scroll',
55 - topSelectionChange: 'selectionchange',
56 - topTextInput: 'textInput',
57 - topToggle: 'toggle',
58 - topTouchCancel: 'touchcancel',
59 - topTouchEnd: 'touchend',
60 - topTouchMove: 'touchmove',
61 - topTouchStart: 'touchstart',
62 - topTransitionEnd: getVendorPrefixedEventName('transitionend'),
63 - topWheel: 'wheel',
64 -};
65 -
66 -// There are so many media events, it makes sense to just
67 -// maintain a list of them. Note these aren't technically
68 -// "top-level" since they don't bubble. We should come up
69 -// with a better naming convention if we come to refactoring
70 -// the event system.
71 -export const mediaEventTypes = {
72 - topAbort: 'abort',
73 - topCanPlay: 'canplay',
74 - topCanPlayThrough: 'canplaythrough',
75 - topDurationChange: 'durationchange',
76 - topEmptied: 'emptied',
77 - topEncrypted: 'encrypted',
78 - topEnded: 'ended',
79 - topError: 'error',
80 - topLoadedData: 'loadeddata',
81 - topLoadedMetadata: 'loadedmetadata',
82 - topLoadStart: 'loadstart',
83 - topPause: 'pause',
84 - topPlay: 'play',
85 - topPlaying: 'playing',
86 - topProgress: 'progress',
87 - topRateChange: 'ratechange',
88 - topSeeked: 'seeked',
89 - topSeeking: 'seeking',
90 - topStalled: 'stalled',
91 - topSuspend: 'suspend',
92 - topTimeUpdate: 'timeupdate',
93 - topVolumeChange: 'volumechange',
94 - topWaiting: 'waiting',
95 -};
96 -
97 -export type TopLevelTypes = $Enum<typeof topLevelTypes>;
packages/react-dom/src/events/ChangeEventPlugin.js
+27 -17
@@ -13,6 +13,16 @@ import SyntheticEvent from 'events/SyntheticEvent';
13 import isTextInputElement from 'shared/isTextInputElement';
14 import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';
15
16 +import {
17 + TOP_BLUR,
18 + TOP_CHANGE,
19 + TOP_CLICK,
20 + TOP_FOCUS,
21 + TOP_INPUT,
22 + TOP_KEY_DOWN,
23 + TOP_KEY_UP,
24 + TOP_SELECTION_CHANGE,
25 +} from './DOMTopLevelEventTypes';
26 import getEventTarget from './getEventTarget';
27 import isEventSupported from './isEventSupported';
28 import {getNodeFromInstance} from '../client/ReactDOMComponentTree';
@@ -26,14 +36,14 @@ const eventTypes = {
36 captured: 'onChangeCapture',
37 },
38 dependencies: [
29 - 'topBlur',
30 - 'topChange',
31 - 'topClick',
32 - 'topFocus',
33 - 'topInput',
34 - 'topKeyDown',
35 - 'topKeyUp',
36 - 'topSelectionChange',
39 + TOP_BLUR,
40 + TOP_CHANGE,
41 + TOP_CLICK,
42 + TOP_FOCUS,
43 + TOP_INPUT,
44 + TOP_KEY_DOWN,
45 + TOP_KEY_UP,
46 + TOP_SELECTION_CHANGE,
47 ],
48 },
49 };
@@ -100,7 +110,7 @@ function getInstIfValueChanged(targetInst) {
110 }
111
112 function getTargetInstForChangeEvent(topLevelType, targetInst) {
103 - if (topLevelType === 'topChange') {
113 + if (topLevelType === TOP_CHANGE) {
114 return targetInst;
115 }
116 }
@@ -155,7 +165,7 @@ function handlePropertyChange(nativeEvent) {
165 }
166
167 function handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {
158 - if (topLevelType === 'topFocus') {
168 + if (topLevelType === TOP_FOCUS) {
169 // In IE9, propertychange fires for most input events but is buggy and
170 // doesn't fire when text is deleted, but conveniently, selectionchange
171 // appears to fire in all of the remaining cases so we catch those and
@@ -168,7 +178,7 @@ function handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {
178 // missed a blur event somehow.
179 stopWatchingForValueChange();
180 startWatchingForValueChange(target, targetInst);
171 - } else if (topLevelType === 'topBlur') {
181 + } else if (topLevelType === TOP_BLUR) {
182 stopWatchingForValueChange();
183 }
184 }
@@ -176,9 +186,9 @@ function handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {
186 // For IE8 and IE9.
187 function getTargetInstForInputEventPolyfill(topLevelType, targetInst) {
188 if (
179 - topLevelType === 'topSelectionChange' ||
180 - topLevelType === 'topKeyUp' ||
181 - topLevelType === 'topKeyDown'
189 + topLevelType === TOP_SELECTION_CHANGE ||
190 + topLevelType === TOP_KEY_UP ||
191 + topLevelType === TOP_KEY_DOWN
192 ) {
193 // On the selectionchange event, the target is just document which isn't
194 // helpful for us so just check activeElement instead.
@@ -210,13 +220,13 @@ function shouldUseClickEvent(elem) {
220 }
221
222 function getTargetInstForClickEvent(topLevelType, targetInst) {
213 - if (topLevelType === 'topClick') {
223 + if (topLevelType === TOP_CLICK) {
224 return getInstIfValueChanged(targetInst);
225 }
226 }
227
228 function getTargetInstForInputOrChangeEvent(topLevelType, targetInst) {
219 - if (topLevelType === 'topInput' || topLevelType === 'topChange') {
229 + if (topLevelType === TOP_INPUT || topLevelType === TOP_CHANGE) {
230 return getInstIfValueChanged(targetInst);
231 }
232 }
@@ -292,7 +302,7 @@ const ChangeEventPlugin = {
302 }
303
304 // When blurring, set the value attribute for number inputs
295 - if (topLevelType === 'topBlur') {
305 + if (topLevelType === TOP_BLUR) {
306 handleControlledInputBlur(targetInst, targetNode);
307 }
308 },
packages/react-dom/src/events/DOMTopLevelEventTypes.js new
+205
@@ -0,0 +1,205 @@
1 +/**
2 + * Copyright (c) 2013-present, Facebook, Inc.
3 + *
4 + * This source code is licensed under the MIT license found in the
5 + * LICENSE file in the root directory of this source tree.
6 + *
7 + * @flow
8 + */
9 +
10 +import type {TopLevelType} from 'events/TopLevelEventTypes';
11 +import getVendorPrefixedEventName from './getVendorPrefixedEventName';
12 +
13 +/**
14 + * To identify top level events in react-dom, we use constants defined by this
15 + * module. Those are completely opaque to every other module but we rely on them
16 + * being the raw DOM event names inside this module. This allows us to build a
17 + * very efficient mapping from top level identifiers to the raw event type.
18 + *
19 + * The use of an `opaque` flow type makes sure that we can only access the value
20 + * of a constant in this module.
21 + */
22 +
23 +// eslint-disable-next-line no-undef
24 +export opaque type DOMTopLevelEventType =
25 + | 'abort'
26 + | 'animationend'
27 + | 'animationiteration'
28 + | 'animationstart'
29 + | 'blur'
30 + | 'canplay'
31 + | 'canplaythrough'
32 + | 'cancel'
33 + | 'change'
34 + | 'click'
35 + | 'close'
36 + | 'compositionend'
37 + | 'compositionstart'
38 + | 'compositionupdate'
39 + | 'contextmenu'
40 + | 'copy'
41 + | 'cut'
42 + | 'dblclick'
43 + | 'drag'
44 + | 'dragend'
45 + | 'dragenter'
46 + | 'dragexit'
47 + | 'dragleave'
48 + | 'dragover'
49 + | 'dragstart'
50 + | 'drop'
51 + | 'durationchange'
52 + | 'emptied'
53 + | 'encrypted'
54 + | 'ended'
55 + | 'error'
56 + | 'focus'
57 + | 'input'
58 + | 'invalid'
59 + | 'keydown'
60 + | 'keypress'
61 + | 'keyup'
62 + | 'load'
63 + | 'loadstart'
64 + | 'loadeddata'
65 + | 'loadedmetadata'
66 + | 'mousedown'
67 + | 'mousemove'
68 + | 'mouseout'
69 + | 'mouseover'
70 + | 'mouseup'
71 + | 'paste'
72 + | 'pause'
73 + | 'play'
74 + | 'playing'
75 + | 'progress'
76 + | 'ratechange'
77 + | 'reset'
78 + | 'scroll'
79 + | 'seeked'
80 + | 'seeking'
81 + | 'selectionchange'
82 + | 'stalled'
83 + | 'submit'
84 + | 'suspend'
85 + | 'textInput'
86 + | 'timeupdate'
87 + | 'toggle'
88 + | 'touchcancel'
89 + | 'touchend'
90 + | 'touchmove'
91 + | 'touchstart'
92 + | 'transitionend'
93 + | 'volumechange'
94 + | 'waiting'
95 + | 'wheel';
96 +
97 +export const TOP_ABORT: TopLevelType = 'abort';
98 +export const TOP_ANIMATION_END: TopLevelType = getVendorPrefixedEventName(
99 + 'animationend',
100 +);
101 +export const TOP_ANIMATION_ITERATION: TopLevelType = getVendorPrefixedEventName(
102 + 'animationiteration',
103 +);
104 +export const TOP_ANIMATION_START: TopLevelType = getVendorPrefixedEventName(
105 + 'animationstart',
106 +);
107 +export const TOP_BLUR: TopLevelType = 'blur';
108 +export const TOP_CAN_PLAY: TopLevelType = 'canplay';
109 +export const TOP_CAN_PLAY_THROUGH: TopLevelType = 'canplaythrough';
110 +export const TOP_CANCEL: TopLevelType = 'cancel';
111 +export const TOP_CHANGE: TopLevelType = 'change';
112 +export const TOP_CLICK: TopLevelType = 'click';
113 +export const TOP_CLOSE: TopLevelType = 'close';
114 +export const TOP_COMPOSITION_END: TopLevelType = 'compositionend';
115 +export const TOP_COMPOSITION_START: TopLevelType = 'compositionstart';
116 +export const TOP_COMPOSITION_UPDATE: TopLevelType = 'compositionupdate';
117 +export const TOP_CONTEXT_MENU: TopLevelType = 'contextmenu';
118 +export const TOP_COPY: TopLevelType = 'copy';
119 +export const TOP_CUT: TopLevelType = 'cut';
120 +export const TOP_DOUBLE_CLICK: TopLevelType = 'dblclick';
121 +export const TOP_DRAG: TopLevelType = 'drag';
122 +export const TOP_DRAG_END: TopLevelType = 'dragend';
123 +export const TOP_DRAG_ENTER: TopLevelType = 'dragenter';
124 +export const TOP_DRAG_EXIT: TopLevelType = 'dragexit';
125 +export const TOP_DRAG_LEAVE: TopLevelType = 'dragleave';
126 +export const TOP_DRAG_OVER: TopLevelType = 'dragover';
127 +export const TOP_DRAG_START: TopLevelType = 'dragstart';
128 +export const TOP_DROP: TopLevelType = 'drop';
129 +export const TOP_DURATION_CHANGE: TopLevelType = 'durationchange';
130 +export const TOP_EMPTIED: TopLevelType = 'emptied';
131 +export const TOP_ENCRYPTED: TopLevelType = 'encrypted';
132 +export const TOP_ENDED: TopLevelType = 'ended';
133 +export const TOP_ERROR: TopLevelType = 'error';
134 +export const TOP_FOCUS: TopLevelType = 'focus';
135 +export const TOP_INPUT: TopLevelType = 'input';
136 +export const TOP_INVALID: TopLevelType = 'invalid';
137 +export const TOP_KEY_DOWN: TopLevelType = 'keydown';
138 +export const TOP_KEY_PRESS: TopLevelType = 'keypress';
139 +export const TOP_KEY_UP: TopLevelType = 'keyup';
140 +export const TOP_LOAD: TopLevelType = 'load';
141 +export const TOP_LOAD_START: TopLevelType = 'loadstart';
142 +export const TOP_LOADED_DATA: TopLevelType = 'loadeddata';
143 +export const TOP_LOADED_METADATA: TopLevelType = 'loadedmetadata';
144 +export const TOP_MOUSE_DOWN: TopLevelType = 'mousedown';
145 +export const TOP_MOUSE_MOVE: TopLevelType = 'mousemove';
146 +export const TOP_MOUSE_OUT: TopLevelType = 'mouseout';
147 +export const TOP_MOUSE_OVER: TopLevelType = 'mouseover';
148 +export const TOP_MOUSE_UP: TopLevelType = 'mouseup';
149 +export const TOP_PASTE: TopLevelType = 'paste';
150 +export const TOP_PAUSE: TopLevelType = 'pause';
151 +export const TOP_PLAY: TopLevelType = 'play';
152 +export const TOP_PLAYING: TopLevelType = 'playing';
153 +export const TOP_PROGRESS: TopLevelType = 'progress';
154 +export const TOP_RATE_CHANGE: TopLevelType = 'ratechange';
155 +export const TOP_RESET: TopLevelType = 'reset';
156 +export const TOP_SCROLL: TopLevelType = 'scroll';
157 +export const TOP_SEEKED: TopLevelType = 'seeked';
158 +export const TOP_SEEKING: TopLevelType = 'seeking';
159 +export const TOP_SELECTION_CHANGE: TopLevelType = 'selectionchange';
160 +export const TOP_STALLED: TopLevelType = 'stalled';
161 +export const TOP_SUBMIT: TopLevelType = 'submit';
162 +export const TOP_SUSPEND: TopLevelType = 'suspend';
163 +export const TOP_TEXT_INPUT: TopLevelType = 'textInput';
164 +export const TOP_TIME_UPDATE: TopLevelType = 'timeupdate';
165 +export const TOP_TOGGLE: TopLevelType = 'toggle';
166 +export const TOP_TOUCH_CANCEL: TopLevelType = 'touchcancel';
167 +export const TOP_TOUCH_END: TopLevelType = 'touchend';
168 +export const TOP_TOUCH_MOVE: TopLevelType = 'touchmove';
169 +export const TOP_TOUCH_START: TopLevelType = 'touchstart';
170 +export const TOP_TRANSITION_END: TopLevelType = getVendorPrefixedEventName(
171 + 'transitionend',
172 +);
173 +export const TOP_VOLUME_CHANGE: TopLevelType = 'volumechange';
174 +export const TOP_WAITING: TopLevelType = 'waiting';
175 +export const TOP_WHEEL: TopLevelType = 'wheel';
176 +
177 +export const mediaEventTypes: Array<TopLevelType> = [
178 + TOP_ABORT,
179 + TOP_CAN_PLAY,
180 + TOP_CAN_PLAY_THROUGH,
181 + TOP_DURATION_CHANGE,
182 + TOP_EMPTIED,
183 + TOP_ENCRYPTED,
184 + TOP_ENDED,
185 + TOP_ERROR,
186 + TOP_LOADED_DATA,
187 + TOP_LOADED_METADATA,
188 + TOP_LOAD_START,
189 + TOP_PAUSE,
190 + TOP_PLAY,
191 + TOP_PLAYING,
192 + TOP_PROGRESS,
193 + TOP_RATE_CHANGE,
194 + TOP_SEEKED,
195 + TOP_SEEKING,
196 + TOP_STALLED,
197 + TOP_SUSPEND,
198 + TOP_TIME_UPDATE,
199 + TOP_VOLUME_CHANGE,
200 + TOP_WAITING,
201 +];
202 +
203 +export function getRawEventName(topLevelType: TopLevelType): string {
204 + return topLevelType;
205 +}
packages/react-dom/src/events/EnterLeaveEventPlugin.js
+6 -5
@@ -7,6 +7,7 @@
7
8 import {accumulateEnterLeaveDispatches} from 'events/EventPropagators';
9
10 +import {TOP_MOUSE_OUT, TOP_MOUSE_OVER} from './DOMTopLevelEventTypes';
11 import SyntheticMouseEvent from './SyntheticMouseEvent';
12 import {
13 getClosestInstanceFromNode,
@@ -16,11 +17,11 @@ import {
17 const eventTypes = {
18 mouseEnter: {
19 registrationName: 'onMouseEnter',
19 - dependencies: ['topMouseOut', 'topMouseOver'],
20 + dependencies: [TOP_MOUSE_OUT, TOP_MOUSE_OVER],
21 },
22 mouseLeave: {
23 registrationName: 'onMouseLeave',
23 - dependencies: ['topMouseOut', 'topMouseOver'],
24 + dependencies: [TOP_MOUSE_OUT, TOP_MOUSE_OVER],
25 },
26 };
27
@@ -41,12 +42,12 @@ const EnterLeaveEventPlugin = {
42 nativeEventTarget,
43 ) {
44 if (
44 - topLevelType === 'topMouseOver' &&
45 + topLevelType === TOP_MOUSE_OVER &&
46 (nativeEvent.relatedTarget || nativeEvent.fromElement)
47 ) {
48 return null;
49 }
49 - if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') {
50 + if (topLevelType !== TOP_MOUSE_OUT && topLevelType !== TOP_MOUSE_OVER) {
51 // Must not be a mouse in or mouse out - ignoring.
52 return null;
53 }
@@ -67,7 +68,7 @@ const EnterLeaveEventPlugin = {
68
69 let from;
70 let to;
70 - if (topLevelType === 'topMouseOut') {
71 + if (topLevelType === TOP_MOUSE_OUT) {
72 from = targetInst;
73 const related = nativeEvent.relatedTarget || nativeEvent.toElement;
74 to = related ? getClosestInstanceFromNode(related) : null;
packages/react-dom/src/events/EventListener.js
+2 -2
@@ -8,7 +8,7 @@
8 */
9
10 export function addEventBubbleListener(
11 - element: Element,
11 + element: Document | Element,
12 eventType: string,
13 listener: Function,
14 ): void {
@@ -16,7 +16,7 @@ export function addEventBubbleListener(
16 }
17
18 export function addEventCaptureListener(
19 - element: Element,
19 + element: Document | Element,
20 eventType: string,
21 listener: Function,
22 ): void {
packages/react-dom/src/events/ReactBrowserEventEmitter.js
+34 -21
@@ -3,9 +3,18 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 + *
7 + * @flow
8 */
9
10 import {registrationNameDependencies} from 'events/EventPluginRegistry';
11 +import {
12 + TOP_BLUR,
13 + TOP_CANCEL,
14 + TOP_CLOSE,
15 + TOP_FOCUS,
16 + TOP_SCROLL,
17 +} from './DOMTopLevelEventTypes';
18 import {
19 setEnabled,
20 isEnabled,
@@ -13,7 +22,6 @@ import {
22 trapCapturedEvent,
23 } from './ReactDOMEventListener';
24 import isEventSupported from './isEventSupported';
16 -import {topLevelTypes} from './BrowserEventConstants';
25
26 /**
27 * Summary of `ReactBrowserEventEmitter` event handling:
@@ -79,7 +87,7 @@ let reactTopListenersCounter = 0;
87 */
88 const topListenersIDKey = '_reactListenersID' + ('' + Math.random()).slice(2);
89
82 -function getListeningForDocument(mountAt) {
90 +function getListeningForDocument(mountAt: any) {
91 // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`
92 // directly.
93 if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {
@@ -108,37 +116,39 @@ function getListeningForDocument(mountAt) {
116 * they bubble to document.
117 *
118 * @param {string} registrationName Name of listener (e.g. `onClick`).
111 - * @param {object} contentDocumentHandle Document which owns the container
119 + * @param {object} mountAt Container where to mount the listener
120 */
113 -export function listenTo(registrationName, contentDocumentHandle) {
114 - const mountAt = contentDocumentHandle;
121 +export function listenTo(
122 + registrationName: string,
123 + mountAt: Document | Element,
124 +) {
125 const isListening = getListeningForDocument(mountAt);
126 const dependencies = registrationNameDependencies[registrationName];
127
128 for (let i = 0; i < dependencies.length; i++) {
129 const dependency = dependencies[i];
130 if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {
121 - if (dependency === 'topScroll') {
122 - trapCapturedEvent('topScroll', 'scroll', mountAt);
123 - } else if (dependency === 'topFocus' || dependency === 'topBlur') {
124 - trapCapturedEvent('topFocus', 'focus', mountAt);
125 - trapCapturedEvent('topBlur', 'blur', mountAt);
131 + if (dependency === TOP_SCROLL) {
132 + trapCapturedEvent(TOP_SCROLL, mountAt);
133 + } else if (dependency === TOP_FOCUS || dependency === TOP_BLUR) {
134 + trapCapturedEvent(TOP_FOCUS, mountAt);
135 + trapCapturedEvent(TOP_BLUR, mountAt);
136
137 // to make sure blur and focus event listeners are only attached once
128 - isListening.topBlur = true;
129 - isListening.topFocus = true;
130 - } else if (dependency === 'topCancel') {
138 + isListening[TOP_BLUR] = true;
139 + isListening[TOP_FOCUS] = true;
140 + } else if (dependency === TOP_CANCEL) {
141 if (isEventSupported('cancel', true)) {
132 - trapCapturedEvent('topCancel', 'cancel', mountAt);
142 + trapCapturedEvent(TOP_CANCEL, mountAt);
143 }
134 - isListening.topCancel = true;
135 - } else if (dependency === 'topClose') {
144 + isListening[TOP_CANCEL] = true;
145 + } else if (dependency === TOP_CLOSE) {
146 if (isEventSupported('close', true)) {
137 - trapCapturedEvent('topClose', 'close', mountAt);
147 + trapCapturedEvent(TOP_CLOSE, mountAt);
148 }
139 - isListening.topClose = true;
140 - } else if (topLevelTypes.hasOwnProperty(dependency)) {
141 - trapBubbledEvent(dependency, topLevelTypes[dependency], mountAt);
149 + isListening[TOP_CLOSE] = true;
150 + } else {
151 + trapBubbledEvent(dependency, mountAt);
152 }
153
154 isListening[dependency] = true;
@@ -146,7 +156,10 @@ export function listenTo(registrationName, contentDocumentHandle) {
156 }
157 }
158
149 -export function isListeningToAllDependencies(registrationName, mountAt) {
159 +export function isListeningToAllDependencies(
160 + registrationName: string,
161 + mountAt: Document | Element,
162 +) {
163 const isListening = getListeningForDocument(mountAt);
164 const dependencies = registrationNameDependencies[registrationName];
165 for (let i = 0; i < dependencies.length; i++) {
packages/react-dom/src/events/ReactDOMEventListener.js
+33 -11
@@ -3,17 +3,23 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 + *
7 + * @flow
8 */
9
10 import {batchedUpdates, interactiveUpdates} from 'events/ReactGenericBatching';
11 import {runExtractedEventsInBatch} from 'events/EventPluginHub';
12 import {isFiberMounted} from 'react-reconciler/reflection';
13 import {HostRoot} from 'shared/ReactTypeOfWork';
14 +import type {AnyNativeEvent} from 'events/PluginModuleType';
15 +import type {TopLevelType} from 'events/TopLevelEventTypes';
16 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
17
18 import {addEventBubbleListener, addEventCaptureListener} from './EventListener';
19 import getEventTarget from './getEventTarget';
20 import {getClosestInstanceFromNode} from '../client/ReactDOMComponentTree';
21 import SimpleEventPlugin from './SimpleEventPlugin';
22 +import {getRawEventName} from './DOMTopLevelEventTypes';
23
24 const {isInteractiveTopLevelEventType} = SimpleEventPlugin;
25
@@ -40,7 +46,16 @@ function findRootContainerNode(inst) {
46 }
47
48 // Used to store ancestor hierarchy in top level callback
43 -function getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst) {
49 +function getTopLevelCallbackBookKeeping(
50 + topLevelType,
51 + nativeEvent,
52 + targetInst,
53 +): {
54 + topLevelType: ?TopLevelType,
55 + nativeEvent: ?AnyNativeEvent,
56 + targetInst: Fiber,
57 + ancestors: Array<Fiber>,
58 +} {
59 if (callbackBookkeepingPool.length) {
60 const instance = callbackBookkeepingPool.pop();
61 instance.topLevelType = topLevelType;
@@ -101,7 +116,7 @@ function handleTopLevel(bookKeeping) {
116 // TODO: can we stop exporting these?
117 export let _enabled = true;
118
104 -export function setEnabled(enabled) {
119 +export function setEnabled(enabled: ?boolean) {
120 _enabled = !!enabled;
121 }
122
@@ -112,14 +127,16 @@ export function isEnabled() {
127 /**
128 * Traps top-level events by using event bubbling.
129 *
115 - * @param {string} topLevelType Record from `BrowserEventConstants`.
116 - * @param {string} handlerBaseName Event name (e.g. "click").
130 + * @param {number} topLevelType Number from `TopLevelEventTypes`.
131 * @param {object} element Element on which to attach listener.
132 * @return {?object} An object with a remove function which will forcefully
133 * remove the listener.
134 * @internal
135 */
122 -export function trapBubbledEvent(topLevelType, handlerBaseName, element) {
136 +export function trapBubbledEvent(
137 + topLevelType: TopLevelType,
138 + element: Document | Element,
139 +) {
140 if (!element) {
141 return null;
142 }
@@ -129,7 +146,7 @@ export function trapBubbledEvent(topLevelType, handlerBaseName, element) {
146
147 addEventBubbleListener(
148 element,
132 - handlerBaseName,
149 + getRawEventName(topLevelType),
150 // Check if interactive and wrap in interactiveUpdates
151 dispatch.bind(null, topLevelType),
152 );
@@ -138,14 +155,16 @@ export function trapBubbledEvent(topLevelType, handlerBaseName, element) {
155 /**
156 * Traps a top-level event by using event capturing.
157 *
141 - * @param {string} topLevelType Record from `BrowserEventConstants`.
142 - * @param {string} handlerBaseName Event name (e.g. "click").
158 + * @param {number} topLevelType Number from `TopLevelEventTypes`.
159 * @param {object} element Element on which to attach listener.
160 * @return {?object} An object with a remove function which will forcefully
161 * remove the listener.
162 * @internal
163 */
148 -export function trapCapturedEvent(topLevelType, handlerBaseName, element) {
164 +export function trapCapturedEvent(
165 + topLevelType: TopLevelType,
166 + element: Document | Element,
167 +) {
168 if (!element) {
169 return null;
170 }
@@ -155,7 +174,7 @@ export function trapCapturedEvent(topLevelType, handlerBaseName, element) {
174
175 addEventCaptureListener(
176 element,
158 - handlerBaseName,
177 + getRawEventName(topLevelType),
178 // Check if interactive and wrap in interactiveUpdates
179 dispatch.bind(null, topLevelType),
180 );
@@ -165,7 +184,10 @@ function dispatchInteractiveEvent(topLevelType, nativeEvent) {
184 interactiveUpdates(dispatchEvent, topLevelType, nativeEvent);
185 }
186
168 -export function dispatchEvent(topLevelType, nativeEvent) {
187 +export function dispatchEvent(
188 + topLevelType: TopLevelType,
189 + nativeEvent: AnyNativeEvent,
190 +) {
191 if (!_enabled) {
192 return;
193 }
packages/react-dom/src/events/SelectEventPlugin.js
+26 -16
@@ -12,6 +12,16 @@ import isTextInputElement from 'shared/isTextInputElement';
12 import getActiveElement from 'fbjs/lib/getActiveElement';
13 import shallowEqual from 'fbjs/lib/shallowEqual';
14
15 +import {
16 + TOP_BLUR,
17 + TOP_CONTEXT_MENU,
18 + TOP_FOCUS,
19 + TOP_KEY_DOWN,
20 + TOP_KEY_UP,
21 + TOP_MOUSE_DOWN,
22 + TOP_MOUSE_UP,
23 + TOP_SELECTION_CHANGE,
24 +} from './DOMTopLevelEventTypes';
25 import {isListeningToAllDependencies} from './ReactBrowserEventEmitter';
26 import {getNodeFromInstance} from '../client/ReactDOMComponentTree';
27 import * as ReactInputSelection from '../client/ReactInputSelection';
@@ -29,14 +39,14 @@ const eventTypes = {
39 captured: 'onSelectCapture',
40 },
41 dependencies: [
32 - 'topBlur',
33 - 'topContextMenu',
34 - 'topFocus',
35 - 'topKeyDown',
36 - 'topKeyUp',
37 - 'topMouseDown',
38 - 'topMouseUp',
39 - 'topSelectionChange',
42 + TOP_BLUR,
43 + TOP_CONTEXT_MENU,
44 + TOP_FOCUS,
45 + TOP_KEY_DOWN,
46 + TOP_KEY_UP,
47 + TOP_MOUSE_DOWN,
48 + TOP_MOUSE_UP,
49 + TOP_SELECTION_CHANGE,
50 ],
51 },
52 };
@@ -156,7 +166,7 @@ const SelectEventPlugin = {
166
167 switch (topLevelType) {
168 // Track the input node that has focus.
159 - case 'topFocus':
169 + case TOP_FOCUS:
170 if (
171 isTextInputElement(targetNode) ||
172 targetNode.contentEditable === 'true'
@@ -166,18 +176,18 @@ const SelectEventPlugin = {
176 lastSelection = null;
177 }
178 break;
169 - case 'topBlur':
179 + case TOP_BLUR:
180 activeElement = null;
181 activeElementInst = null;
182 lastSelection = null;
183 break;
184 // Don't fire the event while the user is dragging. This matches the
185 // semantics of the native select event.
176 - case 'topMouseDown':
186 + case TOP_MOUSE_DOWN:
187 mouseDown = true;
188 break;
179 - case 'topContextMenu':
180 - case 'topMouseUp':
189 + case TOP_CONTEXT_MENU:
190 + case TOP_MOUSE_UP:
191 mouseDown = false;
192 return constructSelectEvent(nativeEvent, nativeEventTarget);
193 // Chrome and IE fire non-standard event when selection is changed (and
@@ -189,13 +199,13 @@ const SelectEventPlugin = {
199 // keyup, but we check on keydown as well in the case of holding down a
200 // key, when multiple keydown events are fired but only one keyup is.
201 // This is also our approach for IE handling, for the reason above.
192 - case 'topSelectionChange':
202 + case TOP_SELECTION_CHANGE:
203 if (skipSelectionChangeEvent) {
204 break;
205 }
206 // falls through
197 - case 'topKeyDown':
198 - case 'topKeyUp':
207 + case TOP_KEY_DOWN:
208 + case TOP_KEY_UP:
209 return constructSelectEvent(nativeEvent, nativeEventTarget);
210 }
211
packages/react-dom/src/events/SimpleEventPlugin.js
+155 -148
@@ -7,7 +7,7 @@
7 * @flow
8 */
9
10 -import type {TopLevelTypes} from './BrowserEventConstants';
10 +import type {TopLevelType} from 'events/TopLevelEventTypes';
11 import type {
12 DispatchConfig,
13 ReactSyntheticEvent,
@@ -17,6 +17,8 @@ import type {EventTypes, PluginModule} from 'events/PluginModuleType';
17
18 import {accumulateTwoPhaseDispatches} from 'events/EventPropagators';
19 import SyntheticEvent from 'events/SyntheticEvent';
20 +
21 +import * as DOMTopLevelEventTypes from './DOMTopLevelEventTypes';
22 import warning from 'fbjs/lib/warning';
23
24 import SyntheticAnimationEvent from './SyntheticAnimationEvent';
@@ -41,93 +43,96 @@ import getEventCharCode from './getEventCharCode';
43 * bubbled: 'onAbort',
44 * captured: 'onAbortCapture',
45 * },
44 - * dependencies: ['topAbort'],
46 + * dependencies: [TOP_ABORT],
47 * },
48 * ...
49 * };
48 - * topLevelEventsToDispatchConfig = {
49 - * 'topAbort': { sameConfig }
50 - * };
50 + * topLevelEventsToDispatchConfig = new Map([
51 + * [TOP_ABORT, { sameConfig }],
52 + * ]);
53 */
52 -const interactiveEventTypeNames: Array<string> = [
53 - 'blur',
54 - 'cancel',
55 - 'click',
56 - 'close',
57 - 'contextMenu',
58 - 'copy',
59 - 'cut',
60 - 'doubleClick',
61 - 'dragEnd',
62 - 'dragStart',
63 - 'drop',
64 - 'focus',
65 - 'input',
66 - 'invalid',
67 - 'keyDown',
68 - 'keyPress',
69 - 'keyUp',
70 - 'mouseDown',
71 - 'mouseUp',
72 - 'paste',
73 - 'pause',
74 - 'play',
75 - 'rateChange',
76 - 'reset',
77 - 'seeked',
78 - 'submit',
79 - 'touchCancel',
80 - 'touchEnd',
81 - 'touchStart',
82 - 'volumeChange',
54 +type EventTuple = [TopLevelType, string];
55 +const interactiveEventTypeNames: Array<EventTuple> = [
56 + [DOMTopLevelEventTypes.TOP_BLUR, 'blur'],
57 + [DOMTopLevelEventTypes.TOP_CANCEL, 'cancel'],
58 + [DOMTopLevelEventTypes.TOP_CLICK, 'click'],
59 + [DOMTopLevelEventTypes.TOP_CLOSE, 'close'],
60 + [DOMTopLevelEventTypes.TOP_CONTEXT_MENU, 'contextMenu'],
61 + [DOMTopLevelEventTypes.TOP_COPY, 'copy'],
62 + [DOMTopLevelEventTypes.TOP_CUT, 'cut'],
63 + [DOMTopLevelEventTypes.TOP_DOUBLE_CLICK, 'doubleClick'],
64 + [DOMTopLevelEventTypes.TOP_DRAG_END, 'dragEnd'],
65 + [DOMTopLevelEventTypes.TOP_DRAG_START, 'dragStart'],
66 + [DOMTopLevelEventTypes.TOP_DROP, 'drop'],
67 + [DOMTopLevelEventTypes.TOP_FOCUS, 'focus'],
68 + [DOMTopLevelEventTypes.TOP_INPUT, 'input'],
69 + [DOMTopLevelEventTypes.TOP_INVALID, 'invalid'],
70 + [DOMTopLevelEventTypes.TOP_KEY_DOWN, 'keyDown'],
71 + [DOMTopLevelEventTypes.TOP_KEY_PRESS, 'keyPress'],
72 + [DOMTopLevelEventTypes.TOP_KEY_UP, 'keyUp'],
73 + [DOMTopLevelEventTypes.TOP_MOUSE_DOWN, 'mouseDown'],
74 + [DOMTopLevelEventTypes.TOP_MOUSE_UP, 'mouseUp'],
75 + [DOMTopLevelEventTypes.TOP_PASTE, 'paste'],
76 + [DOMTopLevelEventTypes.TOP_PAUSE, 'pause'],
77 + [DOMTopLevelEventTypes.TOP_PLAY, 'play'],
78 + [DOMTopLevelEventTypes.TOP_RATE_CHANGE, 'rateChange'],
79 + [DOMTopLevelEventTypes.TOP_RESET, 'reset'],
80 + [DOMTopLevelEventTypes.TOP_SEEKED, 'seeked'],
81 + [DOMTopLevelEventTypes.TOP_SUBMIT, 'submit'],
82 + [DOMTopLevelEventTypes.TOP_TOUCH_CANCEL, 'touchCancel'],
83 + [DOMTopLevelEventTypes.TOP_TOUCH_END, 'touchEnd'],
84 + [DOMTopLevelEventTypes.TOP_TOUCH_START, 'touchStart'],
85 + [DOMTopLevelEventTypes.TOP_VOLUME_CHANGE, 'volumeChange'],
86 ];
84 -const nonInteractiveEventTypeNames: Array<string> = [
85 - 'abort',
86 - 'animationEnd',
87 - 'animationIteration',
88 - 'animationStart',
89 - 'canPlay',
90 - 'canPlayThrough',
91 - 'drag',
92 - 'dragEnter',
93 - 'dragExit',
94 - 'dragLeave',
95 - 'dragOver',
96 - 'durationChange',
97 - 'emptied',
98 - 'encrypted',
99 - 'ended',
100 - 'error',
101 - 'load',
102 - 'loadedData',
103 - 'loadedMetadata',
104 - 'loadStart',
105 - 'mouseMove',
106 - 'mouseOut',
107 - 'mouseOver',
108 - 'playing',
109 - 'progress',
110 - 'scroll',
111 - 'seeking',
112 - 'stalled',
113 - 'suspend',
114 - 'timeUpdate',
115 - 'toggle',
116 - 'touchMove',
117 - 'transitionEnd',
118 - 'waiting',
119 - 'wheel',
87 +const nonInteractiveEventTypeNames: Array<EventTuple> = [
88 + [DOMTopLevelEventTypes.TOP_ABORT, 'abort'],
89 + [DOMTopLevelEventTypes.TOP_ANIMATION_END, 'animationEnd'],
90 + [DOMTopLevelEventTypes.TOP_ANIMATION_ITERATION, 'animationIteration'],
91 + [DOMTopLevelEventTypes.TOP_ANIMATION_START, 'animationStart'],
92 + [DOMTopLevelEventTypes.TOP_CAN_PLAY, 'canPlay'],
93 + [DOMTopLevelEventTypes.TOP_CAN_PLAY_THROUGH, 'canPlayThrough'],
94 + [DOMTopLevelEventTypes.TOP_DRAG, 'drag'],
95 + [DOMTopLevelEventTypes.TOP_DRAG_ENTER, 'dragEnter'],
96 + [DOMTopLevelEventTypes.TOP_DRAG_EXIT, 'dragExit'],
97 + [DOMTopLevelEventTypes.TOP_DRAG_LEAVE, 'dragLeave'],
98 + [DOMTopLevelEventTypes.TOP_DRAG_OVER, 'dragOver'],
99 + [DOMTopLevelEventTypes.TOP_DURATION_CHANGE, 'durationChange'],
100 + [DOMTopLevelEventTypes.TOP_EMPTIED, 'emptied'],
101 + [DOMTopLevelEventTypes.TOP_ENCRYPTED, 'encrypted'],
102 + [DOMTopLevelEventTypes.TOP_ENDED, 'ended'],
103 + [DOMTopLevelEventTypes.TOP_ERROR, 'error'],
104 + [DOMTopLevelEventTypes.TOP_LOAD, 'load'],
105 + [DOMTopLevelEventTypes.TOP_LOADED_DATA, 'loadedData'],
106 + [DOMTopLevelEventTypes.TOP_LOADED_METADATA, 'loadedMetadata'],
107 + [DOMTopLevelEventTypes.TOP_LOAD_START, 'loadStart'],
108 + [DOMTopLevelEventTypes.TOP_MOUSE_MOVE, 'mouseMove'],
109 + [DOMTopLevelEventTypes.TOP_MOUSE_OUT, 'mouseOut'],
110 + [DOMTopLevelEventTypes.TOP_MOUSE_OVER, 'mouseOver'],
111 + [DOMTopLevelEventTypes.TOP_PLAYING, 'playing'],
112 + [DOMTopLevelEventTypes.TOP_PROGRESS, 'progress'],
113 + [DOMTopLevelEventTypes.TOP_SCROLL, 'scroll'],
114 + [DOMTopLevelEventTypes.TOP_SEEKING, 'seeking'],
115 + [DOMTopLevelEventTypes.TOP_STALLED, 'stalled'],
116 + [DOMTopLevelEventTypes.TOP_SUSPEND, 'suspend'],
117 + [DOMTopLevelEventTypes.TOP_TIME_UPDATE, 'timeUpdate'],
118 + [DOMTopLevelEventTypes.TOP_TOGGLE, 'toggle'],
119 + [DOMTopLevelEventTypes.TOP_TOUCH_MOVE, 'touchMove'],
120 + [DOMTopLevelEventTypes.TOP_TRANSITION_END, 'transitionEnd'],
121 + [DOMTopLevelEventTypes.TOP_WAITING, 'waiting'],
122 + [DOMTopLevelEventTypes.TOP_WHEEL, 'wheel'],
123 ];
124
125 const eventTypes: EventTypes = {};
126 const topLevelEventsToDispatchConfig: {
124 - [key: TopLevelTypes]: DispatchConfig,
127 + [key: TopLevelType]: DispatchConfig,
128 } = {};
129
127 -function addEventTypeNameToConfig(event: string, isInteractive: boolean) {
130 +function addEventTypeNameToConfig(
131 + [topEvent, event]: EventTuple,
132 + isInteractive: boolean,
133 +) {
134 const capitalizedEvent = event[0].toUpperCase() + event.slice(1);
135 const onEvent = 'on' + capitalizedEvent;
130 - const topEvent = 'top' + capitalizedEvent;
136
137 const type = {
138 phasedRegistrationNames: {
@@ -141,58 +146,60 @@ function addEventTypeNameToConfig(event: string, isInteractive: boolean) {
146 topLevelEventsToDispatchConfig[topEvent] = type;
147 }
148
144 -interactiveEventTypeNames.forEach(eventTypeName => {
145 - addEventTypeNameToConfig(eventTypeName, true);
149 +interactiveEventTypeNames.forEach(eventTuple => {
150 + addEventTypeNameToConfig(eventTuple, true);
151 });
147 -nonInteractiveEventTypeNames.forEach(eventTypeName => {
148 - addEventTypeNameToConfig(eventTypeName, false);
152 +nonInteractiveEventTypeNames.forEach(eventTuple => {
153 + addEventTypeNameToConfig(eventTuple, false);
154 });
155
156 // Only used in DEV for exhaustiveness validation.
152 -const knownHTMLTopLevelTypes = [
153 - 'topAbort',
154 - 'topCancel',
155 - 'topCanPlay',
156 - 'topCanPlayThrough',
157 - 'topClose',
158 - 'topDurationChange',
159 - 'topEmptied',
160 - 'topEncrypted',
161 - 'topEnded',
162 - 'topError',
163 - 'topInput',
164 - 'topInvalid',
165 - 'topLoad',
166 - 'topLoadedData',
167 - 'topLoadedMetadata',
168 - 'topLoadStart',
169 - 'topPause',
170 - 'topPlay',
171 - 'topPlaying',
172 - 'topProgress',
173 - 'topRateChange',
174 - 'topReset',
175 - 'topSeeked',
176 - 'topSeeking',
177 - 'topStalled',
178 - 'topSubmit',
179 - 'topSuspend',
180 - 'topTimeUpdate',
181 - 'topToggle',
182 - 'topVolumeChange',
183 - 'topWaiting',
157 +const knownHTMLTopLevelTypes: Array<TopLevelType> = [
158 + DOMTopLevelEventTypes.TOP_ABORT,
159 + DOMTopLevelEventTypes.TOP_CANCEL,
160 + DOMTopLevelEventTypes.TOP_CAN_PLAY,
161 + DOMTopLevelEventTypes.TOP_CAN_PLAY_THROUGH,
162 + DOMTopLevelEventTypes.TOP_CLOSE,
163 + DOMTopLevelEventTypes.TOP_DURATION_CHANGE,
164 + DOMTopLevelEventTypes.TOP_EMPTIED,
165 + DOMTopLevelEventTypes.TOP_ENCRYPTED,
166 + DOMTopLevelEventTypes.TOP_ENDED,
167 + DOMTopLevelEventTypes.TOP_ERROR,
168 + DOMTopLevelEventTypes.TOP_INPUT,
169 + DOMTopLevelEventTypes.TOP_INVALID,
170 + DOMTopLevelEventTypes.TOP_LOAD,
171 + DOMTopLevelEventTypes.TOP_LOADED_DATA,
172 + DOMTopLevelEventTypes.TOP_LOADED_METADATA,
173 + DOMTopLevelEventTypes.TOP_LOAD_START,
174 + DOMTopLevelEventTypes.TOP_PAUSE,
175 + DOMTopLevelEventTypes.TOP_PLAY,
176 + DOMTopLevelEventTypes.TOP_PLAYING,
177 + DOMTopLevelEventTypes.TOP_PROGRESS,
178 + DOMTopLevelEventTypes.TOP_RATE_CHANGE,
179 + DOMTopLevelEventTypes.TOP_RESET,
180 + DOMTopLevelEventTypes.TOP_SEEKED,
181 + DOMTopLevelEventTypes.TOP_SEEKING,
182 + DOMTopLevelEventTypes.TOP_STALLED,
183 + DOMTopLevelEventTypes.TOP_SUBMIT,
184 + DOMTopLevelEventTypes.TOP_SUSPEND,
185 + DOMTopLevelEventTypes.TOP_TIME_UPDATE,
186 + DOMTopLevelEventTypes.TOP_TOGGLE,
187 + DOMTopLevelEventTypes.TOP_VOLUME_CHANGE,
188 + DOMTopLevelEventTypes.TOP_WAITING,
189 ];
190
186 -const SimpleEventPlugin: PluginModule<MouseEvent> = {
191 +const SimpleEventPlugin: PluginModule<MouseEvent> & {
192 + isInteractiveTopLevelEventType: (topLevelType: TopLevelType) => boolean,
193 +} = {
194 eventTypes: eventTypes,
195
189 - isInteractiveTopLevelEventType(topLevelType: TopLevelTypes): boolean {
196 + isInteractiveTopLevelEventType(topLevelType: TopLevelType): boolean {
197 const config = topLevelEventsToDispatchConfig[topLevelType];
198 return config !== undefined && config.isInteractive === true;
199 },
200
201 extractEvents: function(
195 - topLevelType: TopLevelTypes,
202 + topLevelType: TopLevelType,
203 targetInst: Fiber,
204 nativeEvent: MouseEvent,
205 nativeEventTarget: EventTarget,
@@ -203,7 +210,7 @@ const SimpleEventPlugin: PluginModule<MouseEvent> = {
210 }
211 let EventConstructor;
212 switch (topLevelType) {
206 - case 'topKeyPress':
213 + case DOMTopLevelEventTypes.TOP_KEY_PRESS:
214 // Firefox creates a keypress event for function keys too. This removes
215 // the unwanted keypress events. Enter is however both printable and
216 // non-printable. One would expect Tab to be as well (but it isn't).
@@ -211,65 +218,65 @@ const SimpleEventPlugin: PluginModule<MouseEvent> = {
218 return null;
219 }
220 /* falls through */
214 - case 'topKeyDown':
215 - case 'topKeyUp':
221 + case DOMTopLevelEventTypes.TOP_KEY_DOWN:
222 + case DOMTopLevelEventTypes.TOP_KEY_UP:
223 EventConstructor = SyntheticKeyboardEvent;
224 break;
218 - case 'topBlur':
219 - case 'topFocus':
225 + case DOMTopLevelEventTypes.TOP_BLUR:
226 + case DOMTopLevelEventTypes.TOP_FOCUS:
227 EventConstructor = SyntheticFocusEvent;
228 break;
222 - case 'topClick':
229 + case DOMTopLevelEventTypes.TOP_CLICK:
230 // Firefox creates a click event on right mouse clicks. This removes the
231 // unwanted click events.
232 if (nativeEvent.button === 2) {
233 return null;
234 }
235 /* falls through */
229 - case 'topDoubleClick':
230 - case 'topMouseDown':
231 - case 'topMouseMove':
232 - case 'topMouseUp':
236 + case DOMTopLevelEventTypes.TOP_DOUBLE_CLICK:
237 + case DOMTopLevelEventTypes.TOP_MOUSE_DOWN:
238 + case DOMTopLevelEventTypes.TOP_MOUSE_MOVE:
239 + case DOMTopLevelEventTypes.TOP_MOUSE_UP:
240 // TODO: Disabled elements should not respond to mouse events
241 /* falls through */
235 - case 'topMouseOut':
236 - case 'topMouseOver':
237 - case 'topContextMenu':
242 + case DOMTopLevelEventTypes.TOP_MOUSE_OUT:
243 + case DOMTopLevelEventTypes.TOP_MOUSE_OVER:
244 + case DOMTopLevelEventTypes.TOP_CONTEXT_MENU:
245 EventConstructor = SyntheticMouseEvent;
246 break;
240 - case 'topDrag':
241 - case 'topDragEnd':
242 - case 'topDragEnter':
243 - case 'topDragExit':
244 - case 'topDragLeave':
245 - case 'topDragOver':
246 - case 'topDragStart':
247 - case 'topDrop':
247 + case DOMTopLevelEventTypes.TOP_DRAG:
248 + case DOMTopLevelEventTypes.TOP_DRAG_END:
249 + case DOMTopLevelEventTypes.TOP_DRAG_ENTER:
250 + case DOMTopLevelEventTypes.TOP_DRAG_EXIT:
251 + case DOMTopLevelEventTypes.TOP_DRAG_LEAVE:
252 + case DOMTopLevelEventTypes.TOP_DRAG_OVER:
253 + case DOMTopLevelEventTypes.TOP_DRAG_START:
254 + case DOMTopLevelEventTypes.TOP_DROP:
255 EventConstructor = SyntheticDragEvent;
256 break;
250 - case 'topTouchCancel':
251 - case 'topTouchEnd':
252 - case 'topTouchMove':
253 - case 'topTouchStart':
257 + case DOMTopLevelEventTypes.TOP_TOUCH_CANCEL:
258 + case DOMTopLevelEventTypes.TOP_TOUCH_END:
259 + case DOMTopLevelEventTypes.TOP_TOUCH_MOVE:
260 + case DOMTopLevelEventTypes.TOP_TOUCH_START:
261 EventConstructor = SyntheticTouchEvent;
262 break;
256 - case 'topAnimationEnd':
257 - case 'topAnimationIteration':
258 - case 'topAnimationStart':
263 + case DOMTopLevelEventTypes.TOP_ANIMATION_END:
264 + case DOMTopLevelEventTypes.TOP_ANIMATION_ITERATION:
265 + case DOMTopLevelEventTypes.TOP_ANIMATION_START:
266 EventConstructor = SyntheticAnimationEvent;
267 break;
261 - case 'topTransitionEnd':
268 + case DOMTopLevelEventTypes.TOP_TRANSITION_END:
269 EventConstructor = SyntheticTransitionEvent;
270 break;
264 - case 'topScroll':
271 + case DOMTopLevelEventTypes.TOP_SCROLL:
272 EventConstructor = SyntheticUIEvent;
273 break;
267 - case 'topWheel':
274 + case DOMTopLevelEventTypes.TOP_WHEEL:
275 EventConstructor = SyntheticWheelEvent;
276 break;
270 - case 'topCopy':
271 - case 'topCut':
272 - case 'topPaste':
277 + case DOMTopLevelEventTypes.TOP_COPY:
278 + case DOMTopLevelEventTypes.TOP_CUT:
279 + case DOMTopLevelEventTypes.TOP_PASTE:
280 EventConstructor = SyntheticClipboardEvent;
281 break;
282 default:
packages/react-dom/src/events/TapEventPlugin.js
+29 -8
@@ -7,12 +7,33 @@
7 * @flow
8 */
9
10 -import {isStartish, isEndish} from 'events/EventPluginUtils';
10 import {accumulateTwoPhaseDispatches} from 'events/EventPropagators';
11 import TouchEventUtils from 'fbjs/lib/TouchEventUtils';
13 -
12 +import type {TopLevelType} from 'events/TopLevelEventTypes';
13 +
14 +import {
15 + TOP_MOUSE_DOWN,
16 + TOP_MOUSE_MOVE,
17 + TOP_MOUSE_UP,
18 + TOP_TOUCH_CANCEL,
19 + TOP_TOUCH_END,
20 + TOP_TOUCH_MOVE,
21 + TOP_TOUCH_START,
22 +} from './DOMTopLevelEventTypes';
23 import SyntheticUIEvent from './SyntheticUIEvent';
24
25 +function isStartish(topLevelType) {
26 + return topLevelType === TOP_MOUSE_DOWN || topLevelType === TOP_TOUCH_START;
27 +}
28 +
29 +function isEndish(topLevelType) {
30 + return (
31 + topLevelType === TOP_MOUSE_UP ||
32 + topLevelType === TOP_TOUCH_END ||
33 + topLevelType === TOP_TOUCH_CANCEL
34 + );
35 +}
36 +
37 /**
38 * We are extending the Flow 'Touch' declaration to enable using bracket
39 * notation to access properties.
@@ -75,13 +96,13 @@ function getDistance(coords: CoordinatesType, nativeEvent: _Touch): number {
96 }
97
98 const touchEvents = [
78 - 'topTouchStart',
79 - 'topTouchCancel',
80 - 'topTouchEnd',
81 - 'topTouchMove',
99 + TOP_TOUCH_START,
100 + TOP_TOUCH_CANCEL,
101 + TOP_TOUCH_END,
102 + TOP_TOUCH_MOVE,
103 ];
104
84 -const dependencies = ['topMouseDown', 'topMouseMove', 'topMouseUp'].concat(
105 +const dependencies = [TOP_MOUSE_DOWN, TOP_MOUSE_MOVE, TOP_MOUSE_UP].concat(
106 touchEvents,
107 );
108
@@ -105,7 +126,7 @@ const TapEventPlugin = {
126 eventTypes: eventTypes,
127
128 extractEvents: function(
108 - topLevelType: mixed,
129 + topLevelType: TopLevelType,
130 targetInst: mixed,
131 nativeEvent: _Touch,
132 nativeEventTarget: EventTarget,
packages/react-dom/src/events/__tests__/TapEventPlugin-test.internal.js renamed
packages/react-dom/src/test-utils/ReactTestUtils.js
+106 -49
@@ -18,7 +18,7 @@ import {
18 import SyntheticEvent from 'events/SyntheticEvent';
19 import invariant from 'fbjs/lib/invariant';
20
21 -import {topLevelTypes, mediaEventTypes} from '../events/BrowserEventConstants';
21 +import * as DOMTopLevelEventTypes from '../events/DOMTopLevelEventTypes';
22
23 const {findDOMNode} = ReactDOM;
24 const {
@@ -36,6 +36,33 @@ function Event(suffix) {}
36 * @class ReactTestUtils
37 */
38
39 +/**
40 + * Simulates a top level event being dispatched from a raw event that occurred
41 + * on an `Element` node.
42 + * @param {number} topLevelType A number from `TopLevelEventTypes`
43 + * @param {!Element} node The dom to simulate an event occurring on.
44 + * @param {?Event} fakeNativeEvent Fake native event to use in SyntheticEvent.
45 + */
46 +function simulateNativeEventOnNode(topLevelType, node, fakeNativeEvent) {
47 + fakeNativeEvent.target = node;
48 + ReactDOMEventListener.dispatchEvent(topLevelType, fakeNativeEvent);
49 +}
50 +
51 +/**
52 + * Simulates a top level event being dispatched from a raw event that occurred
53 + * on the `ReactDOMComponent` `comp`.
54 + * @param {Object} topLevelType A type from `BrowserEventConstants.topLevelTypes`.
55 + * @param {!ReactDOMComponent} comp
56 + * @param {?Event} fakeNativeEvent Fake native event to use in SyntheticEvent.
57 + */
58 +function simulateNativeEventOnDOMComponent(
59 + topLevelType,
60 + comp,
61 + fakeNativeEvent,
62 +) {
63 + simulateNativeEventOnNode(topLevelType, findDOMNode(comp), fakeNativeEvent);
64 +}
65 +
66 function findAllInRenderedFiberTreeInternal(fiber, test) {
67 if (!fiber) {
68 return [];
@@ -291,37 +318,6 @@ const ReactTestUtils = {
318 return this;
319 },
320
294 - /**
295 - * Simulates a top level event being dispatched from a raw event that occurred
296 - * on an `Element` node.
297 - * @param {Object} topLevelType A type from `BrowserEventConstants.topLevelTypes`
298 - * @param {!Element} node The dom to simulate an event occurring on.
299 - * @param {?Event} fakeNativeEvent Fake native event to use in SyntheticEvent.
300 - */
301 - simulateNativeEventOnNode: function(topLevelType, node, fakeNativeEvent) {
302 - fakeNativeEvent.target = node;
303 - ReactDOMEventListener.dispatchEvent(topLevelType, fakeNativeEvent);
304 - },
305 -
306 - /**
307 - * Simulates a top level event being dispatched from a raw event that occurred
308 - * on the `ReactDOMComponent` `comp`.
309 - * @param {Object} topLevelType A type from `BrowserEventConstants.topLevelTypes`.
310 - * @param {!ReactDOMComponent} comp
311 - * @param {?Event} fakeNativeEvent Fake native event to use in SyntheticEvent.
312 - */
313 - simulateNativeEventOnDOMComponent: function(
314 - topLevelType,
315 - comp,
316 - fakeNativeEvent,
317 - ) {
318 - ReactTestUtils.simulateNativeEventOnNode(
319 - topLevelType,
320 - findDOMNode(comp),
321 - fakeNativeEvent,
322 - );
323 - },
324 -
321 nativeTouchData: function(x, y) {
322 return {
323 touches: [{pageX: x, pageY: y}],
@@ -436,20 +432,20 @@ buildSimulators();
432 * to dispatch synthetic events.
433 */
434
439 -function makeNativeSimulator(eventType) {
435 +function makeNativeSimulator(eventType, topLevelType) {
436 return function(domComponentOrNode, nativeEventData) {
437 const fakeNativeEvent = new Event(eventType);
438 Object.assign(fakeNativeEvent, nativeEventData);
439 if (ReactTestUtils.isDOMComponent(domComponentOrNode)) {
444 - ReactTestUtils.simulateNativeEventOnDOMComponent(
445 - eventType,
440 + simulateNativeEventOnDOMComponent(
441 + topLevelType,
442 domComponentOrNode,
443 fakeNativeEvent,
444 );
445 } else if (domComponentOrNode.tagName) {
446 // Will allow on actual dom nodes.
451 - ReactTestUtils.simulateNativeEventOnNode(
452 - eventType,
447 + simulateNativeEventOnNode(
448 + topLevelType,
449 domComponentOrNode,
450 fakeNativeEvent,
451 );
@@ -457,23 +453,84 @@ function makeNativeSimulator(eventType) {
453 };
454 }
455
460 -const eventKeys = [].concat(
461 - Object.keys(topLevelTypes),
462 - Object.keys(mediaEventTypes),
463 -);
464 -
465 -eventKeys.forEach(function(eventType) {
466 - // Event type is stored as 'topClick' - we transform that to 'click'
467 - const convenienceName =
468 - eventType.indexOf('top') === 0
469 - ? eventType.charAt(3).toLowerCase() + eventType.substr(4)
470 - : eventType;
456 +[
457 + [DOMTopLevelEventTypes.TOP_ABORT, 'abort'],
458 + [DOMTopLevelEventTypes.TOP_ANIMATION_END, 'animationEnd'],
459 + [DOMTopLevelEventTypes.TOP_ANIMATION_ITERATION, 'animationIteration'],
460 + [DOMTopLevelEventTypes.TOP_ANIMATION_START, 'animationStart'],
461 + [DOMTopLevelEventTypes.TOP_BLUR, 'blur'],
462 + [DOMTopLevelEventTypes.TOP_CAN_PLAY_THROUGH, 'canPlayThrough'],
463 + [DOMTopLevelEventTypes.TOP_CAN_PLAY, 'canPlay'],
464 + [DOMTopLevelEventTypes.TOP_CANCEL, 'cancel'],
465 + [DOMTopLevelEventTypes.TOP_CHANGE, 'change'],
466 + [DOMTopLevelEventTypes.TOP_CLICK, 'click'],
467 + [DOMTopLevelEventTypes.TOP_CLOSE, 'close'],
468 + [DOMTopLevelEventTypes.TOP_COMPOSITION_END, 'compositionEnd'],
469 + [DOMTopLevelEventTypes.TOP_COMPOSITION_START, 'compositionStart'],
470 + [DOMTopLevelEventTypes.TOP_COMPOSITION_UPDATE, 'compositionUpdate'],
471 + [DOMTopLevelEventTypes.TOP_CONTEXT_MENU, 'contextMenu'],
472 + [DOMTopLevelEventTypes.TOP_COPY, 'copy'],
473 + [DOMTopLevelEventTypes.TOP_CUT, 'cut'],
474 + [DOMTopLevelEventTypes.TOP_DOUBLE_CLICK, 'doubleClick'],
475 + [DOMTopLevelEventTypes.TOP_DRAG_END, 'dragEnd'],
476 + [DOMTopLevelEventTypes.TOP_DRAG_ENTER, 'dragEnter'],
477 + [DOMTopLevelEventTypes.TOP_DRAG_EXIT, 'dragExit'],
478 + [DOMTopLevelEventTypes.TOP_DRAG_LEAVE, 'dragLeave'],
479 + [DOMTopLevelEventTypes.TOP_DRAG_OVER, 'dragOver'],
480 + [DOMTopLevelEventTypes.TOP_DRAG_START, 'dragStart'],
481 + [DOMTopLevelEventTypes.TOP_DRAG, 'drag'],
482 + [DOMTopLevelEventTypes.TOP_DROP, 'drop'],
483 + [DOMTopLevelEventTypes.TOP_DURATION_CHANGE, 'durationChange'],
484 + [DOMTopLevelEventTypes.TOP_EMPTIED, 'emptied'],
485 + [DOMTopLevelEventTypes.TOP_ENCRYPTED, 'encrypted'],
486 + [DOMTopLevelEventTypes.TOP_ENDED, 'ended'],
487 + [DOMTopLevelEventTypes.TOP_ERROR, 'error'],
488 + [DOMTopLevelEventTypes.TOP_FOCUS, 'focus'],
489 + [DOMTopLevelEventTypes.TOP_INPUT, 'input'],
490 + [DOMTopLevelEventTypes.TOP_KEY_DOWN, 'keyDown'],
491 + [DOMTopLevelEventTypes.TOP_KEY_PRESS, 'keyPress'],
492 + [DOMTopLevelEventTypes.TOP_KEY_UP, 'keyUp'],
493 + [DOMTopLevelEventTypes.TOP_LOAD_START, 'loadStart'],
494 + [DOMTopLevelEventTypes.TOP_LOAD_START, 'loadStart'],
495 + [DOMTopLevelEventTypes.TOP_LOAD, 'load'],
496 + [DOMTopLevelEventTypes.TOP_LOADED_DATA, 'loadedData'],
497 + [DOMTopLevelEventTypes.TOP_LOADED_METADATA, 'loadedMetadata'],
498 + [DOMTopLevelEventTypes.TOP_MOUSE_DOWN, 'mouseDown'],
499 + [DOMTopLevelEventTypes.TOP_MOUSE_MOVE, 'mouseMove'],
500 + [DOMTopLevelEventTypes.TOP_MOUSE_OUT, 'mouseOut'],
501 + [DOMTopLevelEventTypes.TOP_MOUSE_OVER, 'mouseOver'],
502 + [DOMTopLevelEventTypes.TOP_MOUSE_UP, 'mouseUp'],
503 + [DOMTopLevelEventTypes.TOP_PASTE, 'paste'],
504 + [DOMTopLevelEventTypes.TOP_PAUSE, 'pause'],
505 + [DOMTopLevelEventTypes.TOP_PLAY, 'play'],
506 + [DOMTopLevelEventTypes.TOP_PLAYING, 'playing'],
507 + [DOMTopLevelEventTypes.TOP_PROGRESS, 'progress'],
508 + [DOMTopLevelEventTypes.TOP_RATE_CHANGE, 'rateChange'],
509 + [DOMTopLevelEventTypes.TOP_SCROLL, 'scroll'],
510 + [DOMTopLevelEventTypes.TOP_SEEKED, 'seeked'],
511 + [DOMTopLevelEventTypes.TOP_SEEKING, 'seeking'],
512 + [DOMTopLevelEventTypes.TOP_SELECTION_CHANGE, 'selectionChange'],
513 + [DOMTopLevelEventTypes.TOP_STALLED, 'stalled'],
514 + [DOMTopLevelEventTypes.TOP_SUSPEND, 'suspend'],
515 + [DOMTopLevelEventTypes.TOP_TEXT_INPUT, 'textInput'],
516 + [DOMTopLevelEventTypes.TOP_TIME_UPDATE, 'timeUpdate'],
517 + [DOMTopLevelEventTypes.TOP_TOGGLE, 'toggle'],
518 + [DOMTopLevelEventTypes.TOP_TOUCH_CANCEL, 'touchCancel'],
519 + [DOMTopLevelEventTypes.TOP_TOUCH_END, 'touchEnd'],
520 + [DOMTopLevelEventTypes.TOP_TOUCH_MOVE, 'touchMove'],
521 + [DOMTopLevelEventTypes.TOP_TOUCH_START, 'touchStart'],
522 + [DOMTopLevelEventTypes.TOP_TRANSITION_END, 'transitionEnd'],
523 + [DOMTopLevelEventTypes.TOP_VOLUME_CHANGE, 'volumeChange'],
524 + [DOMTopLevelEventTypes.TOP_WAITING, 'waiting'],
525 + [DOMTopLevelEventTypes.TOP_WHEEL, 'wheel'],
526 +].forEach(([topLevelType, eventType]) => {
527 /**
528 * @param {!Element|ReactDOMComponent} domComponentOrNode
529 * @param {?Event} nativeEventData Fake native event to use in SyntheticEvent.
530 */
475 - ReactTestUtils.SimulateNative[convenienceName] = makeNativeSimulator(
531 + ReactTestUtils.SimulateNative[eventType] = makeNativeSimulator(
532 eventType,
533 + topLevelType,
534 );
535 });
536
packages/react-native-renderer/src/ReactNativeBridgeEventPlugin.js
+2 -1
@@ -12,6 +12,7 @@ import {
12 accumulateTwoPhaseDispatches,
13 accumulateDirectDispatches,
14 } from 'events/EventPropagators';
15 +import type {TopLevelType} from 'events/TopLevelEventTypes';
16 import * as ReactNativeViewConfigRegistry from 'ReactNativeViewConfigRegistry';
17 import SyntheticEvent from 'events/SyntheticEvent';
18 import invariant from 'fbjs/lib/invariant';
@@ -29,7 +30,7 @@ const ReactNativeBridgeEventPlugin = {
30 * @see {EventPluginHub.extractEvents}
31 */
32 extractEvents: function(
32 - topLevelType: string,
33 + topLevelType: TopLevelType,
34 targetInst: Object,
35 nativeEvent: AnyNativeEvent,
36 nativeEventTarget: Object,
packages/react-native-renderer/src/ReactNativeEventEmitter.js
+4 -3
@@ -15,6 +15,7 @@ import warning from 'fbjs/lib/warning';
15 import {getInstanceFromNode} from './ReactNativeComponentTree';
16
17 import type {AnyNativeEvent} from 'events/PluginModuleType';
18 +import type {TopLevelType} from 'events/TopLevelEventTypes';
19
20 export {getListener, registrationNameModules as registrationNames};
21
@@ -88,7 +89,7 @@ const removeTouchesAtIndices = function(
89 */
90 export function _receiveRootNodeIDEvent(
91 rootNodeID: number,
91 - topLevelType: string,
92 + topLevelType: TopLevelType,
93 nativeEventParam: ?AnyNativeEvent,
94 ) {
95 const nativeEvent = nativeEventParam || EMPTY_NATIVE_EVENT;
@@ -114,7 +115,7 @@ export function _receiveRootNodeIDEvent(
115 */
116 export function receiveEvent(
117 rootNodeID: number,
117 - topLevelType: string,
118 + topLevelType: TopLevelType,
119 nativeEventParam: AnyNativeEvent,
120 ) {
121 _receiveRootNodeIDEvent(rootNodeID, topLevelType, nativeEventParam);
@@ -145,7 +146,7 @@ export function receiveEvent(
146 * identifier 0, also abandoning traditional click handlers.
147 */
148 export function receiveTouches(
148 - eventTopLevelType: string,
149 + eventTopLevelType: TopLevelType,
150 touches: Array<Object>,
151 changedIndices: Array<number>,
152 ) {
scripts/rollup/forks.js
+8
@@ -143,6 +143,14 @@ const forks = Object.freeze({
143 return null;
144 }
145 },
146 +
147 + // React DOM uses different top level event names and supports mouse events.
148 + 'events/ResponderTopLevelEventTypes': (bundleType, entry) => {
149 + if (entry === 'react-dom' || entry.startsWith('react-dom/')) {
150 + return 'events/forks/ResponderTopLevelEventTypes.dom.js';
151 + }
152 + return null;
153 + },
154 });
155
156 module.exports = forks;
yarn.lock
+1076 -455
@@ -2,13 +2,11 @@
2 # yarn lockfile v1
3
4
5 -"@babel/code-frame@7.0.0-beta.36":
6 - version "7.0.0-beta.36"
7 - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.36.tgz#2349d7ec04b3a06945ae173280ef8579b63728e4"
5 +"@babel/code-frame@7.0.0-beta.44":
6 + version "7.0.0-beta.44"
7 + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9"
8 dependencies:
9 - chalk "^2.0.0"
10 - esutils "^2.0.2"
11 - js-tokens "^3.0.0"
9 + "@babel/highlight" "7.0.0-beta.44"
10
11 "@babel/code-frame@^7.0.0-beta.35":
12 version "7.0.0-beta.38"
@@ -18,45 +16,71 @@
16 esutils "^2.0.2"
17 js-tokens "^3.0.0"
18
21 -"@babel/helper-function-name@7.0.0-beta.36":
22 - version "7.0.0-beta.36"
23 - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.36.tgz#366e3bc35147721b69009f803907c4d53212e88d"
19 +"@babel/generator@7.0.0-beta.44":
20 + version "7.0.0-beta.44"
21 + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42"
22 + dependencies:
23 + "@babel/types" "7.0.0-beta.44"
24 + jsesc "^2.5.1"
25 + lodash "^4.2.0"
26 + source-map "^0.5.0"
27 + trim-right "^1.0.1"
28 +
29 +"@babel/helper-function-name@7.0.0-beta.44":
30 + version "7.0.0-beta.44"
31 + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd"
32 + dependencies:
33 + "@babel/helper-get-function-arity" "7.0.0-beta.44"
34 + "@babel/template" "7.0.0-beta.44"
35 + "@babel/types" "7.0.0-beta.44"
36 +
37 +"@babel/helper-get-function-arity@7.0.0-beta.44":
38 + version "7.0.0-beta.44"
39 + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15"
40 + dependencies:
41 + "@babel/types" "7.0.0-beta.44"
42 +
43 +"@babel/helper-split-export-declaration@7.0.0-beta.44":
44 + version "7.0.0-beta.44"
45 + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc"
46 dependencies:
25 - "@babel/helper-get-function-arity" "7.0.0-beta.36"
26 - "@babel/template" "7.0.0-beta.36"
27 - "@babel/types" "7.0.0-beta.36"
47 + "@babel/types" "7.0.0-beta.44"
48
29 -"@babel/helper-get-function-arity@7.0.0-beta.36":
30 - version "7.0.0-beta.36"
31 - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.36.tgz#f5383bac9a96b274828b10d98900e84ee43e32b8"
49 +"@babel/highlight@7.0.0-beta.44":
50 + version "7.0.0-beta.44"
51 + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5"
52 dependencies:
33 - "@babel/types" "7.0.0-beta.36"
53 + chalk "^2.0.0"
54 + esutils "^2.0.2"
55 + js-tokens "^3.0.0"
56
35 -"@babel/template@7.0.0-beta.36":
36 - version "7.0.0-beta.36"
37 - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.36.tgz#02e903de5d68bd7899bce3c5b5447e59529abb00"
57 +"@babel/template@7.0.0-beta.44":
58 + version "7.0.0-beta.44"
59 + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f"
60 dependencies:
39 - "@babel/code-frame" "7.0.0-beta.36"
40 - "@babel/types" "7.0.0-beta.36"
41 - babylon "7.0.0-beta.36"
61 + "@babel/code-frame" "7.0.0-beta.44"
62 + "@babel/types" "7.0.0-beta.44"
63 + babylon "7.0.0-beta.44"
64 lodash "^4.2.0"
65
44 -"@babel/traverse@7.0.0-beta.36":
45 - version "7.0.0-beta.36"
46 - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.36.tgz#1dc6f8750e89b6b979de5fe44aa993b1a2192261"
66 +"@babel/traverse@7.0.0-beta.44":
67 + version "7.0.0-beta.44"
68 + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966"
69 dependencies:
48 - "@babel/code-frame" "7.0.0-beta.36"
49 - "@babel/helper-function-name" "7.0.0-beta.36"
50 - "@babel/types" "7.0.0-beta.36"
51 - babylon "7.0.0-beta.36"
52 - debug "^3.0.1"
70 + "@babel/code-frame" "7.0.0-beta.44"
71 + "@babel/generator" "7.0.0-beta.44"
72 + "@babel/helper-function-name" "7.0.0-beta.44"
73 + "@babel/helper-split-export-declaration" "7.0.0-beta.44"
74 + "@babel/types" "7.0.0-beta.44"
75 + babylon "7.0.0-beta.44"
76 + debug "^3.1.0"
77 globals "^11.1.0"
78 invariant "^2.2.0"
79 lodash "^4.2.0"
80
57 -"@babel/types@7.0.0-beta.36":
58 - version "7.0.0-beta.36"
59 - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.36.tgz#64f2004353de42adb72f9ebb4665fc35b5499d23"
81 +"@babel/types@7.0.0-beta.44":
82 + version "7.0.0-beta.44"
83 + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757"
84 dependencies:
85 esutils "^2.0.2"
86 lodash "^4.2.0"
@@ -78,8 +102,8 @@ abab@^1.0.3:
102 resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d"
103
104 abbrev@1:
81 - version "1.1.0"
82 - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
105 + version "1.1.1"
106 + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
107
108 acorn-globals@^4.0.0:
109 version "4.1.0"
@@ -123,13 +147,6 @@ ajv-keywords@^2.1.0:
147 version "2.1.1"
148 resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
149
126 -ajv@^4.9.1:
127 - version "4.11.7"
128 - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.7.tgz#8655a5d86d0824985cc471a1d913fb6729a0ec48"
129 - dependencies:
130 - co "^4.6.0"
131 - json-stable-stringify "^1.0.1"
132 -
150 ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0:
151 version "5.5.2"
152 resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
@@ -173,11 +190,11 @@ ansi-styles@^2.2.1:
190 version "2.2.1"
191 resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
192
176 -ansi-styles@^3.1.0:
177 - version "3.1.0"
178 - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.1.0.tgz#09c202d5c917ec23188caa5c9cb9179cd9547750"
193 +ansi-styles@^3.1.0, ansi-styles@^3.2.1:
194 + version "3.2.1"
195 + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
196 dependencies:
180 - color-convert "^1.0.0"
197 + color-convert "^1.9.0"
198
199 ansi-styles@^3.2.0:
200 version "3.2.0"
@@ -186,11 +203,11 @@ ansi-styles@^3.2.0:
203 color-convert "^1.9.0"
204
205 anymatch@^1.3.0:
189 - version "1.3.0"
190 - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507"
206 + version "1.3.2"
207 + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
208 dependencies:
192 - arrify "^1.0.0"
209 micromatch "^2.1.5"
210 + normalize-path "^2.0.0"
211
212 append-transform@^0.4.0:
213 version "0.4.0"
@@ -199,8 +216,8 @@ append-transform@^0.4.0:
216 default-require-extensions "^1.0.0"
217
218 aproba@^1.0.3:
202 - version "1.1.1"
203 - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab"
219 + version "1.2.0"
220 + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
221
222 are-we-there-yet@~1.1.2:
223 version "1.1.4"
@@ -221,9 +238,17 @@ arr-diff@^2.0.0:
238 dependencies:
239 arr-flatten "^1.0.1"
240
224 -arr-flatten@^1.0.1:
225 - version "1.0.3"
226 - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1"
241 +arr-diff@^4.0.0:
242 + version "4.0.0"
243 + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
244 +
245 +arr-flatten@^1.0.1, arr-flatten@^1.1.0:
246 + version "1.1.0"
247 + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
248 +
249 +arr-union@^3.1.0:
250 + version "3.1.0"
251 + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
252
253 array-differ@^1.0.0:
254 version "1.0.0"
@@ -247,6 +272,10 @@ array-unique@^0.2.1:
272 version "0.2.1"
273 resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
274
275 +array-unique@^0.3.2:
276 + version "0.3.2"
277 + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
278 +
279 array.prototype.find@2.0.4, array.prototype.find@^2.0.1:
280 version "2.0.4"
281 resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90"
@@ -278,6 +307,10 @@ assert-plus@^0.2.0:
307 version "0.2.0"
308 resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
309
310 +assign-symbols@^1.0.0:
311 + version "1.0.0"
312 + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
313 +
314 ast-traverse@~0.1.1:
315 version "0.1.1"
316 resolved "https://registry.yarnpkg.com/ast-traverse/-/ast-traverse-0.1.1.tgz#69cf2b8386f19dcda1bb1e05d68fe359d8897de6"
@@ -312,6 +345,10 @@ asynckit@^0.4.0:
345 version "0.4.0"
346 resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
347
348 +atob@^2.0.0:
349 + version "2.1.0"
350 + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.0.tgz#ab2b150e51d7b122b9efc8d7340c06b6c41076bc"
351 +
352 aws-sign2@~0.6.0:
353 version "0.6.0"
354 resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
@@ -320,40 +357,36 @@ aws-sign2@~0.7.0:
357 version "0.7.0"
358 resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
359
323 -aws4@^1.2.1, aws4@^1.6.0:
360 +aws4@^1.2.1:
361 + version "1.7.0"
362 + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289"
363 +
364 +aws4@^1.6.0:
365 version "1.6.0"
366 resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
367
368 babel-cli@^6.6.5:
328 - version "6.24.1"
329 - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.24.1.tgz#207cd705bba61489b2ea41b5312341cf6aca2283"
369 + version "6.26.0"
370 + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1"
371 dependencies:
331 - babel-core "^6.24.1"
332 - babel-polyfill "^6.23.0"
333 - babel-register "^6.24.1"
334 - babel-runtime "^6.22.0"
335 - commander "^2.8.1"
336 - convert-source-map "^1.1.0"
372 + babel-core "^6.26.0"
373 + babel-polyfill "^6.26.0"
374 + babel-register "^6.26.0"
375 + babel-runtime "^6.26.0"
376 + commander "^2.11.0"
377 + convert-source-map "^1.5.0"
378 fs-readdir-recursive "^1.0.0"
338 - glob "^7.0.0"
339 - lodash "^4.2.0"
340 - output-file-sync "^1.1.0"
341 - path-is-absolute "^1.0.0"
379 + glob "^7.1.2"
380 + lodash "^4.17.4"
381 + output-file-sync "^1.1.2"
382 + path-is-absolute "^1.0.1"
383 slash "^1.0.0"
343 - source-map "^0.5.0"
344 - v8flags "^2.0.10"
384 + source-map "^0.5.6"
385 + v8flags "^2.1.1"
386 optionalDependencies:
387 chokidar "^1.6.1"
388
348 -babel-code-frame@^6.22.0:
349 - version "6.22.0"
350 - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
351 - dependencies:
352 - chalk "^1.1.0"
353 - esutils "^2.0.2"
354 - js-tokens "^3.0.0"
355 -
356 -babel-code-frame@^6.26.0:
389 +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
390 version "6.26.0"
391 resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
392 dependencies:
@@ -412,52 +445,52 @@ babel-core@^5.6.21:
445 trim-right "^1.0.0"
446 try-resolve "^1.0.0"
447
415 -babel-core@^6.0.0, babel-core@^6.24.1:
416 - version "6.24.1"
417 - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.1.tgz#8c428564dce1e1f41fb337ec34f4c3b022b5ad83"
448 +babel-core@^6.0.0, babel-core@^6.26.0:
449 + version "6.26.0"
450 + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8"
451 dependencies:
419 - babel-code-frame "^6.22.0"
420 - babel-generator "^6.24.1"
452 + babel-code-frame "^6.26.0"
453 + babel-generator "^6.26.0"
454 babel-helpers "^6.24.1"
455 babel-messages "^6.23.0"
423 - babel-register "^6.24.1"
424 - babel-runtime "^6.22.0"
425 - babel-template "^6.24.1"
426 - babel-traverse "^6.24.1"
427 - babel-types "^6.24.1"
428 - babylon "^6.11.0"
429 - convert-source-map "^1.1.0"
430 - debug "^2.1.1"
431 - json5 "^0.5.0"
432 - lodash "^4.2.0"
433 - minimatch "^3.0.2"
434 - path-is-absolute "^1.0.0"
435 - private "^0.1.6"
456 + babel-register "^6.26.0"
457 + babel-runtime "^6.26.0"
458 + babel-template "^6.26.0"
459 + babel-traverse "^6.26.0"
460 + babel-types "^6.26.0"
461 + babylon "^6.18.0"
462 + convert-source-map "^1.5.0"
463 + debug "^2.6.8"
464 + json5 "^0.5.1"
465 + lodash "^4.17.4"
466 + minimatch "^3.0.4"
467 + path-is-absolute "^1.0.1"
468 + private "^0.1.7"
469 slash "^1.0.0"
437 - source-map "^0.5.0"
470 + source-map "^0.5.6"
471
472 babel-eslint@^8.0.0:
440 - version "8.2.1"
441 - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.1.tgz#136888f3c109edc65376c23ebf494f36a3e03951"
473 + version "8.2.3"
474 + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.3.tgz#1a2e6681cc9bc4473c32899e59915e19cd6733cf"
475 dependencies:
443 - "@babel/code-frame" "7.0.0-beta.36"
444 - "@babel/traverse" "7.0.0-beta.36"
445 - "@babel/types" "7.0.0-beta.36"
446 - babylon "7.0.0-beta.36"
476 + "@babel/code-frame" "7.0.0-beta.44"
477 + "@babel/traverse" "7.0.0-beta.44"
478 + "@babel/types" "7.0.0-beta.44"
479 + babylon "7.0.0-beta.44"
480 eslint-scope "~3.7.1"
481 eslint-visitor-keys "^1.0.0"
482
450 -babel-generator@^6.18.0, babel-generator@^6.24.1:
451 - version "6.24.1"
452 - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.1.tgz#e715f486c58ded25649d888944d52aa07c5d9497"
483 +babel-generator@^6.18.0, babel-generator@^6.26.0:
484 + version "6.26.1"
485 + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
486 dependencies:
487 babel-messages "^6.23.0"
455 - babel-runtime "^6.22.0"
456 - babel-types "^6.24.1"
488 + babel-runtime "^6.26.0"
489 + babel-types "^6.26.0"
490 detect-indent "^4.0.0"
491 jsesc "^1.3.0"
459 - lodash "^4.2.0"
460 - source-map "^0.5.0"
492 + lodash "^4.17.4"
493 + source-map "^0.5.7"
494 trim-right "^1.0.1"
495
496 babel-helper-builder-react-jsx@^6.24.1:
@@ -546,11 +579,11 @@ babel-helpers@^6.24.1:
579 babel-template "^6.24.1"
580
581 babel-jest@^22.0.6:
549 - version "22.0.6"
550 - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.0.6.tgz#807a2a5f5fad7789c57174a955cd14b11045299f"
582 + version "22.4.3"
583 + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.4.3.tgz#4b7a0b6041691bbd422ab49b3b73654a49a6627a"
584 dependencies:
585 babel-plugin-istanbul "^4.1.5"
553 - babel-preset-jest "^22.0.6"
586 + babel-preset-jest "^22.4.3"
587
588 babel-messages@^6.23.0:
589 version "6.23.0"
@@ -587,16 +620,17 @@ babel-plugin-inline-environment-variables@^1.0.1:
620 resolved "https://registry.yarnpkg.com/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz#1f58ce91207ad6a826a8bf645fafe68ff5fe3ffe"
621
622 babel-plugin-istanbul@^4.1.5:
590 - version "4.1.5"
591 - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz#6760cdd977f411d3e175bb064f2bc327d99b2b6e"
623 + version "4.1.6"
624 + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45"
625 dependencies:
626 + babel-plugin-syntax-object-rest-spread "^6.13.0"
627 find-up "^2.1.0"
594 - istanbul-lib-instrument "^1.7.5"
595 - test-exclude "^4.1.1"
628 + istanbul-lib-instrument "^1.10.1"
629 + test-exclude "^4.2.1"
630
597 -babel-plugin-jest-hoist@^22.0.6:
598 - version "22.0.6"
599 - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.0.6.tgz#551269ded350a15d6585da35d16d449df30d66c4"
631 +babel-plugin-jest-hoist@^22.4.3:
632 + version "22.4.3"
633 + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.3.tgz#7d8bcccadc2667f96a0dcc6afe1891875ee6c14a"
634
635 babel-plugin-jscript@^1.0.4:
636 version "1.0.4"
@@ -690,14 +724,14 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.5.0:
724 babel-runtime "^6.22.0"
725
726 babel-plugin-transform-es2015-block-scoping@^6.23.0:
693 - version "6.24.1"
694 - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576"
727 + version "6.26.0"
728 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f"
729 dependencies:
696 - babel-runtime "^6.22.0"
697 - babel-template "^6.24.1"
698 - babel-traverse "^6.24.1"
699 - babel-types "^6.24.1"
700 - lodash "^4.2.0"
730 + babel-runtime "^6.26.0"
731 + babel-template "^6.26.0"
732 + babel-traverse "^6.26.0"
733 + babel-types "^6.26.0"
734 + lodash "^4.17.4"
735
736 babel-plugin-transform-es2015-classes@^6.5.2:
737 version "6.24.1"
@@ -739,13 +773,13 @@ babel-plugin-transform-es2015-literals@^6.5.0:
773 babel-runtime "^6.22.0"
774
775 babel-plugin-transform-es2015-modules-commonjs@^6.5.2:
742 - version "6.24.1"
743 - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe"
776 + version "6.26.0"
777 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a"
778 dependencies:
779 babel-plugin-transform-strict-mode "^6.24.1"
746 - babel-runtime "^6.22.0"
747 - babel-template "^6.24.1"
748 - babel-types "^6.24.1"
780 + babel-runtime "^6.26.0"
781 + babel-template "^6.26.0"
782 + babel-types "^6.26.0"
783
784 babel-plugin-transform-es2015-object-super@^6.5.0:
785 version "6.24.1"
@@ -791,20 +825,13 @@ babel-plugin-transform-flow-strip-types@^6.22.0:
825 babel-plugin-syntax-flow "^6.18.0"
826 babel-runtime "^6.22.0"
827
794 -babel-plugin-transform-object-rest-spread@^6.20.2:
828 +babel-plugin-transform-object-rest-spread@^6.20.2, babel-plugin-transform-object-rest-spread@^6.6.5:
829 version "6.26.0"
830 resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06"
831 dependencies:
832 babel-plugin-syntax-object-rest-spread "^6.8.0"
833 babel-runtime "^6.26.0"
834
801 -babel-plugin-transform-object-rest-spread@^6.6.5:
802 - version "6.23.0"
803 - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921"
804 - dependencies:
805 - babel-plugin-syntax-object-rest-spread "^6.8.0"
806 - babel-runtime "^6.22.0"
807 -
835 babel-plugin-transform-react-display-name@^6.23.0:
836 version "6.23.0"
837 resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.23.0.tgz#4398910c358441dc4cef18787264d0412ed36b37"
@@ -856,13 +883,13 @@ babel-plugin-undefined-to-void@^1.1.6:
883 version "1.1.6"
884 resolved "https://registry.yarnpkg.com/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz#7f578ef8b78dfae6003385d8417a61eda06e2f81"
885
859 -babel-polyfill@^6.23.0:
860 - version "6.23.0"
861 - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d"
886 +babel-polyfill@^6.23.0, babel-polyfill@^6.26.0:
887 + version "6.26.0"
888 + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
889 dependencies:
863 - babel-runtime "^6.22.0"
864 - core-js "^2.4.0"
865 - regenerator-runtime "^0.10.0"
890 + babel-runtime "^6.26.0"
891 + core-js "^2.5.0"
892 + regenerator-runtime "^0.10.5"
893
894 babel-preset-flow@^6.23.0:
895 version "6.23.0"
@@ -870,11 +897,11 @@ babel-preset-flow@^6.23.0:
897 dependencies:
898 babel-plugin-transform-flow-strip-types "^6.22.0"
899
873 -babel-preset-jest@^22.0.6:
874 - version "22.0.6"
875 - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.0.6.tgz#d13202533db9495c98663044d9f51b273d3984c8"
900 +babel-preset-jest@^22.4.3:
901 + version "22.4.3"
902 + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.4.3.tgz#e92eef9813b7026ab4ca675799f37419b5a44156"
903 dependencies:
877 - babel-plugin-jest-hoist "^22.0.6"
904 + babel-plugin-jest-hoist "^22.4.3"
905 babel-plugin-syntax-object-rest-spread "^6.13.0"
906
907 babel-preset-react@^6.5.0:
@@ -888,66 +915,57 @@ babel-preset-react@^6.5.0:
915 babel-plugin-transform-react-jsx-source "^6.22.0"
916 babel-preset-flow "^6.23.0"
917
891 -babel-register@^6.24.1:
892 - version "6.24.1"
893 - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f"
918 +babel-register@^6.26.0:
919 + version "6.26.0"
920 + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
921 dependencies:
895 - babel-core "^6.24.1"
896 - babel-runtime "^6.22.0"
897 - core-js "^2.4.0"
922 + babel-core "^6.26.0"
923 + babel-runtime "^6.26.0"
924 + core-js "^2.5.0"
925 home-or-tmp "^2.0.0"
899 - lodash "^4.2.0"
926 + lodash "^4.17.4"
927 mkdirp "^0.5.1"
901 - source-map-support "^0.4.2"
928 + source-map-support "^0.4.15"
929
903 -babel-runtime@6.23.0, babel-runtime@^6.22.0:
930 +babel-runtime@6.23.0:
931 version "6.23.0"
932 resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b"
933 dependencies:
934 core-js "^2.4.0"
935 regenerator-runtime "^0.10.0"
936
910 -babel-runtime@^6.18.0, babel-runtime@^6.26.0:
937 +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
938 version "6.26.0"
939 resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
940 dependencies:
941 core-js "^2.4.0"
942 regenerator-runtime "^0.11.0"
943
917 -babel-template@^6.16.0, babel-template@^6.24.1:
918 - version "6.24.1"
919 - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333"
944 +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0:
945 + version "6.26.0"
946 + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
947 dependencies:
921 - babel-runtime "^6.22.0"
922 - babel-traverse "^6.24.1"
923 - babel-types "^6.24.1"
924 - babylon "^6.11.0"
925 - lodash "^4.2.0"
948 + babel-runtime "^6.26.0"
949 + babel-traverse "^6.26.0"
950 + babel-types "^6.26.0"
951 + babylon "^6.18.0"
952 + lodash "^4.17.4"
953
927 -babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.9.0:
928 - version "6.24.1"
929 - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695"
954 +babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0, babel-traverse@^6.9.0:
955 + version "6.26.0"
956 + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
957 dependencies:
931 - babel-code-frame "^6.22.0"
958 + babel-code-frame "^6.26.0"
959 babel-messages "^6.23.0"
933 - babel-runtime "^6.22.0"
934 - babel-types "^6.24.1"
935 - babylon "^6.15.0"
936 - debug "^2.2.0"
937 - globals "^9.0.0"
938 - invariant "^2.2.0"
939 - lodash "^4.2.0"
940 -
941 -babel-types@^6.18.0, babel-types@^6.24.1:
942 - version "6.24.1"
943 - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975"
944 - dependencies:
945 - babel-runtime "^6.22.0"
946 - esutils "^2.0.2"
947 - lodash "^4.2.0"
948 - to-fast-properties "^1.0.1"
960 + babel-runtime "^6.26.0"
961 + babel-types "^6.26.0"
962 + babylon "^6.18.0"
963 + debug "^2.6.8"
964 + globals "^9.18.0"
965 + invariant "^2.2.2"
966 + lodash "^4.17.4"
967
950 -babel-types@^6.19.0:
968 +babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0:
969 version "6.26.0"
970 resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
971 dependencies:
@@ -973,34 +991,34 @@ babel@^5.4.7:
991 slash "^1.0.0"
992 source-map "^0.5.0"
993
976 -babylon@6.15.0, babylon@^6.11.0:
977 - version "6.15.0"
978 - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.15.0.tgz#ba65cfa1a80e1759b0e89fb562e27dccae70348e"
994 +babylon@6.18.0, babylon@^6.18.0:
995 + version "6.18.0"
996 + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
997
980 -babylon@7.0.0-beta.36:
981 - version "7.0.0-beta.36"
982 - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.36.tgz#3a3683ba6a9a1e02b0aa507c8e63435e39305b9e"
998 +babylon@7.0.0-beta.44:
999 + version "7.0.0-beta.44"
1000 + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d"
1001
1002 babylon@^5.8.38:
1003 version "5.8.38"
1004 resolved "https://registry.yarnpkg.com/babylon/-/babylon-5.8.38.tgz#ec9b120b11bf6ccd4173a18bf217e60b79859ffd"
1005
988 -babylon@^6.15.0:
989 - version "6.17.0"
990 - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.0.tgz#37da948878488b9c4e3c4038893fa3314b3fc932"
991 -
992 -babylon@^6.18.0:
993 - version "6.18.0"
994 - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
995 -
996 -balanced-match@^0.4.1:
997 - version "0.4.2"
998 - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
999 -
1006 balanced-match@^1.0.0:
1007 version "1.0.0"
1008 resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
1009
1010 +base@^0.11.1:
1011 + version "0.11.2"
1012 + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
1013 + dependencies:
1014 + cache-base "^1.0.1"
1015 + class-utils "^0.3.5"
1016 + component-emitter "^1.2.1"
1017 + define-property "^1.0.0"
1018 + isobject "^3.0.1"
1019 + mixin-deep "^1.2.0"
1020 + pascalcase "^0.1.1"
1021 +
1022 bcrypt-pbkdf@^1.0.0:
1023 version "1.0.1"
1024 resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
@@ -1012,8 +1030,8 @@ beeper@^1.0.0:
1030 resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
1031
1032 binary-extensions@^1.0.0:
1015 - version "1.8.0"
1016 - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774"
1033 + version "1.11.0"
1034 + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
1035
1036 bl@^1.0.0:
1037 version "1.2.1"
@@ -1050,10 +1068,10 @@ boom@5.x.x:
1068 hoek "4.x.x"
1069
1070 brace-expansion@^1.0.0:
1053 - version "1.1.7"
1054 - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
1071 + version "1.1.11"
1072 + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
1073 dependencies:
1056 - balanced-match "^0.4.1"
1074 + balanced-match "^1.0.0"
1075 concat-map "0.0.1"
1076
1077 brace-expansion@^1.1.7:
@@ -1071,6 +1089,21 @@ braces@^1.8.2:
1089 preserve "^0.2.0"
1090 repeat-element "^1.1.2"
1091
1092 +braces@^2.3.1:
1093 + version "2.3.2"
1094 + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
1095 + dependencies:
1096 + arr-flatten "^1.1.0"
1097 + array-unique "^0.3.2"
1098 + extend-shallow "^2.0.1"
1099 + fill-range "^4.0.0"
1100 + isobject "^3.0.1"
1101 + repeat-element "^1.1.2"
1102 + snapdragon "^0.8.1"
1103 + snapdragon-node "^2.0.1"
1104 + split-string "^3.0.2"
1105 + to-regex "^3.0.1"
1106 +
1107 breakable@~1.0.0:
1108 version "1.0.0"
1109 resolved "https://registry.yarnpkg.com/breakable/-/breakable-1.0.0.tgz#784a797915a38ead27bad456b5572cb4bbaa78c1"
@@ -1129,6 +1162,20 @@ bundle-collapser@^1.1.1:
1162 minimist "^1.1.1"
1163 through2 "^2.0.0"
1164
1165 +cache-base@^1.0.1:
1166 + version "1.0.1"
1167 + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
1168 + dependencies:
1169 + collection-visit "^1.0.0"
1170 + component-emitter "^1.2.1"
1171 + get-value "^2.0.6"
1172 + has-value "^1.0.0"
1173 + isobject "^3.0.1"
1174 + set-value "^2.0.0"
1175 + to-object-path "^0.3.0"
1176 + union-value "^1.0.0"
1177 + unset-value "^1.0.0"
1178 +
1179 caller-path@^0.1.0:
1180 version "0.1.0"
1181 resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
@@ -1170,7 +1217,7 @@ center-align@^0.1.1:
1217 align-text "^0.1.3"
1218 lazy-cache "^1.0.3"
1219
1173 -chalk@*, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
1220 +chalk@*, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
1221 version "1.1.3"
1222 resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
1223 dependencies:
@@ -1180,13 +1227,13 @@ chalk@*, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
1227 strip-ansi "^3.0.0"
1228 supports-color "^2.0.0"
1229
1183 -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0:
1184 - version "2.3.0"
1185 - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
1230 +chalk@^2.0.0:
1231 + version "2.4.0"
1232 + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.0.tgz#a060a297a6b57e15b61ca63ce84995daa0fe6e52"
1233 dependencies:
1187 - ansi-styles "^3.1.0"
1234 + ansi-styles "^3.2.1"
1235 escape-string-regexp "^1.0.5"
1189 - supports-color "^4.0.0"
1236 + supports-color "^5.3.0"
1237
1238 chalk@^2.0.1:
1239 version "2.0.1"
@@ -1196,11 +1243,19 @@ chalk@^2.0.1:
1243 escape-string-regexp "^1.0.5"
1244 supports-color "^4.0.0"
1245
1246 +chalk@^2.1.0, chalk@^2.3.0:
1247 + version "2.3.0"
1248 + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
1249 + dependencies:
1250 + ansi-styles "^3.1.0"
1251 + escape-string-regexp "^1.0.5"
1252 + supports-color "^4.0.0"
1253 +
1254 chardet@^0.4.0:
1255 version "0.4.2"
1256 resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
1257
1203 -chokidar@^1.0.0, chokidar@^1.6.1:
1258 +chokidar@^1.0.0:
1259 version "1.6.1"
1260 resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2"
1261 dependencies:
@@ -1215,6 +1270,21 @@ chokidar@^1.0.0, chokidar@^1.6.1:
1270 optionalDependencies:
1271 fsevents "^1.0.0"
1272
1273 +chokidar@^1.6.1:
1274 + version "1.7.0"
1275 + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
1276 + dependencies:
1277 + anymatch "^1.3.0"
1278 + async-each "^1.0.0"
1279 + glob-parent "^2.0.0"
1280 + inherits "^2.0.1"
1281 + is-binary-path "^1.0.0"
1282 + is-glob "^2.0.0"
1283 + path-is-absolute "^1.0.0"
1284 + readdirp "^2.0.0"
1285 + optionalDependencies:
1286 + fsevents "^1.0.0"
1287 +
1288 chownr@^1.0.1:
1289 version "1.0.1"
1290 resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
@@ -1227,6 +1297,15 @@ circular-json@^0.3.1:
1297 version "0.3.1"
1298 resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d"
1299
1300 +class-utils@^0.3.5:
1301 + version "0.3.6"
1302 + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
1303 + dependencies:
1304 + arr-union "^3.1.0"
1305 + define-property "^0.2.5"
1306 + isobject "^3.0.0"
1307 + static-extend "^0.1.1"
1308 +
1309 cli-cursor@^2.1.0:
1310 version "2.1.0"
1311 resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
@@ -1307,15 +1386,22 @@ coffee-script@^1.8.0:
1386 version "1.12.5"
1387 resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.5.tgz#809f4585419112bbfe46a073ad7543af18c27346"
1388
1310 -color-convert@^1.0.0, color-convert@^1.9.0:
1389 +collection-visit@^1.0.0:
1390 + version "1.0.0"
1391 + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
1392 + dependencies:
1393 + map-visit "^1.0.0"
1394 + object-visit "^1.0.0"
1395 +
1396 +color-convert@^1.9.0:
1397 version "1.9.0"
1398 resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
1399 dependencies:
1400 color-name "^1.1.1"
1401
1402 color-name@^1.1.1:
1317 - version "1.1.2"
1318 - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d"
1403 + version "1.1.3"
1404 + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
1405
1406 colors@1.0.3:
1407 version "1.0.3"
@@ -1335,16 +1421,20 @@ combine-source-map@~0.6.1:
1421 source-map "~0.4.2"
1422
1423 combined-stream@^1.0.5, combined-stream@~1.0.5:
1338 - version "1.0.5"
1339 - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
1424 + version "1.0.6"
1425 + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
1426 dependencies:
1427 delayed-stream "~1.0.0"
1428
1429 +commander@^2.11.0:
1430 + version "2.15.1"
1431 + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
1432 +
1433 commander@^2.12.2:
1434 version "2.12.2"
1435 resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555"
1436
1347 -commander@^2.5.0, commander@^2.6.0, commander@^2.8.1, commander@^2.9.0:
1437 +commander@^2.5.0, commander@^2.6.0, commander@^2.9.0:
1438 version "2.9.0"
1439 resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
1440 dependencies:
@@ -1364,6 +1454,10 @@ commoner@~0.10.3:
1454 q "^1.1.2"
1455 recast "^0.11.17"
1456
1457 +component-emitter@^1.2.1:
1458 + version "1.2.1"
1459 + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
1460 +
1461 concat-map@0.0.1:
1462 version "0.0.1"
1463 resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -1392,7 +1486,11 @@ content-type-parser@^1.0.1:
1486 version "1.0.1"
1487 resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94"
1488
1395 -convert-source-map@^1.1.0, convert-source-map@^1.4.0:
1489 +convert-source-map@^1.1.0, convert-source-map@^1.5.0:
1490 + version "1.5.1"
1491 + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
1492 +
1493 +convert-source-map@^1.4.0:
1494 version "1.5.0"
1495 resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
1496
@@ -1400,15 +1498,23 @@ convert-source-map@~1.1.0:
1498 version "1.1.3"
1499 resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860"
1500
1501 +copy-descriptor@^0.1.0:
1502 + version "0.1.1"
1503 + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
1504 +
1505 core-js@^1.0.0:
1506 version "1.2.7"
1507 resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
1508
1407 -core-js@^2.2.1, core-js@^2.4.0:
1509 +core-js@^2.2.1:
1510 version "2.4.1"
1511 resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
1512
1411 -core-util-is@~1.0.0:
1513 +core-js@^2.4.0, core-js@^2.5.0:
1514 + version "2.5.5"
1515 + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.5.tgz#b14dde936c640c0579a6b50cabcc132dd6127e3b"
1516 +
1517 +core-util-is@1.0.2, core-util-is@~1.0.0:
1518 version "1.0.2"
1519 resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
1520
@@ -1541,11 +1647,11 @@ dateformat@^2.0.0:
1647 version "2.0.0"
1648 resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17"
1649
1544 -debug@^2.1.1, debug@^2.2.0:
1545 - version "2.6.6"
1546 - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a"
1650 +debug@^2.1.1, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8:
1651 + version "2.6.9"
1652 + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
1653 dependencies:
1548 - ms "0.7.3"
1654 + ms "2.0.0"
1655
1656 debug@^2.6.3:
1657 version "2.6.8"
@@ -1553,7 +1659,7 @@ debug@^2.6.3:
1659 dependencies:
1660 ms "2.0.0"
1661
1556 -debug@^3.0.1, debug@^3.1.0:
1662 +debug@^3.1.0:
1663 version "3.1.0"
1664 resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
1665 dependencies:
@@ -1563,9 +1669,13 @@ decamelize@^1.0.0, decamelize@^1.1.1:
1669 version "1.2.0"
1670 resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
1671
1672 +decode-uri-component@^0.2.0:
1673 + version "0.2.0"
1674 + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
1675 +
1676 deep-extend@~0.4.0:
1567 - version "0.4.1"
1568 - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253"
1677 + version "0.4.2"
1678 + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
1679
1680 deep-is@~0.1.3:
1681 version "0.1.3"
@@ -1584,6 +1694,25 @@ define-properties@^1.1.2:
1694 foreach "^2.0.5"
1695 object-keys "^1.0.8"
1696
1697 +define-property@^0.2.5:
1698 + version "0.2.5"
1699 + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
1700 + dependencies:
1701 + is-descriptor "^0.1.0"
1702 +
1703 +define-property@^1.0.0:
1704 + version "1.0.0"
1705 + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
1706 + dependencies:
1707 + is-descriptor "^1.0.0"
1708 +
1709 +define-property@^2.0.2:
1710 + version "2.0.2"
1711 + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
1712 + dependencies:
1713 + is-descriptor "^1.0.2"
1714 + isobject "^3.0.1"
1715 +
1716 defined@^1.0.0:
1717 version "1.0.0"
1718 resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
@@ -1651,6 +1780,10 @@ detect-indent@^4.0.0:
1780 dependencies:
1781 repeating "^2.0.0"
1782
1783 +detect-libc@^1.0.2:
1784 + version "1.0.3"
1785 + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
1786 +
1787 detect-newline@^2.1.0:
1788 version "2.1.0"
1789 resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
@@ -1972,20 +2105,15 @@ esquery@^1.0.0:
2105 estraverse "^4.0.0"
2106
2107 esrecurse@^4.1.0:
1975 - version "4.1.0"
1976 - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220"
2108 + version "4.2.1"
2109 + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
2110 dependencies:
1978 - estraverse "~4.1.0"
1979 - object-assign "^4.0.1"
2111 + estraverse "^4.1.0"
2112
1981 -estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0:
2113 +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
2114 version "4.2.0"
2115 resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
2116
1985 -estraverse@~4.1.0:
1986 - version "4.1.1"
1987 - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2"
1988 -
2117 estree-walker@^0.2.1:
2118 version "0.2.1"
2119 resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e"
@@ -2033,6 +2161,18 @@ expand-brackets@^0.1.4:
2161 dependencies:
2162 is-posix-bracket "^0.1.0"
2163
2164 +expand-brackets@^2.1.4:
2165 + version "2.1.4"
2166 + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
2167 + dependencies:
2168 + debug "^2.3.3"
2169 + define-property "^0.2.5"
2170 + extend-shallow "^2.0.1"
2171 + posix-character-classes "^0.1.0"
2172 + regex-not "^1.0.0"
2173 + snapdragon "^0.8.1"
2174 + to-regex "^3.0.1"
2175 +
2176 expand-range@^1.8.1:
2177 version "1.8.2"
2178 resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
@@ -2062,6 +2202,13 @@ extend-shallow@^2.0.1:
2202 dependencies:
2203 is-extendable "^0.1.0"
2204
2205 +extend-shallow@^3.0.0, extend-shallow@^3.0.2:
2206 + version "3.0.2"
2207 + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
2208 + dependencies:
2209 + assign-symbols "^1.0.0"
2210 + is-extendable "^1.0.1"
2211 +
2212 extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
2213 version "3.0.1"
2214 resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
@@ -2080,6 +2227,19 @@ extglob@^0.3.1:
2227 dependencies:
2228 is-extglob "^1.0.0"
2229
2230 +extglob@^2.0.4:
2231 + version "2.0.4"
2232 + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
2233 + dependencies:
2234 + array-unique "^0.3.2"
2235 + define-property "^1.0.0"
2236 + expand-brackets "^2.1.4"
2237 + extend-shallow "^2.0.1"
2238 + fragment-cache "^0.2.1"
2239 + regex-not "^1.0.0"
2240 + snapdragon "^0.8.1"
2241 + to-regex "^3.0.1"
2242 +
2243 extract-banner@0.1.2:
2244 version "0.1.2"
2245 resolved "https://registry.yarnpkg.com/extract-banner/-/extract-banner-0.1.2.tgz#61d1ed5cce3acdadb35f4323910b420364241a7f"
@@ -2087,9 +2247,13 @@ extract-banner@0.1.2:
2247 strip-bom-string "^0.1.2"
2248 strip-use-strict "^0.1.0"
2249
2090 -extsprintf@1.0.2:
2091 - version "1.0.2"
2092 - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
2250 +extsprintf@1.3.0:
2251 + version "1.3.0"
2252 + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
2253 +
2254 +extsprintf@^1.2.0:
2255 + version "1.4.0"
2256 + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
2257
2258 falafel@^1.2.0:
2259 version "1.2.0"
@@ -2175,8 +2339,8 @@ file-entry-cache@^2.0.0:
2339 object-assign "^4.0.1"
2340
2341 filename-regex@^2.0.0:
2178 - version "2.0.0"
2179 - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775"
2342 + version "2.0.1"
2343 + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
2344
2345 fileset@^2.0.2:
2346 version "2.0.3"
@@ -2199,6 +2363,15 @@ fill-range@^2.1.0:
2363 repeat-element "^1.1.2"
2364 repeat-string "^1.5.2"
2365
2366 +fill-range@^4.0.0:
2367 + version "4.0.0"
2368 + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
2369 + dependencies:
2370 + extend-shallow "^2.0.1"
2371 + is-number "^3.0.0"
2372 + repeat-string "^1.6.1"
2373 + to-regex-range "^2.1.0"
2374 +
2375 find-file-up@^0.1.2:
2376 version "0.1.3"
2377 resolved "https://registry.yarnpkg.com/find-file-up/-/find-file-up-0.1.3.tgz#cf68091bcf9f300a40da411b37da5cce5a2fbea0"
@@ -2265,7 +2438,7 @@ flow-coverage-report@^0.4.0:
2438 terminal-table "0.0.12"
2439 yargs "8.0.1"
2440
2268 -for-in@^1.0.1:
2441 +for-in@^1.0.1, for-in@^1.0.2:
2442 version "1.0.2"
2443 resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
2444
@@ -2299,28 +2472,40 @@ form-data@~2.3.1:
2472 combined-stream "^1.0.5"
2473 mime-types "^2.1.12"
2474
2475 +fragment-cache@^0.2.1:
2476 + version "0.2.1"
2477 + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
2478 + dependencies:
2479 + map-cache "^0.2.2"
2480 +
2481 fs-exists-sync@^0.1.0:
2482 version "0.1.0"
2483 resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
2484
2485 +fs-minipass@^1.2.5:
2486 + version "1.2.5"
2487 + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
2488 + dependencies:
2489 + minipass "^2.2.1"
2490 +
2491 fs-readdir-recursive@^0.1.0:
2492 version "0.1.2"
2493 resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz#315b4fb8c1ca5b8c47defef319d073dad3568059"
2494
2495 fs-readdir-recursive@^1.0.0:
2311 - version "1.0.0"
2312 - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560"
2496 + version "1.1.0"
2497 + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
2498
2499 fs.realpath@^1.0.0:
2500 version "1.0.0"
2501 resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
2502
2503 fsevents@^1.0.0:
2319 - version "1.1.1"
2320 - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff"
2504 + version "1.2.2"
2505 + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.2.tgz#4f598f0f69b273188ef4a62ca4e9e08ace314bbf"
2506 dependencies:
2322 - nan "^2.3.0"
2323 - node-pre-gyp "^0.6.29"
2507 + nan "^2.9.2"
2508 + node-pre-gyp "^0.9.0"
2509
2510 fsevents@^1.1.1:
2511 version "1.1.2"
@@ -2358,7 +2543,7 @@ functional-red-black-tree@^1.0.1:
2543 version "1.0.1"
2544 resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
2545
2361 -gauge@~2.7.1:
2546 +gauge@~2.7.3:
2547 version "2.7.4"
2548 resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
2549 dependencies:
@@ -2397,6 +2582,10 @@ get-stream@^3.0.0:
2582 version "3.0.0"
2583 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
2584
2585 +get-value@^2.0.3, get-value@^2.0.6:
2586 + version "2.0.6"
2587 + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
2588 +
2589 getpass@^0.1.1:
2590 version "0.1.7"
2591 resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
@@ -2461,7 +2650,7 @@ glob-stream@^6.1.0:
2650 to-absolute-glob "^2.0.0"
2651 unique-stream "^2.0.2"
2652
2464 -glob@7.1.1, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1:
2653 +glob@7.1.1, glob@^7.0.3, glob@^7.1.1:
2654 version "7.1.1"
2655 resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
2656 dependencies:
@@ -2492,7 +2681,7 @@ glob@^6.0.4:
2681 once "^1.3.0"
2682 path-is-absolute "^1.0.0"
2683
2495 -glob@^7.1.2:
2684 +glob@^7.0.5, glob@^7.1.2:
2685 version "7.1.2"
2686 resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
2687 dependencies:
@@ -2519,17 +2708,21 @@ global-prefix@^0.1.4:
2708 is-windows "^0.2.0"
2709 which "^1.2.12"
2710
2522 -globals@^11.0.1, globals@^11.1.0:
2711 +globals@^11.0.1:
2712 version "11.1.0"
2713 resolved "https://registry.yarnpkg.com/globals/-/globals-11.1.0.tgz#632644457f5f0e3ae711807183700ebf2e4633e4"
2714
2715 +globals@^11.1.0:
2716 + version "11.4.0"
2717 + resolved "https://registry.yarnpkg.com/globals/-/globals-11.4.0.tgz#b85c793349561c16076a3c13549238a27945f1bc"
2718 +
2719 globals@^6.4.0:
2720 version "6.4.1"
2721 resolved "https://registry.yarnpkg.com/globals/-/globals-6.4.1.tgz#8498032b3b6d1cc81eebc5f79690d8fe29fabf4f"
2722
2530 -globals@^9.0.0:
2531 - version "9.17.0"
2532 - resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286"
2723 +globals@^9.18.0:
2724 + version "9.18.0"
2725 + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
2726
2727 globby@^5.0.0:
2728 version "5.0.0"
@@ -2620,10 +2813,6 @@ handlebars@^4.0.3:
2813 optionalDependencies:
2814 uglify-js "^2.6"
2815
2623 -har-schema@^1.0.5:
2624 - version "1.0.5"
2625 - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
2626 -
2816 har-schema@^2.0.0:
2817 version "2.0.0"
2818 resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
@@ -2637,13 +2826,6 @@ har-validator@~2.0.6:
2826 is-my-json-valid "^2.12.4"
2827 pinkie-promise "^2.0.0"
2828
2640 -har-validator@~4.2.1:
2641 - version "4.2.1"
2642 - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
2643 - dependencies:
2644 - ajv "^4.9.1"
2645 - har-schema "^1.0.5"
2646 -
2829 har-validator@~5.0.3:
2830 version "5.0.3"
2831 resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
@@ -2665,6 +2847,10 @@ has-flag@^2.0.0:
2847 version "2.0.0"
2848 resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
2849
2850 +has-flag@^3.0.0:
2851 + version "3.0.0"
2852 + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
2853 +
2854 has-gulplog@^0.1.0:
2855 version "0.1.0"
2856 resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
@@ -2675,6 +2861,33 @@ has-unicode@^2.0.0:
2861 version "2.0.1"
2862 resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
2863
2864 +has-value@^0.3.1:
2865 + version "0.3.1"
2866 + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
2867 + dependencies:
2868 + get-value "^2.0.3"
2869 + has-values "^0.1.4"
2870 + isobject "^2.0.0"
2871 +
2872 +has-value@^1.0.0:
2873 + version "1.0.0"
2874 + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
2875 + dependencies:
2876 + get-value "^2.0.6"
2877 + has-values "^1.0.0"
2878 + isobject "^3.0.0"
2879 +
2880 +has-values@^0.1.4:
2881 + version "0.1.4"
2882 + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
2883 +
2884 +has-values@^1.0.0:
2885 + version "1.0.0"
2886 + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
2887 + dependencies:
2888 + is-number "^3.0.0"
2889 + kind-of "^4.0.0"
2890 +
2891 has@^1.0.1:
2892 version "1.0.1"
2893 resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
@@ -2728,8 +2941,8 @@ homedir-polyfill@^1.0.0:
2941 parse-passwd "^1.0.0"
2942
2943 hosted-git-info@^2.1.4:
2731 - version "2.4.2"
2732 - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67"
2944 + version "2.6.0"
2945 + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222"
2946
2947 html-encoding-sniffer@^1.0.1:
2948 version "1.0.1"
@@ -2772,15 +2985,21 @@ iconv-lite@^0.4.17:
2985 version "0.4.19"
2986 resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
2987
2988 +iconv-lite@^0.4.4, iconv-lite@~0.4.13:
2989 + version "0.4.21"
2990 + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.21.tgz#c47f8733d02171189ebc4a400f3218d348094798"
2991 + dependencies:
2992 + safer-buffer "^2.1.0"
2993 +
2994 iconv-lite@^0.4.5:
2995 version "0.4.16"
2996 resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.16.tgz#65de3beeb39e2960d67f049f1634ffcbcde9014b"
2997
2779 -iconv-lite@~0.4.13:
2780 - version "0.4.21"
2781 - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.21.tgz#c47f8733d02171189ebc4a400f3218d348094798"
2998 +ignore-walk@^3.0.1:
2999 + version "3.0.1"
3000 + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
3001 dependencies:
2783 - safer-buffer "^2.1.0"
3002 + minimatch "^3.0.4"
3003
3004 ignore@^3.3.3:
3005 version "3.3.7"
@@ -2801,14 +3020,10 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1,
3020 version "2.0.3"
3021 resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
3022
2804 -ini@^1.3.4:
3023 +ini@^1.3.4, ini@~1.3.0:
3024 version "1.3.5"
3025 resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
3026
2808 -ini@~1.3.0:
2809 - version "1.3.4"
2810 - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
2811 -
3027 inline-source-map@~0.5.0:
3028 version "0.5.0"
3029 resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.5.0.tgz#4a4c5dd8e4fb5e9b3cda60c822dfadcaee66e0af"
@@ -2834,9 +3049,9 @@ inquirer@^3.0.6:
3049 strip-ansi "^4.0.0"
3050 through "^2.3.6"
3051
2837 -invariant@^2.2.0:
2838 - version "2.2.2"
2839 - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
3052 +invariant@^2.2.0, invariant@^2.2.2:
3053 + version "2.2.4"
3054 + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
3055 dependencies:
3056 loose-envify "^1.0.0"
3057
@@ -2851,6 +3066,18 @@ is-absolute@^0.2.5:
3066 is-relative "^0.2.1"
3067 is-windows "^0.2.0"
3068
3069 +is-accessor-descriptor@^0.1.6:
3070 + version "0.1.6"
3071 + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
3072 + dependencies:
3073 + kind-of "^3.0.2"
3074 +
3075 +is-accessor-descriptor@^1.0.0:
3076 + version "1.0.0"
3077 + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
3078 + dependencies:
3079 + kind-of "^6.0.0"
3080 +
3081 is-arrayish@^0.2.1:
3082 version "0.2.1"
3083 resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
@@ -2862,8 +3089,8 @@ is-binary-path@^1.0.0:
3089 binary-extensions "^1.0.0"
3090
3091 is-buffer@^1.1.5:
2865 - version "1.1.5"
2866 - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
3092 + version "1.1.6"
3093 + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
3094
3095 is-builtin-module@^1.0.0:
3096 version "1.0.0"
@@ -2881,13 +3108,41 @@ is-ci@^1.0.10:
3108 dependencies:
3109 ci-info "^1.0.0"
3110
3111 +is-data-descriptor@^0.1.4:
3112 + version "0.1.4"
3113 + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
3114 + dependencies:
3115 + kind-of "^3.0.2"
3116 +
3117 +is-data-descriptor@^1.0.0:
3118 + version "1.0.0"
3119 + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
3120 + dependencies:
3121 + kind-of "^6.0.0"
3122 +
3123 is-date-object@^1.0.1:
3124 version "1.0.1"
3125 resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
3126
2888 -is-dotfile@^1.0.0:
3127 +is-descriptor@^0.1.0:
3128 + version "0.1.6"
3129 + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
3130 + dependencies:
3131 + is-accessor-descriptor "^0.1.6"
3132 + is-data-descriptor "^0.1.4"
3133 + kind-of "^5.0.0"
3134 +
3135 +is-descriptor@^1.0.0, is-descriptor@^1.0.2:
3136 version "1.0.2"
2890 - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d"
3137 + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
3138 + dependencies:
3139 + is-accessor-descriptor "^1.0.0"
3140 + is-data-descriptor "^1.0.0"
3141 + kind-of "^6.0.2"
3142 +
3143 +is-dotfile@^1.0.0:
3144 + version "1.0.3"
3145 + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
3146
3147 is-equal-shallow@^0.1.3:
3148 version "0.1.3"
@@ -2899,6 +3154,12 @@ is-extendable@^0.1.0, is-extendable@^0.1.1:
3154 version "0.1.1"
3155 resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
3156
3157 +is-extendable@^1.0.1:
3158 + version "1.0.1"
3159 + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
3160 + dependencies:
3161 + is-plain-object "^2.0.4"
3162 +
3163 is-extglob@^1.0.0:
3164 version "1.0.0"
3165 resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
@@ -2958,12 +3219,28 @@ is-negated-glob@^1.0.0:
3219 version "1.0.0"
3220 resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2"
3221
2961 -is-number@^2.0.2, is-number@^2.1.0:
3222 +is-number@^2.1.0:
3223 version "2.1.0"
3224 resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
3225 dependencies:
3226 kind-of "^3.0.2"
3227
3228 +is-number@^3.0.0:
3229 + version "3.0.0"
3230 + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
3231 + dependencies:
3232 + kind-of "^3.0.2"
3233 +
3234 +is-number@^4.0.0:
3235 + version "4.0.0"
3236 + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
3237 +
3238 +is-odd@^2.0.0:
3239 + version "2.0.0"
3240 + resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24"
3241 + dependencies:
3242 + is-number "^4.0.0"
3243 +
3244 is-path-cwd@^1.0.0:
3245 version "1.0.0"
3246 resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
@@ -2980,6 +3257,12 @@ is-path-inside@^1.0.0:
3257 dependencies:
3258 path-is-inside "^1.0.1"
3259
3260 +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
3261 + version "2.0.4"
3262 + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
3263 + dependencies:
3264 + isobject "^3.0.1"
3265 +
3266 is-posix-bracket@^0.1.0:
3267 version "0.1.1"
3268 resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
@@ -3044,6 +3327,10 @@ is-windows@^1.0.0:
3327 version "1.0.1"
3328 resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9"
3329
3330 +is-windows@^1.0.2:
3331 + version "1.0.2"
3332 + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
3333 +
3334 isarray@0.0.1:
3335 version "0.0.1"
3336 resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
@@ -3062,6 +3349,10 @@ isobject@^2.0.0:
3349 dependencies:
3350 isarray "1.0.0"
3351
3352 +isobject@^3.0.0, isobject@^3.0.1:
3353 + version "3.0.1"
3354 + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
3355 +
3356 isomorphic-fetch@^2.1.1:
3357 version "2.2.1"
3358 resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
@@ -3089,17 +3380,29 @@ istanbul-api@^1.1.14:
3380 mkdirp "^0.5.1"
3381 once "^1.4.0"
3382
3092 -istanbul-lib-coverage@^1.1.1:
3093 - version "1.1.1"
3094 - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da"
3383 +istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.2.0:
3384 + version "1.2.0"
3385 + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341"
3386
3387 istanbul-lib-hook@^1.1.0:
3388 version "1.1.0"
3389 resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b"
3390 dependencies:
3100 - append-transform "^0.4.0"
3391 + append-transform "^0.4.0"
3392 +
3393 +istanbul-lib-instrument@^1.10.1:
3394 + version "1.10.1"
3395 + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b"
3396 + dependencies:
3397 + babel-generator "^6.18.0"
3398 + babel-template "^6.16.0"
3399 + babel-traverse "^6.18.0"
3400 + babel-types "^6.18.0"
3401 + babylon "^6.18.0"
3402 + istanbul-lib-coverage "^1.2.0"
3403 + semver "^5.3.0"
3404
3102 -istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.8.0, istanbul-lib-instrument@^1.9.1:
3405 +istanbul-lib-instrument@^1.8.0, istanbul-lib-instrument@^1.9.1:
3406 version "1.9.1"
3407 resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e"
3408 dependencies:
@@ -3411,12 +3714,6 @@ jest@^22.0.6:
3714 dependencies:
3715 jest-cli "^22.0.6"
3716
3414 -jodid25519@^1.0.0:
3415 - version "1.0.2"
3416 - resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967"
3417 - dependencies:
3418 - jsbn "~0.1.0"
3419 -
3717 js-tokens@1.0.1:
3718 version "1.0.1"
3719 resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-1.0.1.tgz#cc435a5c8b94ad15acb7983140fc80182c89aeae"
@@ -3483,6 +3780,10 @@ jsesc@^1.3.0:
3780 version "1.3.0"
3781 resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
3782
3783 +jsesc@^2.5.1:
3784 + version "2.5.1"
3785 + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe"
3786 +
3787 jsesc@~0.5.0:
3788 version "0.5.0"
3789 resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
@@ -3521,7 +3822,7 @@ json5@^0.4.0:
3822 version "0.4.0"
3823 resolved "https://registry.yarnpkg.com/json5/-/json5-0.4.0.tgz#054352e4c4c80c86c0923877d449de176a732c8d"
3824
3524 -json5@^0.5.0, json5@^0.5.1:
3825 +json5@^0.5.1:
3826 version "0.5.1"
3827 resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
3828
@@ -3538,24 +3839,38 @@ jsonpointer@^4.0.0, jsonpointer@^4.0.1:
3839 resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
3840
3841 jsprim@^1.2.2:
3541 - version "1.4.0"
3542 - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918"
3842 + version "1.4.1"
3843 + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
3844 dependencies:
3845 assert-plus "1.0.0"
3545 - extsprintf "1.0.2"
3846 + extsprintf "1.3.0"
3847 json-schema "0.2.3"
3547 - verror "1.3.6"
3848 + verror "1.10.0"
3849
3850 jsx-ast-utils@^1.3.4:
3851 version "1.4.1"
3852 resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1"
3853
3553 -kind-of@^3.0.2:
3554 - version "3.2.0"
3555 - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07"
3854 +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
3855 + version "3.2.2"
3856 + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
3857 dependencies:
3858 is-buffer "^1.1.5"
3859
3860 +kind-of@^4.0.0:
3861 + version "4.0.0"
3862 + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
3863 + dependencies:
3864 + is-buffer "^1.1.5"
3865 +
3866 +kind-of@^5.0.0:
3867 + version "5.1.0"
3868 + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
3869 +
3870 +kind-of@^6.0.0, kind-of@^6.0.2:
3871 + version "6.0.2"
3872 + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
3873 +
3874 lazy-cache@^1.0.3:
3875 version "1.0.4"
3876 resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
@@ -3736,10 +4051,14 @@ lodash@^3.10.0, lodash@^3.2.0, lodash@^3.9.3:
4051 version "3.10.1"
4052 resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
4053
3739 -lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0:
4054 +lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.4, lodash@^4.3.0:
4055 version "4.17.4"
4056 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
4057
4058 +lodash@^4.2.0:
4059 + version "4.17.10"
4060 + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
4061 +
4062 log-driver@1.2.5:
4063 version "1.2.5"
4064 resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056"
@@ -3786,6 +4105,16 @@ makeerror@1.0.x:
4105 dependencies:
4106 tmpl "1.0.x"
4107
4108 +map-cache@^0.2.2:
4109 + version "0.2.2"
4110 + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
4111 +
4112 +map-visit@^1.0.0:
4113 + version "1.0.0"
4114 + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
4115 + dependencies:
4116 + object-visit "^1.0.0"
4117 +
4118 mem@^1.1.0:
4119 version "1.1.0"
4120 resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
@@ -3820,19 +4149,37 @@ micromatch@^2.1.5, micromatch@^2.3.11:
4149 parse-glob "^3.0.4"
4150 regex-cache "^0.4.2"
4151
3823 -mime-db@~1.27.0:
3824 - version "1.27.0"
3825 - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
4152 +micromatch@^3.1.8:
4153 + version "3.1.10"
4154 + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
4155 + dependencies:
4156 + arr-diff "^4.0.0"
4157 + array-unique "^0.3.2"
4158 + braces "^2.3.1"
4159 + define-property "^2.0.2"
4160 + extend-shallow "^3.0.2"
4161 + extglob "^2.0.4"
4162 + fragment-cache "^0.2.1"
4163 + kind-of "^6.0.2"
4164 + nanomatch "^1.2.9"
4165 + object.pick "^1.3.0"
4166 + regex-not "^1.0.0"
4167 + snapdragon "^0.8.1"
4168 + to-regex "^3.0.2"
4169
4170 mime-db@~1.30.0:
4171 version "1.30.0"
4172 resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
4173
4174 +mime-db@~1.33.0:
4175 + version "1.33.0"
4176 + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
4177 +
4178 mime-types@^2.1.12, mime-types@~2.1.7:
3832 - version "2.1.15"
3833 - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed"
4179 + version "2.1.18"
4180 + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
4181 dependencies:
3835 - mime-db "~1.27.0"
4182 + mime-db "~1.33.0"
4183
4184 mime-types@~2.1.17:
4185 version "2.1.17"
@@ -3844,13 +4191,13 @@ mimic-fn@^1.0.0:
4191 version "1.1.0"
4192 resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
4193
3847 -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3:
4194 +"minimatch@2 || 3", minimatch@^3.0.3:
4195 version "3.0.3"
4196 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
4197 dependencies:
4198 brace-expansion "^1.0.0"
4199
3853 -minimatch@3.0.4, minimatch@^3.0.4:
4200 +minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4:
4201 version "3.0.4"
4202 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
4203 dependencies:
@@ -3870,16 +4217,32 @@ minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0:
4217 version "1.2.0"
4218 resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
4219
4220 +minipass@^2.2.1, minipass@^2.2.4:
4221 + version "2.2.4"
4222 + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.2.4.tgz#03c824d84551ec38a8d1bb5bc350a5a30a354a40"
4223 + dependencies:
4224 + safe-buffer "^5.1.1"
4225 + yallist "^3.0.0"
4226 +
4227 +minizlib@^1.1.0:
4228 + version "1.1.0"
4229 + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb"
4230 + dependencies:
4231 + minipass "^2.2.1"
4232 +
4233 +mixin-deep@^1.2.0:
4234 + version "1.3.1"
4235 + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
4236 + dependencies:
4237 + for-in "^1.0.2"
4238 + is-extendable "^1.0.1"
4239 +
4240 mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1:
4241 version "0.5.1"
4242 resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
4243 dependencies:
4244 minimist "0.0.8"
4245
3879 -ms@0.7.3:
3880 - version "0.7.3"
3881 - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff"
3882 -
4246 ms@2.0.0:
4247 version "2.0.0"
4248 resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -3894,9 +4257,26 @@ mute-stream@0.0.7:
4257 version "0.0.7"
4258 resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
4259
3897 -nan@^2.3.0:
3898 - version "2.6.2"
3899 - resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
4260 +nan@^2.3.0, nan@^2.9.2:
4261 + version "2.10.0"
4262 + resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f"
4263 +
4264 +nanomatch@^1.2.9:
4265 + version "1.2.9"
4266 + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2"
4267 + dependencies:
4268 + arr-diff "^4.0.0"
4269 + array-unique "^0.3.2"
4270 + define-property "^2.0.2"
4271 + extend-shallow "^3.0.2"
4272 + fragment-cache "^0.2.1"
4273 + is-odd "^2.0.0"
4274 + is-windows "^1.0.2"
4275 + kind-of "^6.0.2"
4276 + object.pick "^1.3.0"
4277 + regex-not "^1.0.0"
4278 + snapdragon "^0.8.1"
4279 + to-regex "^3.0.1"
4280
4281 natural-compare@^1.4.0:
4282 version "1.4.0"
@@ -3906,6 +4286,14 @@ ncp@^2.0.0:
4286 version "2.0.0"
4287 resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
4288
4289 +needle@^2.2.0:
4290 + version "2.2.0"
4291 + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.0.tgz#f14efc69cee1024b72c8b21c7bdf94a731dc12fa"
4292 + dependencies:
4293 + debug "^2.1.2"
4294 + iconv-lite "^0.4.4"
4295 + sax "^1.2.4"
4296 +
4297 node-cleanup@^2.1.2:
4298 version "2.1.2"
4299 resolved "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz#7ac19abd297e09a7f72a71545d951b517e4dde2c"
@@ -3930,9 +4318,9 @@ node-notifier@^5.1.2:
4318 shellwords "^0.1.0"
4319 which "^1.2.12"
4320
3933 -node-pre-gyp@^0.6.29:
3934 - version "0.6.34"
3935 - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7"
4321 +node-pre-gyp@^0.6.36:
4322 + version "0.6.36"
4323 + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786"
4324 dependencies:
4325 mkdirp "^0.5.1"
4326 nopt "^4.0.1"
@@ -3944,19 +4332,20 @@ node-pre-gyp@^0.6.29:
4332 tar "^2.2.1"
4333 tar-pack "^3.4.0"
4334
3947 -node-pre-gyp@^0.6.36:
3948 - version "0.6.36"
3949 - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786"
4335 +node-pre-gyp@^0.9.0:
4336 + version "0.9.1"
4337 + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.9.1.tgz#f11c07516dd92f87199dbc7e1838eab7cd56c9e0"
4338 dependencies:
4339 + detect-libc "^1.0.2"
4340 mkdirp "^0.5.1"
4341 + needle "^2.2.0"
4342 nopt "^4.0.1"
4343 + npm-packlist "^1.1.6"
4344 npmlog "^4.0.2"
4345 rc "^1.1.7"
3955 - request "^2.81.0"
4346 rimraf "^2.6.1"
4347 semver "^5.3.0"
3958 - tar "^2.2.1"
3959 - tar-pack "^3.4.0"
4348 + tar "^4"
4349
4350 nopt@^4.0.1:
4351 version "4.0.1"
@@ -3966,20 +4355,31 @@ nopt@^4.0.1:
4355 osenv "^0.1.4"
4356
4357 normalize-package-data@^2.3.2:
3969 - version "2.3.8"
3970 - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb"
4358 + version "2.4.0"
4359 + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
4360 dependencies:
4361 hosted-git-info "^2.1.4"
4362 is-builtin-module "^1.0.0"
4363 semver "2 || 3 || 4 || 5"
4364 validate-npm-package-license "^3.0.1"
4365
3977 -normalize-path@^2.0.1:
4366 +normalize-path@^2.0.0, normalize-path@^2.0.1:
4367 version "2.1.1"
4368 resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
4369 dependencies:
4370 remove-trailing-separator "^1.0.1"
4371
4372 +npm-bundled@^1.0.1:
4373 + version "1.0.3"
4374 + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308"
4375 +
4376 +npm-packlist@^1.1.6:
4377 + version "1.1.10"
4378 + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a"
4379 + dependencies:
4380 + ignore-walk "^3.0.1"
4381 + npm-bundled "^1.0.1"
4382 +
4383 npm-run-path@^2.0.0:
4384 version "2.0.2"
4385 resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -3987,12 +4387,12 @@ npm-run-path@^2.0.0:
4387 path-key "^2.0.0"
4388
4389 npmlog@^4.0.2:
3990 - version "4.0.2"
3991 - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f"
4390 + version "4.1.2"
4391 + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
4392 dependencies:
4393 are-we-there-yet "~1.1.2"
4394 console-control-strings "~1.1.0"
3995 - gauge "~2.7.1"
4395 + gauge "~2.7.3"
4396 set-blocking "~2.0.0"
4397
4398 number-is-nan@^1.0.0:
@@ -4015,10 +4415,24 @@ object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
4415 version "4.1.1"
4416 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
4417
4418 +object-copy@^0.1.0:
4419 + version "0.1.0"
4420 + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
4421 + dependencies:
4422 + copy-descriptor "^0.1.0"
4423 + define-property "^0.2.5"
4424 + kind-of "^3.0.3"
4425 +
4426 object-keys@^1.0.10, object-keys@^1.0.6, object-keys@^1.0.8:
4427 version "1.0.11"
4428 resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
4429
4430 +object-visit@^1.0.0:
4431 + version "1.0.1"
4432 + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
4433 + dependencies:
4434 + isobject "^3.0.0"
4435 +
4436 object.assign@^4.0.4:
4437 version "4.0.4"
4438 resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc"
@@ -4041,6 +4455,12 @@ object.omit@^2.0.0:
4455 for-own "^0.1.4"
4456 is-extendable "^0.1.1"
4457
4458 +object.pick@^1.3.0:
4459 + version "1.3.0"
4460 + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
4461 + dependencies:
4462 + isobject "^3.0.1"
4463 +
4464 once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0:
4465 version "1.4.0"
4466 resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -4111,13 +4531,13 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2:
4531 resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
4532
4533 osenv@^0.1.4:
4114 - version "0.1.4"
4115 - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
4534 + version "0.1.5"
4535 + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
4536 dependencies:
4537 os-homedir "^1.0.0"
4538 os-tmpdir "^1.0.0"
4539
4120 -output-file-sync@^1.1.0:
4540 +output-file-sync@^1.1.0, output-file-sync@^1.1.2:
4541 version "1.1.2"
4542 resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76"
4543 dependencies:
@@ -4130,8 +4550,10 @@ p-finally@^1.0.0:
4550 resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
4551
4552 p-limit@^1.1.0:
4133 - version "1.1.0"
4134 - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
4553 + version "1.2.0"
4554 + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c"
4555 + dependencies:
4556 + p-try "^1.0.0"
4557
4558 p-locate@^2.0.0:
4559 version "2.0.0"
@@ -4139,6 +4561,10 @@ p-locate@^2.0.0:
4561 dependencies:
4562 p-limit "^1.1.0"
4563
4564 +p-try@^1.0.0:
4565 + version "1.0.0"
4566 + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
4567 +
4568 parse-diff@^0.4.0:
4569 version "0.4.0"
4570 resolved "https://registry.yarnpkg.com/parse-diff/-/parse-diff-0.4.0.tgz#9ce35bcce8fc0b7c58f46d71113394fc0b4982dd"
@@ -4187,6 +4613,10 @@ parse5@^3.0.2:
4613 dependencies:
4614 "@types/node" "*"
4615
4616 +pascalcase@^0.1.1:
4617 + version "0.1.1"
4618 + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
4619 +
4620 path-dirname@^1.0.0:
4621 version "1.0.2"
4622 resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
@@ -4205,7 +4635,7 @@ path-exists@^3.0.0:
4635 version "3.0.0"
4636 resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
4637
4208 -path-is-absolute@^1.0.0:
4638 +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
4639 version "1.0.1"
4640 resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
4641
@@ -4235,10 +4665,6 @@ path-type@^2.0.0:
4665 dependencies:
4666 pify "^2.0.0"
4667
4238 -performance-now@^0.2.0:
4239 - version "0.2.0"
4240 - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
4241 -
4668 performance-now@^2.1.0:
4669 version "2.1.0"
4670 resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
@@ -4273,6 +4699,10 @@ pn@^1.0.0:
4699 version "1.1.0"
4700 resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
4701
4702 +posix-character-classes@^0.1.0:
4703 + version "0.1.1"
4704 + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
4705 +
4706 prelude-ls@~1.1.2:
4707 version "1.1.2"
4708 resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -4303,7 +4733,11 @@ pretty-format@^22.1.0:
4733 ansi-regex "^3.0.0"
4734 ansi-styles "^3.2.0"
4735
4306 -private@^0.1.6, private@~0.1.5:
4736 +private@^0.1.6, private@^0.1.7:
4737 + version "0.1.8"
4738 + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
4739 +
4740 +private@~0.1.5:
4741 version "0.1.7"
4742 resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
4743
@@ -4311,6 +4745,10 @@ process-nextick-args@^1.0.6, process-nextick-args@~1.0.6:
4745 version "1.0.7"
4746 resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
4747
4748 +process-nextick-args@~2.0.0:
4749 + version "2.0.0"
4750 + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
4751 +
4752 progress@^2.0.0:
4753 version "2.0.0"
4754 resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
@@ -4383,10 +4821,6 @@ qs@~6.3.0:
4821 version "6.3.2"
4822 resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
4823
4386 -qs@~6.4.0:
4387 - version "6.4.0"
4388 - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
4389 -
4824 qs@~6.5.1:
4825 version "6.5.1"
4826 resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
@@ -4398,15 +4832,15 @@ random-seed@^0.3.0:
4832 json-stringify-safe "^5.0.1"
4833
4834 randomatic@^1.1.3:
4401 - version "1.1.6"
4402 - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb"
4835 + version "1.1.7"
4836 + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
4837 dependencies:
4404 - is-number "^2.0.2"
4405 - kind-of "^3.0.2"
4838 + is-number "^3.0.0"
4839 + kind-of "^4.0.0"
4840
4841 rc@^1.1.7:
4408 - version "1.2.1"
4409 - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
4842 + version "1.2.6"
4843 + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092"
4844 dependencies:
4845 deep-extend "~0.4.0"
4846 ini "~1.3.0"
@@ -4474,7 +4908,7 @@ read-pkg@^2.0.0:
4908 isarray "0.0.1"
4909 string_decoder "~0.10.x"
4910
4477 -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5:
4911 +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.1.5:
4912 version "2.2.9"
4913 resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8"
4914 dependencies:
@@ -4486,6 +4920,18 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable
4920 string_decoder "~1.0.0"
4921 util-deprecate "~1.0.1"
4922
4923 +readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4:
4924 + version "2.3.6"
4925 + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
4926 + dependencies:
4927 + core-util-is "~1.0.0"
4928 + inherits "~2.0.3"
4929 + isarray "~1.0.0"
4930 + process-nextick-args "~2.0.0"
4931 + safe-buffer "~5.1.1"
4932 + string_decoder "~1.1.1"
4933 + util-deprecate "~1.0.1"
4934 +
4935 readable-stream@^2.0.5, readable-stream@^2.2.2:
4936 version "2.3.3"
4937 resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
@@ -4550,9 +4996,9 @@ regenerate@^1.2.1:
4996 version "1.3.2"
4997 resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
4998
4553 -regenerator-runtime@^0.10.0:
4554 - version "0.10.4"
4555 - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.4.tgz#74cb6598d3ba2eb18694e968a40e2b3b4df9cf93"
4999 +regenerator-runtime@^0.10.0, regenerator-runtime@^0.10.5:
5000 + version "0.10.5"
5001 + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
5002
5003 regenerator-runtime@^0.11.0:
5004 version "0.11.0"
@@ -4578,11 +5024,17 @@ regenerator@0.8.40:
5024 through "~2.3.8"
5025
5026 regex-cache@^0.4.2:
4581 - version "0.4.3"
4582 - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
5027 + version "0.4.4"
5028 + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
5029 dependencies:
5030 is-equal-shallow "^0.1.3"
4585 - is-primitive "^2.0.0"
5031 +
5032 +regex-not@^1.0.0, regex-not@^1.0.2:
5033 + version "1.0.2"
5034 + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
5035 + dependencies:
5036 + extend-shallow "^3.0.2"
5037 + safe-regex "^1.1.0"
5038
5039 regexpu@^1.3.0:
5040 version "1.3.0"
@@ -4605,14 +5057,14 @@ regjsparser@^0.1.4:
5057 jsesc "~0.5.0"
5058
5059 remove-trailing-separator@^1.0.1:
4608 - version "1.0.1"
4609 - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4"
5060 + version "1.1.0"
5061 + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
5062
5063 repeat-element@^1.1.2:
5064 version "1.1.2"
5065 resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
5066
4615 -repeat-string@^1.5.2:
5067 +repeat-string@^1.5.2, repeat-string@^1.6.1:
5068 version "1.6.1"
5069 resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
5070
@@ -4676,31 +5128,31 @@ request@2.79.0:
5128 uuid "^3.0.0"
5129
5130 request@^2.81.0:
4679 - version "2.81.0"
4680 - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
5131 + version "2.85.0"
5132 + resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa"
5133 dependencies:
4682 - aws-sign2 "~0.6.0"
4683 - aws4 "^1.2.1"
5134 + aws-sign2 "~0.7.0"
5135 + aws4 "^1.6.0"
5136 caseless "~0.12.0"
5137 combined-stream "~1.0.5"
4686 - extend "~3.0.0"
5138 + extend "~3.0.1"
5139 forever-agent "~0.6.1"
4688 - form-data "~2.1.1"
4689 - har-validator "~4.2.1"
4690 - hawk "~3.1.3"
4691 - http-signature "~1.1.0"
5140 + form-data "~2.3.1"
5141 + har-validator "~5.0.3"
5142 + hawk "~6.0.2"
5143 + http-signature "~1.2.0"
5144 is-typedarray "~1.0.0"
5145 isstream "~0.1.2"
5146 json-stringify-safe "~5.0.1"
4695 - mime-types "~2.1.7"
4696 - oauth-sign "~0.8.1"
4697 - performance-now "^0.2.0"
4698 - qs "~6.4.0"
4699 - safe-buffer "^5.0.1"
4700 - stringstream "~0.0.4"
4701 - tough-cookie "~2.3.0"
5147 + mime-types "~2.1.17"
5148 + oauth-sign "~0.8.2"
5149 + performance-now "^2.1.0"
5150 + qs "~6.5.1"
5151 + safe-buffer "^5.1.1"
5152 + stringstream "~0.0.5"
5153 + tough-cookie "~2.3.3"
5154 tunnel-agent "^0.6.0"
4703 - uuid "^3.0.0"
5155 + uuid "^3.1.0"
5156
5157 request@^2.83.0:
5158 version "2.83.0"
@@ -4759,6 +5211,10 @@ resolve-from@^1.0.0:
5211 version "1.0.1"
5212 resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
5213
5214 +resolve-url@^0.2.1:
5215 + version "0.2.1"
5216 + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
5217 +
5218 resolve@1.1.7:
5219 version "1.1.7"
5220 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
@@ -4782,6 +5238,10 @@ restore-cursor@^2.0.0:
5238 onetime "^2.0.0"
5239 signal-exit "^3.0.2"
5240
5241 +ret@~0.1.10:
5242 + version "0.1.15"
5243 + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
5244 +
5245 rfc6902@^2.2.2:
5246 version "2.2.2"
5247 resolved "https://registry.yarnpkg.com/rfc6902/-/rfc6902-2.2.2.tgz#518a4e9caac1688f3d94c9df2fdcdb6ce21f29be"
@@ -4792,15 +5252,15 @@ right-align@^0.1.1:
5252 dependencies:
5253 align-text "^0.1.1"
5254
4795 -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1:
4796 - version "2.6.1"
4797 - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
5255 +rimraf@2, rimraf@^2.5.1, rimraf@^2.5.4:
5256 + version "2.6.2"
5257 + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
5258 dependencies:
5259 glob "^7.0.5"
5260
4801 -rimraf@^2.5.4:
4802 - version "2.6.2"
4803 - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
5261 +rimraf@^2.2.8, rimraf@^2.6.1:
5262 + version "2.6.1"
5263 + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
5264 dependencies:
5265 glob "^7.0.5"
5266
@@ -4903,14 +5363,16 @@ rxjs@^5.5.6:
5363 dependencies:
5364 symbol-observable "1.0.1"
5365
4906 -safe-buffer@^5.0.1:
4907 - version "5.0.1"
4908 - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
4909 -
4910 -safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
5366 +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
5367 version "5.1.1"
5368 resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
5369
5370 +safe-regex@^1.1.0:
5371 + version "1.1.0"
5372 + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
5373 + dependencies:
5374 + ret "~0.1.10"
5375 +
5376 safer-buffer@^2.1.0:
5377 version "2.1.2"
5378 resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
@@ -4933,14 +5395,18 @@ sax@^1.2.1:
5395 version "1.2.2"
5396 resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828"
5397
4936 -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0:
4937 - version "5.3.0"
4938 - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
5398 +sax@^1.2.4:
5399 + version "1.2.4"
5400 + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
5401
4940 -semver@^5.5.0:
5402 +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0:
5403 version "5.5.0"
5404 resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
5405
5406 +semver@^5.1.0:
5407 + version "5.3.0"
5408 + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
5409 +
5410 set-blocking@^2.0.0, set-blocking@~2.0.0:
5411 version "2.0.0"
5412 resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
@@ -4949,6 +5415,24 @@ set-immediate-shim@^1.0.1:
5415 version "1.0.1"
5416 resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
5417
5418 +set-value@^0.4.3:
5419 + version "0.4.3"
5420 + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
5421 + dependencies:
5422 + extend-shallow "^2.0.1"
5423 + is-extendable "^0.1.1"
5424 + is-plain-object "^2.0.1"
5425 + to-object-path "^0.3.0"
5426 +
5427 +set-value@^2.0.0:
5428 + version "2.0.0"
5429 + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
5430 + dependencies:
5431 + extend-shallow "^2.0.1"
5432 + is-extendable "^0.1.1"
5433 + is-plain-object "^2.0.3"
5434 + split-string "^3.0.1"
5435 +
5436 setimmediate@^1.0.5:
5437 version "1.0.5"
5438 resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
@@ -4989,6 +5473,33 @@ slice-ansi@1.0.0:
5473 dependencies:
5474 is-fullwidth-code-point "^2.0.0"
5475
5476 +snapdragon-node@^2.0.1:
5477 + version "2.1.1"
5478 + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
5479 + dependencies:
5480 + define-property "^1.0.0"
5481 + isobject "^3.0.0"
5482 + snapdragon-util "^3.0.1"
5483 +
5484 +snapdragon-util@^3.0.1:
5485 + version "3.0.1"
5486 + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
5487 + dependencies:
5488 + kind-of "^3.2.0"
5489 +
5490 +snapdragon@^0.8.1:
5491 + version "0.8.2"
5492 + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
5493 + dependencies:
5494 + base "^0.11.1"
5495 + debug "^2.2.0"
5496 + define-property "^0.2.5"
5497 + extend-shallow "^2.0.1"
5498 + map-cache "^0.2.2"
5499 + source-map "^0.5.6"
5500 + source-map-resolve "^0.5.0"
5501 + use "^3.1.0"
5502 +
5503 sntp@1.x.x:
5504 version "1.0.9"
5505 resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
@@ -5001,15 +5512,25 @@ sntp@2.x.x:
5512 dependencies:
5513 hoek "4.x.x"
5514
5515 +source-map-resolve@^0.5.0:
5516 + version "0.5.1"
5517 + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a"
5518 + dependencies:
5519 + atob "^2.0.0"
5520 + decode-uri-component "^0.2.0"
5521 + resolve-url "^0.2.1"
5522 + source-map-url "^0.4.0"
5523 + urix "^0.1.0"
5524 +
5525 source-map-support@^0.2.10:
5526 version "0.2.10"
5527 resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.2.10.tgz#ea5a3900a1c1cb25096a0ae8cc5c2b4b10ded3dc"
5528 dependencies:
5529 source-map "0.1.32"
5530
5010 -source-map-support@^0.4.2:
5011 - version "0.4.14"
5012 - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.14.tgz#9d4463772598b86271b4f523f6c1f4e02a7d6aef"
5531 +source-map-support@^0.4.15:
5532 + version "0.4.18"
5533 + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
5534 dependencies:
5535 source-map "^0.5.6"
5536
@@ -5019,6 +5540,10 @@ source-map-support@^0.5.0:
5540 dependencies:
5541 source-map "^0.6.0"
5542
5543 +source-map-url@^0.4.0:
5544 + version "0.4.0"
5545 + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
5546 +
5547 source-map@0.1.32:
5548 version "0.1.32"
5549 resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266"
@@ -5031,7 +5556,11 @@ source-map@^0.4.4, source-map@~0.4.0, source-map@~0.4.2:
5556 dependencies:
5557 amdefine ">=0.0.4"
5558
5034 -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1:
5559 +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.6:
5560 + version "0.5.7"
5561 + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
5562 +
5563 +source-map@^0.5.3, source-map@~0.5.0, source-map@~0.5.1:
5564 version "0.5.6"
5565 resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
5566
@@ -5054,27 +5583,41 @@ spawn-sync@^1.0.15:
5583 concat-stream "^1.4.7"
5584 os-shim "^0.1.2"
5585
5057 -spdx-correct@~1.0.0:
5058 - version "1.0.2"
5059 - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
5586 +spdx-correct@^3.0.0:
5587 + version "3.0.0"
5588 + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
5589 dependencies:
5061 - spdx-license-ids "^1.0.2"
5590 + spdx-expression-parse "^3.0.0"
5591 + spdx-license-ids "^3.0.0"
5592
5063 -spdx-expression-parse@~1.0.0:
5064 - version "1.0.4"
5065 - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
5593 +spdx-exceptions@^2.1.0:
5594 + version "2.1.0"
5595 + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
5596
5067 -spdx-license-ids@^1.0.2:
5068 - version "1.2.2"
5069 - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
5597 +spdx-expression-parse@^3.0.0:
5598 + version "3.0.0"
5599 + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
5600 + dependencies:
5601 + spdx-exceptions "^2.1.0"
5602 + spdx-license-ids "^3.0.0"
5603 +
5604 +spdx-license-ids@^3.0.0:
5605 + version "3.0.0"
5606 + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87"
5607 +
5608 +split-string@^3.0.1, split-string@^3.0.2:
5609 + version "3.1.0"
5610 + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
5611 + dependencies:
5612 + extend-shallow "^3.0.0"
5613
5614 sprintf-js@~1.0.2:
5615 version "1.0.3"
5616 resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
5617
5618 sshpk@^1.7.0:
5076 - version "1.13.0"
5077 - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c"
5619 + version "1.14.1"
5620 + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb"
5621 dependencies:
5622 asn1 "~0.2.3"
5623 assert-plus "^1.0.0"
@@ -5083,7 +5626,6 @@ sshpk@^1.7.0:
5626 optionalDependencies:
5627 bcrypt-pbkdf "^1.0.0"
5628 ecc-jsbn "~0.1.1"
5086 - jodid25519 "^1.0.0"
5629 jsbn "~0.1.0"
5630 tweetnacl "~0.14.0"
5631
@@ -5095,6 +5637,13 @@ stack-utils@^1.0.1:
5637 version "1.0.1"
5638 resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620"
5639
5640 +static-extend@^0.1.1:
5641 + version "0.1.2"
5642 + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
5643 + dependencies:
5644 + define-property "^0.2.5"
5645 + object-copy "^0.1.0"
5646 +
5647 stealthy-require@^1.1.0:
5648 version "1.1.1"
5649 resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
@@ -5136,18 +5685,18 @@ string_decoder@~0.10.x:
5685 version "0.10.31"
5686 resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
5687
5139 -string_decoder@~1.0.0:
5140 - version "1.0.0"
5141 - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667"
5142 - dependencies:
5143 - buffer-shims "~1.0.0"
5144 -
5145 -string_decoder@~1.0.3:
5688 +string_decoder@~1.0.0, string_decoder@~1.0.3:
5689 version "1.0.3"
5690 resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
5691 dependencies:
5692 safe-buffer "~5.1.0"
5693
5694 +string_decoder@~1.1.1:
5695 + version "1.1.1"
5696 + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
5697 + dependencies:
5698 + safe-buffer "~5.1.0"
5699 +
5700 stringmap@~0.2.2:
5701 version "0.2.2"
5702 resolved "https://registry.yarnpkg.com/stringmap/-/stringmap-0.2.2.tgz#556c137b258f942b8776f5b2ef582aa069d7d1b1"
@@ -5209,8 +5758,8 @@ supports-color@^3.1.2:
5758 has-flag "^1.0.0"
5759
5760 supports-color@^4.0.0:
5212 - version "4.2.0"
5213 - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.0.tgz#ad986dc7eb2315d009b4d77c8169c2231a684037"
5761 + version "4.5.0"
5762 + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
5763 dependencies:
5764 has-flag "^2.0.0"
5765
@@ -5220,6 +5769,12 @@ supports-color@^5.0.0:
5769 dependencies:
5770 has-flag "^2.0.0"
5771
5772 +supports-color@^5.3.0:
5773 + version "5.4.0"
5774 + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
5775 + dependencies:
5776 + has-flag "^3.0.0"
5777 +
5778 supports-hyperlinks@^1.0.1:
5779 version "1.0.1"
5780 resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz#71daedf36cc1060ac5100c351bb3da48c29c0ef7"
@@ -5256,8 +5811,8 @@ tar-fs@^1.8.1:
5811 tar-stream "^1.1.2"
5812
5813 tar-pack@^3.4.0:
5259 - version "3.4.0"
5260 - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984"
5814 + version "3.4.1"
5815 + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f"
5816 dependencies:
5817 debug "^2.2.0"
5818 fstream "^1.0.10"
@@ -5285,6 +5840,18 @@ tar@^2.2.1:
5840 fstream "^1.0.2"
5841 inherits "2"
5842
5843 +tar@^4:
5844 + version "4.4.1"
5845 + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.1.tgz#b25d5a8470c976fd7a9a8a350f42c59e9fa81749"
5846 + dependencies:
5847 + chownr "^1.0.1"
5848 + fs-minipass "^1.2.5"
5849 + minipass "^2.2.4"
5850 + minizlib "^1.1.0"
5851 + mkdirp "^0.5.0"
5852 + safe-buffer "^5.1.1"
5853 + yallist "^3.0.2"
5854 +
5855 targz@^1.0.1:
5856 version "1.0.1"
5857 resolved "https://registry.yarnpkg.com/targz/-/targz-1.0.1.tgz#8f76a523694cdedfbb5d60a4076ff6eeecc5398f"
@@ -5305,12 +5872,12 @@ terminal-table@0.0.12:
5872 colors "^1.0.3"
5873 eastasianwidth "^0.1.0"
5874
5308 -test-exclude@^4.1.1:
5309 - version "4.1.1"
5310 - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26"
5875 +test-exclude@^4.2.1:
5876 + version "4.2.1"
5877 + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa"
5878 dependencies:
5879 arrify "^1.0.1"
5313 - micromatch "^2.3.11"
5880 + micromatch "^3.1.8"
5881 object-assign "^4.1.0"
5882 read-pkg-up "^1.0.1"
5883 require-main-filename "^1.0.1"
@@ -5380,7 +5947,7 @@ to-absolute-glob@^2.0.0:
5947 is-absolute "^0.2.5"
5948 is-negated-glob "^1.0.0"
5949
5383 -to-fast-properties@^1.0.0, to-fast-properties@^1.0.1:
5950 +to-fast-properties@^1.0.0:
5951 version "1.0.2"
5952 resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320"
5953
@@ -5392,6 +5959,28 @@ to-fast-properties@^2.0.0:
5959 version "2.0.0"
5960 resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
5961
5962 +to-object-path@^0.3.0:
5963 + version "0.3.0"
5964 + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
5965 + dependencies:
5966 + kind-of "^3.0.2"
5967 +
5968 +to-regex-range@^2.1.0:
5969 + version "2.1.1"
5970 + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
5971 + dependencies:
5972 + is-number "^3.0.0"
5973 + repeat-string "^1.6.1"
5974 +
5975 +to-regex@^3.0.1, to-regex@^3.0.2:
5976 + version "3.0.2"
5977 + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
5978 + dependencies:
5979 + define-property "^2.0.2"
5980 + extend-shallow "^3.0.2"
5981 + regex-not "^1.0.2"
5982 + safe-regex "^1.1.0"
5983 +
5984 tough-cookie@>=2.3.3, tough-cookie@^2.3.3, tough-cookie@~2.3.3:
5985 version "2.3.3"
5986 resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
@@ -5399,8 +5988,8 @@ tough-cookie@>=2.3.3, tough-cookie@^2.3.3, tough-cookie@~2.3.3:
5988 punycode "^1.4.1"
5989
5990 tough-cookie@~2.3.0:
5402 - version "2.3.2"
5403 - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
5991 + version "2.3.4"
5992 + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
5993 dependencies:
5994 punycode "^1.4.1"
5995
@@ -5483,6 +6072,15 @@ unc-path-regex@^0.1.0:
6072 version "0.1.2"
6073 resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
6074
6075 +union-value@^1.0.0:
6076 + version "1.0.0"
6077 + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
6078 + dependencies:
6079 + arr-union "^3.1.0"
6080 + get-value "^2.0.6"
6081 + is-extendable "^0.1.1"
6082 + set-value "^0.4.3"
6083 +
6084 unique-stream@^2.0.2:
6085 version "2.2.1"
6086 resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369"
@@ -5490,10 +6088,27 @@ unique-stream@^2.0.2:
6088 json-stable-stringify "^1.0.0"
6089 through2-filter "^2.0.0"
6090
6091 +unset-value@^1.0.0:
6092 + version "1.0.0"
6093 + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
6094 + dependencies:
6095 + has-value "^0.3.1"
6096 + isobject "^3.0.0"
6097 +
6098 +urix@^0.1.0:
6099 + version "0.1.0"
6100 + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
6101 +
6102 url-template@^2.0.8:
6103 version "2.0.8"
6104 resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21"
6105
6106 +use@^3.1.0:
6107 + version "3.1.0"
6108 + resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544"
6109 + dependencies:
6110 + kind-of "^6.0.2"
6111 +
6112 user-home@^1.1.1:
6113 version "1.1.1"
6114 resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
@@ -5510,31 +6125,33 @@ util.promisify@^1.0.0:
6125 object.getownpropertydescriptors "^2.0.3"
6126
6127 uuid@^3.0.0:
5513 - version "3.0.1"
5514 - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
6128 + version "3.2.1"
6129 + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
6130
6131 uuid@^3.1.0:
6132 version "3.1.0"
6133 resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
6134
5520 -v8flags@^2.0.10:
6135 +v8flags@^2.1.1:
6136 version "2.1.1"
6137 resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4"
6138 dependencies:
6139 user-home "^1.1.1"
6140
6141 validate-npm-package-license@^3.0.1:
5527 - version "3.0.1"
5528 - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
6142 + version "3.0.3"
6143 + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338"
6144 dependencies:
5530 - spdx-correct "~1.0.0"
5531 - spdx-expression-parse "~1.0.0"
6145 + spdx-correct "^3.0.0"
6146 + spdx-expression-parse "^3.0.0"
6147
5533 -verror@1.3.6:
5534 - version "1.3.6"
5535 - resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c"
6148 +verror@1.10.0:
6149 + version "1.10.0"
6150 + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
6151 dependencies:
5537 - extsprintf "1.0.2"
6152 + assert-plus "^1.0.0"
6153 + core-util-is "1.0.2"
6154 + extsprintf "^1.2.0"
6155
6156 vinyl-sourcemaps-apply@^0.2.0:
6157 version "0.2.1"
@@ -5626,10 +6243,10 @@ which@^1.2.9:
6243 isexe "^2.0.0"
6244
6245 wide-align@^1.1.0:
5629 - version "1.1.0"
5630 - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad"
6246 + version "1.1.2"
6247 + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
6248 dependencies:
5632 - string-width "^1.0.1"
6249 + string-width "^1.0.2"
6250
6251 window-size@0.1.0:
6252 version "0.1.0"
@@ -5696,6 +6313,10 @@ yallist@^2.0.0, yallist@^2.1.2:
6313 version "2.1.2"
6314 resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
6315
6316 +yallist@^3.0.0, yallist@^3.0.2:
6317 + version "3.0.2"
6318 + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
6319 +
6320 yargs-parser@^2.4.1:
6321 version "2.4.1"
6322 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4"