mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	Upgrade eslint
This commit is contained in:
		
							parent
							
								
									e657d2936e
								
							
						
					
					
						commit
						6e0db0a998
					
				| @ -67,10 +67,10 @@ | ||||
|     "babel-preset-stage-0": "^6.5.0", | ||||
|     "babel-preset-stage-2": "^6.13.0", | ||||
|     "css-loader": "^0.25.0", | ||||
|     "eslint": "^3.4.0", | ||||
|     "eslint-config-finn": "1.0.0-alpha.11", | ||||
|     "eslint-config-finn-react": "^1.0.0-alpha.2", | ||||
|     "eslint-plugin-react": "^6.2.0", | ||||
|     "eslint": "^4.1.1", | ||||
|     "eslint-config-finn": "^2.0.0", | ||||
|     "eslint-config-finn-react": "^2.0.0", | ||||
|     "eslint-plugin-react": "^7.1.0", | ||||
|     "extract-text-webpack-plugin": "^1.0.1", | ||||
|     "identity-obj-proxy": "^3.0.0", | ||||
|     "jest": "^19.0.2", | ||||
|  | ||||
| @ -146,42 +146,42 @@ export default class App extends Component { | ||||
|                         </Navigation> | ||||
|                     </Drawer> | ||||
|                     <ScrollContainer scrollKey="container" shouldUpdateScroll={shouldUpdateScroll}> | ||||
|                     <Content className="mdl-color--grey-50"> | ||||
|                         <Grid noSpacing className={styles.content}> | ||||
|                             <Cell col={12}> | ||||
|                                 {this.props.children} | ||||
|                                 <ErrorContainer /> | ||||
|                             </Cell> | ||||
|                         </Grid> | ||||
|                         <Footer size="mega"> | ||||
|                             <FooterSection type="middle"> | ||||
|                                 <FooterDropDownSection title="Menu"> | ||||
|                         <Content className="mdl-color--grey-50"> | ||||
|                             <Grid noSpacing className={styles.content}> | ||||
|                                 <Cell col={12}> | ||||
|                                     {this.props.children} | ||||
|                                     <ErrorContainer /> | ||||
|                                 </Cell> | ||||
|                             </Grid> | ||||
|                             <Footer size="mega"> | ||||
|                                 <FooterSection type="middle"> | ||||
|                                     <FooterDropDownSection title="Menu"> | ||||
|                                         <FooterLinkList> | ||||
|                                             {createListItem('/features', 'Feature Toggles')} | ||||
|                                             {createListItem('/strategies', 'Strategies')} | ||||
|                                             {createListItem('/history', 'Event History')} | ||||
|                                             {createListItem('/archive', 'Archived Toggles')} | ||||
|                                             {createListItem('/applications', 'Applications')} | ||||
|                                         </FooterLinkList> | ||||
|                                     </FooterDropDownSection> | ||||
|                                     <FooterDropDownSection title="Clients"> | ||||
|                                         <FooterLinkList> | ||||
|                                             <a href="https://github.com/Unleash/unleash-client-node/">Node.js</a> | ||||
|                                             <a href="https://github.com/Unleash/unleash-client-java/">Java</a> | ||||
|                                             <a href="https://github.com/Unleash/unleash-client-go/">Go</a> | ||||
|                                         </FooterLinkList> | ||||
|                                     </FooterDropDownSection> | ||||
|                                 </FooterSection> | ||||
|                                 <FooterSection type="bottom" logo="Unleash"> | ||||
|                                     <FooterLinkList> | ||||
|                                         {createListItem('/features', 'Feature Toggles')} | ||||
|                                         {createListItem('/strategies', 'Strategies')} | ||||
|                                         {createListItem('/history', 'Event History')} | ||||
|                                         {createListItem('/archive', 'Archived Toggles')} | ||||
|                                         {createListItem('/applications', 'Applications')} | ||||
|                                     </FooterLinkList> | ||||
|                                 </FooterDropDownSection> | ||||
|                                 <FooterDropDownSection title="Clients"> | ||||
|                                     <FooterLinkList> | ||||
|                                         <a href="https://github.com/Unleash/unleash-client-node/">Node.js</a> | ||||
|                                         <a href="https://github.com/Unleash/unleash-client-java/">Java</a> | ||||
|                                         <a href="https://github.com/Unleash/unleash-client-go/">Go</a> | ||||
|                                     </FooterLinkList> | ||||
|                                 </FooterDropDownSection> | ||||
|                             </FooterSection> | ||||
|                             <FooterSection type="bottom" logo="Unleash"> | ||||
|                                 <FooterLinkList> | ||||
|                                     <a href="https://github.com/Unleash/unleash/" target="_blank"> | ||||
|                                         <a href="https://github.com/Unleash/unleash/" target="_blank"> | ||||
|                                             GitHub | ||||
|                                     </a> | ||||
|                                     <a href="https://finn.no" target="_blank"><small>A product by</small> FINN.no</a> | ||||
|                                 </FooterLinkList> | ||||
|                             </FooterSection> | ||||
|                         </Footer> | ||||
|                     </Content> | ||||
|                                         </a> | ||||
|                                         <a href="https://finn.no" target="_blank"><small>A product by</small> FINN.no</a> | ||||
|                                     </FooterLinkList> | ||||
|                                 </FooterSection> | ||||
|                             </Footer> | ||||
|                         </Content> | ||||
|                     </ScrollContainer> | ||||
|                 </Layout> | ||||
|             </div> | ||||
|  | ||||
| @ -69,25 +69,25 @@ class ClientApplications extends PureComponent { | ||||
|                     <h6> Toggles</h6> | ||||
|                     <hr /> | ||||
|                     <List> | ||||
|                     {seenToggles.map(({ name, description, enabled, notFound }, i) => | ||||
|                         (notFound ? | ||||
|                         <ListItem twoLine key={i}> | ||||
|                             <ListItemContent icon={'report'} subtitle={'Missing, want to create?'}> | ||||
|                                 <Link to={`/features/create?name=${name}`}> | ||||
|                                     {name} | ||||
|                                 </Link> | ||||
|                             </ListItemContent> | ||||
|                         </ListItem> : | ||||
|                         <ListItem twoLine key={i}> | ||||
|                             <ListItemContent | ||||
|                                 icon={<span><Switch disabled checked={!!enabled} /></span>} | ||||
|                                 subtitle={shorten(description, 60)}> | ||||
|                                 <Link to={`/features/view/${name}`}> | ||||
|                                     {shorten(name, 50)} | ||||
|                                 </Link> | ||||
|                             </ListItemContent> | ||||
|                         </ListItem>) | ||||
|                     )} | ||||
|                         {seenToggles.map(({ name, description, enabled, notFound }, i) => | ||||
|                             (notFound ? | ||||
|                                 <ListItem twoLine key={i}> | ||||
|                                     <ListItemContent icon={'report'} subtitle={'Missing, want to create?'}> | ||||
|                                         <Link to={`/features/create?name=${name}`}> | ||||
|                                             {name} | ||||
|                                         </Link> | ||||
|                                     </ListItemContent> | ||||
|                                 </ListItem> : | ||||
|                                 <ListItem twoLine key={i}> | ||||
|                                     <ListItemContent | ||||
|                                         icon={<span><Switch disabled checked={!!enabled} /></span>} | ||||
|                                         subtitle={shorten(description, 60)}> | ||||
|                                         <Link to={`/features/view/${name}`}> | ||||
|                                             {shorten(name, 50)} | ||||
|                                         </Link> | ||||
|                                     </ListItemContent> | ||||
|                                 </ListItem>) | ||||
|                         )} | ||||
|                     </List> | ||||
|                 </Cell> | ||||
|                 <Cell col={6} tablet={4} phone={12}> | ||||
| @ -96,20 +96,20 @@ class ClientApplications extends PureComponent { | ||||
|                     <List> | ||||
|                         {strategies.map(({ name, description, notFound }, i) => ( | ||||
|                             notFound ? | ||||
|                             <ListItem twoLine key={`${name}-${i}`}> | ||||
|                                 <ListItemContent icon={'report'} subtitle={'Missing, want to create?'}> | ||||
|                                     <Link to={`/strategies/create?name=${name}`}> | ||||
|                                         {name} | ||||
|                                     </Link> | ||||
|                                 </ListItemContent> | ||||
|                             </ListItem> : | ||||
|                             <ListItem twoLine key={`${name}-${i}`}> | ||||
|                                 <ListItemContent icon={'extension'} subtitle={shorten(description, 60)}> | ||||
|                                     <Link to={`/strategies/view/${name}`}> | ||||
|                                         {shorten(name, 50)} | ||||
|                                     </Link> | ||||
|                                 </ListItemContent> | ||||
|                             </ListItem> | ||||
|                                 <ListItem twoLine key={`${name}-${i}`}> | ||||
|                                     <ListItemContent icon={'report'} subtitle={'Missing, want to create?'}> | ||||
|                                         <Link to={`/strategies/create?name=${name}`}> | ||||
|                                             {name} | ||||
|                                         </Link> | ||||
|                                     </ListItemContent> | ||||
|                                 </ListItem> : | ||||
|                                 <ListItem twoLine key={`${name}-${i}`}> | ||||
|                                     <ListItemContent icon={'extension'} subtitle={shorten(description, 60)}> | ||||
|                                         <Link to={`/strategies/view/${name}`}> | ||||
|                                             {shorten(name, 50)} | ||||
|                                         </Link> | ||||
|                                     </ListItemContent> | ||||
|                                 </ListItem> | ||||
|                         ))} | ||||
|                     </List> | ||||
|                 </Cell> | ||||
| @ -117,17 +117,17 @@ class ClientApplications extends PureComponent { | ||||
|                     <h6>{instances.length} Instances registered</h6> | ||||
|                     <hr /> | ||||
|                     <List> | ||||
|                     {instances.map(({ instanceId, clientIp, lastSeen }, i) => ( | ||||
|                         <ListItem key={i} twoLine> | ||||
|                             <ListItemContent | ||||
|                                 icon="timeline" | ||||
|                                 subtitle={ | ||||
|                                     <span>{clientIp} last seen at <small>{formatFullDateTime(lastSeen)}</small></span> | ||||
|                                 }> | ||||
|                                 {instanceId} | ||||
|                             </ListItemContent> | ||||
|                         </ListItem> | ||||
|                     ))} | ||||
|                         {instances.map(({ instanceId, clientIp, lastSeen }, i) => ( | ||||
|                             <ListItem key={i} twoLine> | ||||
|                                 <ListItemContent | ||||
|                                     icon="timeline" | ||||
|                                     subtitle={ | ||||
|                                         <span>{clientIp} last seen at <small>{formatFullDateTime(lastSeen)}</small></span> | ||||
|                                     }> | ||||
|                                     {instanceId} | ||||
|                                 </ListItemContent> | ||||
|                             </ListItem> | ||||
|                         ))} | ||||
|                     </List> | ||||
|                 </Cell> | ||||
|             </Grid>) : ( | ||||
|  | ||||
| @ -3,7 +3,6 @@ import { ProgressBar, Card } from 'react-mdl'; | ||||
| import { AppsLinkList, styles as commonStyles } from '../common'; | ||||
| 
 | ||||
| class ClientStrategies extends Component { | ||||
| 
 | ||||
|     componentDidMount () { | ||||
|         this.props.fetchAll(); | ||||
|     } | ||||
|  | ||||
| @ -17,24 +17,24 @@ class ArchiveList extends Component { | ||||
|             <Card shadow={0} className={commonStyles.fullwidth}> | ||||
|                 { | ||||
|                     archive.length > 0 ? | ||||
|                     <div className={commonStyles.horisontalScroll}> | ||||
|                         <DataTable | ||||
|                             rows={archive} | ||||
|                             className={commonStyles.fullwidth} | ||||
|                             style={{ border: 0 }}> | ||||
|                             <TableHeader style={{ width: '25px' }} name="reviveName" cellFormatter={(reviveName) => ( | ||||
|                                 <IconButton colored name="undo" onClick={() => revive(reviveName)} /> | ||||
|                             )}>Revive</TableHeader> | ||||
|                             <TableHeader style={{ width: '25px' }} name="enabled" cellFormatter={(v) => (v ? 'Yes' : '-')}> | ||||
|                         <div className={commonStyles.horisontalScroll}> | ||||
|                             <DataTable | ||||
|                                 rows={archive} | ||||
|                                 className={commonStyles.fullwidth} | ||||
|                                 style={{ border: 0 }}> | ||||
|                                 <TableHeader style={{ width: '25px' }} name="reviveName" cellFormatter={(reviveName) => ( | ||||
|                                     <IconButton colored name="undo" onClick={() => revive(reviveName)} /> | ||||
|                                 )}>Revive</TableHeader> | ||||
|                                 <TableHeader style={{ width: '25px' }} name="enabled" cellFormatter={(v) => (v ? 'Yes' : '-')}> | ||||
|                                 Enabled</TableHeader> | ||||
|                             <TableHeader name="name">Toggle name</TableHeader> | ||||
|                             <TableHeader numeric name="createdAt">Created</TableHeader> | ||||
|                         </DataTable> | ||||
|                     </div> : | ||||
|                     <div className={commonStyles.emptyState}> | ||||
|                                 <TableHeader name="name">Toggle name</TableHeader> | ||||
|                                 <TableHeader numeric name="createdAt">Created</TableHeader> | ||||
|                             </DataTable> | ||||
|                         </div> : | ||||
|                         <div className={commonStyles.emptyState}> | ||||
|                             <Icon name="archive" className="mdl-color-text--grey-300" style={{ fontSize: '56px' }}/><br /> | ||||
|                             No archived feature toggles, go see <Link to="/features">active toggles here</Link> | ||||
|                     </div> | ||||
|                         </div> | ||||
|                 } | ||||
|             </Card> | ||||
|         ); | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| import React, { Component, PropTypes } from 'react'; | ||||
| import { DataTable, TableHeader }  from 'react-mdl'; | ||||
| import { DataTable, TableHeader } from 'react-mdl'; | ||||
| 
 | ||||
| class ClientStrategies extends Component { | ||||
|     static propTypes () { | ||||
|  | ||||
| @ -15,28 +15,28 @@ export const shorten = (str, len = 50) => (str && str.length > len ? `${str.subs | ||||
| 
 | ||||
| export const AppsLinkList = ({ apps }) => ( | ||||
|     <List> | ||||
|     {apps.length > 0 && apps.map(({ appName, description = '-', icon = 'apps' }) => ( | ||||
|         <ListItem twoLine key={appName}> | ||||
|             <span className="mdl-list__item-primary-content" style={{ minWidth: 0 }}> | ||||
|                 <Icon name={icon} className="mdl-list__item-avatar"/> | ||||
|                 <Link to={`/applications/${appName}`} className={[styles.listLink, styles.truncate].join(' ')}> | ||||
|                     {appName} | ||||
|                     <span className={['mdl-list__item-sub-title', styles.truncate].join(' ')}>{description}</span> | ||||
|                 </Link> | ||||
|             </span> | ||||
|         </ListItem> | ||||
|     ))} | ||||
|         {apps.length > 0 && apps.map(({ appName, description = '-', icon = 'apps' }) => ( | ||||
|             <ListItem twoLine key={appName}> | ||||
|                 <span className="mdl-list__item-primary-content" style={{ minWidth: 0 }}> | ||||
|                     <Icon name={icon} className="mdl-list__item-avatar"/> | ||||
|                     <Link to={`/applications/${appName}`} className={[styles.listLink, styles.truncate].join(' ')}> | ||||
|                         {appName} | ||||
|                         <span className={['mdl-list__item-sub-title', styles.truncate].join(' ')}>{description}</span> | ||||
|                     </Link> | ||||
|                 </span> | ||||
|             </ListItem> | ||||
|         ))} | ||||
|     </List> | ||||
| ); | ||||
| 
 | ||||
| export const HeaderTitle = ({ title, actions, subtitle }) => ( | ||||
|     <div style={{ display: 'flex', borderBottom: '1px solid #f1f1f1', marginBottom: '10px', padding: '16px 20px ' }}> | ||||
|             <div style={{ flex: '2' }}> | ||||
|                 <h6 style={{ margin: 0 }}>{title}</h6> | ||||
|                 {subtitle && <small>{subtitle}</small>} | ||||
|             </div> | ||||
|         <div style={{ flex: '2' }}> | ||||
|             <h6 style={{ margin: 0 }}>{title}</h6> | ||||
|             {subtitle && <small>{subtitle}</small>} | ||||
|         </div> | ||||
| 
 | ||||
|             {actions && <div style={{ flex: '1', textAlign: 'right' }}>{actions}</div>} | ||||
|         {actions && <div style={{ flex: '1', textAlign: 'right' }}>{actions}</div>} | ||||
|     </div> | ||||
| ); | ||||
| 
 | ||||
| @ -78,15 +78,15 @@ export const SwitchWithLabel = ({ onChange, checked, children, ...switchProps }) | ||||
| 
 | ||||
| export const TogglesLinkList = ({ toggles }) => ( | ||||
|     <List style={{ textAlign: 'left' }} className={styles.truncate}> | ||||
|     {toggles.length > 0 && toggles.map(({ name, description = '-', icon = 'toggle' }) => ( | ||||
|         <ListItem twoLine key={name}> | ||||
|             <ListItemContent avatar={icon} subtitle={description}> | ||||
|                 <Link key={name} to={`/features/view/${name}`}> | ||||
|                     {name} | ||||
|                 </Link> | ||||
|             </ListItemContent> | ||||
|         </ListItem> | ||||
|     ))} | ||||
|         {toggles.length > 0 && toggles.map(({ name, description = '-', icon = 'toggle' }) => ( | ||||
|             <ListItem twoLine key={name}> | ||||
|                 <ListItemContent avatar={icon} subtitle={description}> | ||||
|                     <Link key={name} to={`/features/view/${name}`}> | ||||
|                         {name} | ||||
|                     </Link> | ||||
|                 </ListItemContent> | ||||
|             </ListItem> | ||||
|         ))} | ||||
|     </List> | ||||
| ); | ||||
| 
 | ||||
| @ -103,7 +103,7 @@ export function getIcon (type) { | ||||
| 
 | ||||
| export const IconLink = ({ url, icon }) => ( | ||||
|     <a href={url} target="_blank" rel="noopener" className="mdl-color-text--grey-600"> | ||||
|          <Icon name={icon}/> | ||||
|         <Icon name={icon}/> | ||||
|     </a> | ||||
| ); | ||||
| 
 | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| import React, { PropTypes } from 'react'; | ||||
| 
 | ||||
| import { Snackbar, Icon }  from 'react-mdl'; | ||||
| import { Snackbar, Icon } from 'react-mdl'; | ||||
| 
 | ||||
| class ErrorComponent extends React.Component { | ||||
|     static propTypes () { | ||||
|  | ||||
| @ -7,7 +7,7 @@ const mapDispatchToProps = { | ||||
|     muteError, | ||||
| }; | ||||
| 
 | ||||
| const mapStateToProps = (state) =>  ({ | ||||
| const mapStateToProps = (state) => ({ | ||||
|     errors: state.error.get('list').toArray(), | ||||
| }); | ||||
| 
 | ||||
|  | ||||
| @ -27,7 +27,7 @@ const Feature = ({ | ||||
|     const remainingStrategies = strategies.length - strategiesToShow; | ||||
| 
 | ||||
|     const strategyChips = strategies && strategies.slice(0, strategiesToShow).map((s, i) => | ||||
|             <Chip className={styles.strategyChip} key={i}>{s.name}</Chip>); | ||||
|         <Chip className={styles.strategyChip} key={i}>{s.name}</Chip>); | ||||
|     const summaryChip = remainingStrategies > 0 && | ||||
|             <Chip className={styles.strategyChip}>+{remainingStrategies}</Chip>; | ||||
| 
 | ||||
|  | ||||
| @ -58,7 +58,7 @@ const prepare = (methods, dispatch) => { | ||||
| 
 | ||||
|     methods.validateName = (featureToggleName) => { | ||||
|         validateName(featureToggleName) | ||||
|             .then(()  => methods.setValue('nameError', undefined)) | ||||
|             .then(() => methods.setValue('nameError', undefined)) | ||||
|             .catch((err) => methods.setValue('nameError', err.message)); | ||||
|     }; | ||||
| 
 | ||||
|  | ||||
| @ -25,7 +25,7 @@ const mapStateToProps = createMapper({ | ||||
|     }, | ||||
| }); | ||||
| 
 | ||||
| const prepare =  (methods, dispatch) => { | ||||
| const prepare = (methods, dispatch) => { | ||||
|     methods.onSubmit = (input) => ( | ||||
|         (e) => { | ||||
|             e.preventDefault(); | ||||
| @ -35,7 +35,7 @@ const prepare =  (methods, dispatch) => { | ||||
|                     delete s.id; | ||||
|                 }); | ||||
|             } | ||||
|              // TODO: should add error handling | ||||
|             // TODO: should add error handling | ||||
|             requestUpdateFeatureToggle(input)(dispatch) | ||||
|                 .then(() => methods.clear()) | ||||
|                 .then(() => hashHistory.push(`/features/view/${input.name}`)); | ||||
|  | ||||
| @ -13,7 +13,6 @@ const trim = (value) => { | ||||
| }; | ||||
| 
 | ||||
| class AddFeatureToggleComponent extends Component { | ||||
| 
 | ||||
|     componentWillMount () { | ||||
|         // TODO unwind this stuff | ||||
|         if (this.props.initCallRequired === true) { | ||||
| @ -69,10 +68,10 @@ class AddFeatureToggleComponent extends Component { | ||||
|                     {!editmode && <div> | ||||
|                         <br /> | ||||
|                         <Switch | ||||
|                         checked={enabled} | ||||
|                         onChange={() => { | ||||
|                             setValue('enabled', !enabled); | ||||
|                         }}>Enabled</Switch> | ||||
|                             checked={enabled} | ||||
|                             onChange={() => { | ||||
|                                 setValue('enabled', !enabled); | ||||
|                             }}>Enabled</Switch> | ||||
|                         <hr /> | ||||
|                     </div>} | ||||
| 
 | ||||
| @ -92,7 +91,6 @@ class AddFeatureToggleComponent extends Component { | ||||
|             </form> | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
| AddFeatureToggleComponent.propTypes = { | ||||
|  | ||||
| @ -1,8 +1,7 @@ | ||||
| import React, { PropTypes } from 'react'; | ||||
| import { Menu, MenuItem, IconButton }  from 'react-mdl'; | ||||
| import { Menu, MenuItem, IconButton } from 'react-mdl'; | ||||
| 
 | ||||
| class AddStrategy extends React.Component { | ||||
| 
 | ||||
|     static propTypes () { | ||||
|         return { | ||||
|             strategies: PropTypes.array.isRequired, | ||||
|  | ||||
| @ -5,7 +5,6 @@ import HTML5Backend from 'react-dnd-html5-backend'; | ||||
| 
 | ||||
| @DragDropContext(HTML5Backend) // eslint-disable-line new-cap | ||||
| class StrategiesList extends React.Component { | ||||
| 
 | ||||
|     static propTypes () { | ||||
|         return { | ||||
|             strategies: PropTypes.array.isRequired, | ||||
|  | ||||
| @ -5,7 +5,6 @@ import AddStrategy from './strategies-add'; | ||||
| import { HeaderTitle } from '../../common'; | ||||
| 
 | ||||
| class StrategiesSection extends React.Component { | ||||
| 
 | ||||
|     static propTypes () { | ||||
|         return { | ||||
|             strategies: PropTypes.array.isRequired, | ||||
|  | ||||
| @ -45,7 +45,6 @@ const dragTarget = { | ||||
|     isDragging: monitor.isDragging(), | ||||
| })) | ||||
| class StrategyConfigure extends React.Component { | ||||
| 
 | ||||
|     static propTypes () { | ||||
|         return { | ||||
|             strategy: PropTypes.object.isRequired, | ||||
| @ -122,7 +121,7 @@ class StrategyConfigure extends React.Component { | ||||
|                                 label={name} | ||||
|                                 onChange={this.handleConfigChange.bind(this, name)} | ||||
|                                 value={value} | ||||
|                                 /> | ||||
|                             /> | ||||
|                             {description && <p className={styles.helpText}>{description}</p>} | ||||
|                         </div> | ||||
|                     ); | ||||
| @ -138,7 +137,7 @@ class StrategyConfigure extends React.Component { | ||||
|                                 label={name} | ||||
|                                 onChange={this.handleConfigChange.bind(this, name)} | ||||
|                                 value={value} | ||||
|                                 /> | ||||
|                             /> | ||||
|                             {description && <p className={styles.helpText}>{description}</p>} | ||||
|                         </div> | ||||
|                     ); | ||||
| @ -165,8 +164,8 @@ class StrategyConfigure extends React.Component { | ||||
|                     </CardText> | ||||
|                     { | ||||
|                         inputFields && <CardActions border style={{ padding: '20px' }}> | ||||
|                             {inputFields} | ||||
|                         </CardActions> | ||||
|                         {inputFields} | ||||
|                     </CardActions> | ||||
|                     } | ||||
| 
 | ||||
|                     <CardMenu className="mdl-color-text--white"> | ||||
|  | ||||
| @ -3,10 +3,9 @@ import { | ||||
|     Textfield, | ||||
|     IconButton, | ||||
|     Chip, | ||||
| }  from 'react-mdl'; | ||||
| } from 'react-mdl'; | ||||
| 
 | ||||
| export default class InputList extends Component { | ||||
| 
 | ||||
|     static propTypes = { | ||||
|         name: PropTypes.string.isRequired, | ||||
|         list: PropTypes.array.isRequired, | ||||
| @ -18,7 +17,7 @@ export default class InputList extends Component { | ||||
|         window.removeEventListener('keydown', this.onKeyHandler, false); | ||||
|     } | ||||
| 
 | ||||
|     onFocus  = (e) => { | ||||
|     onFocus = (e) => { | ||||
|         e.preventDefault(); | ||||
|         e.stopPropagation(); | ||||
|         window.addEventListener('keydown', this.onKeyHandler, false); | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| import React from 'react'; | ||||
| import { Slider }  from 'react-mdl'; | ||||
| import { Slider } from 'react-mdl'; | ||||
| 
 | ||||
| const labelStyle = { | ||||
|     margin: '20px 0', | ||||
|  | ||||
| @ -7,7 +7,6 @@ import { MenuItemWithIcon, DropdownButton, styles as commonStyles } from '../com | ||||
| import styles from './feature.scss'; | ||||
| 
 | ||||
| export default class FeatureListComponent extends React.PureComponent { | ||||
| 
 | ||||
|     static propTypes () { | ||||
|         return { | ||||
|             toggleFeature: PropTypes.func.isRequired, | ||||
| @ -89,16 +88,16 @@ export default class FeatureListComponent extends React.PureComponent { | ||||
|                 <hr/> | ||||
|                 <List> | ||||
|                     {features.map((feature, i) => | ||||
|                         <Feature key={i} | ||||
|                         (<Feature key={i} | ||||
|                             settings={settings} | ||||
|                             metricsLastHour={featureMetrics.lastHour[feature.name]} | ||||
|                             metricsLastMinute={featureMetrics.lastMinute[feature.name]} | ||||
|                             feature={feature} | ||||
|                             toggleFeature={toggleFeature}/> | ||||
|                             toggleFeature={toggleFeature}/>) | ||||
|                     )} | ||||
|                 </List> | ||||
|             </Card> | ||||
|             </div> | ||||
|         </div> | ||||
|         ); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -14,7 +14,7 @@ const mapStateToProps = (state) => { | ||||
|         const regex = new RegExp(settings.filter, 'i'); | ||||
|         features = features.filter(feature => | ||||
|             ( | ||||
|                 regex.test(feature.name) || | ||||
|             regex.test(feature.name) || | ||||
|                 regex.test(feature.description) || | ||||
|                 feature.strategies.some(s => s && s.name && regex.test(s.name)) | ||||
|             ) | ||||
| @ -72,8 +72,8 @@ const mapDispatchToProps = { | ||||
| }; | ||||
| 
 | ||||
| const FeatureListContainer = connect( | ||||
|   mapStateToProps, | ||||
|   mapDispatchToProps | ||||
|     mapStateToProps, | ||||
|     mapDispatchToProps | ||||
| )(FeatureListComponent); | ||||
| 
 | ||||
| export default FeatureListContainer; | ||||
|  | ||||
| @ -18,7 +18,7 @@ const StrategyChipItem = ({ strategy }) => ( | ||||
| // TODO what about "missing" strategies here? | ||||
| const StrategiesList = ({ strategies }) => ( | ||||
|     <div style={{ verticalAlign: 'middle', paddingTop: '14px' }}>With {strategies.length > 1 ? 'strategies' : 'strategy'} { | ||||
|         strategies.map((strategy, i) => <StrategyChipItem key={i}  strategy={strategy} />) | ||||
|         strategies.map((strategy, i) => <StrategyChipItem key={i} strategy={strategy} />) | ||||
|     }</div> | ||||
| ); | ||||
| 
 | ||||
|  | ||||
| @ -58,7 +58,7 @@ class Progress extends Component { | ||||
| 
 | ||||
|         const current = this.state.percentageText; | ||||
| 
 | ||||
|         targetState.cyclesCounter --; | ||||
|         targetState.cyclesCounter--; | ||||
|         if (targetState.cyclesCounter <= 0) { | ||||
|             this.setState({ percentageText: targetState.target }); | ||||
|             return; | ||||
| @ -99,7 +99,7 @@ class Progress extends Component { | ||||
|         return (isFallback ? | ||||
|             <svg viewBox="0 0 24 24" className="mdl-color-text--grey-300">{ | ||||
|                 // eslint-disable-next-line max-len | ||||
|                 }<path fill="currentColor" d="M17.3,18C19,16.5 20,14.4 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12C4,14.4 5,16.5 6.7,18C8.2,16.7 10,16 12,16C14,16 15.9,16.7 17.3,18M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M7,9A1,1 0 0,1 8,10A1,1 0 0,1 7,11A1,1 0 0,1 6,10A1,1 0 0,1 7,9M10,6A1,1 0 0,1 11,7A1,1 0 0,1 10,8A1,1 0 0,1 9,7A1,1 0 0,1 10,6M17,9A1,1 0 0,1 18,10A1,1 0 0,1 17,11A1,1 0 0,1 16,10A1,1 0 0,1 17,9M14.4,6.1C14.9,6.3 15.1,6.9 15,7.4L13.6,10.8C13.8,11.1 14,11.5 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12C10,11 10.7,10.1 11.7,10L13.1,6.7C13.3,6.1 13.9,5.9 14.4,6.1Z" /> | ||||
|             }<path fill="currentColor" d="M17.3,18C19,16.5 20,14.4 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12C4,14.4 5,16.5 6.7,18C8.2,16.7 10,16 12,16C14,16 15.9,16.7 17.3,18M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M7,9A1,1 0 0,1 8,10A1,1 0 0,1 7,11A1,1 0 0,1 6,10A1,1 0 0,1 7,9M10,6A1,1 0 0,1 11,7A1,1 0 0,1 10,8A1,1 0 0,1 9,7A1,1 0 0,1 10,6M17,9A1,1 0 0,1 18,10A1,1 0 0,1 17,11A1,1 0 0,1 16,10A1,1 0 0,1 17,9M14.4,6.1C14.9,6.3 15.1,6.9 15,7.4L13.6,10.8C13.8,11.1 14,11.5 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12C10,11 10.7,10.1 11.7,10L13.1,6.7C13.3,6.1 13.9,5.9 14.4,6.1Z" /> | ||||
|             </svg> : | ||||
|             <svg viewBox="0 0 100 100"> | ||||
|                 <path | ||||
| @ -107,7 +107,7 @@ class Progress extends Component { | ||||
|                     d={pathDescription} | ||||
|                     strokeWidth={strokeWidth} | ||||
|                     fillOpacity={0} | ||||
|                     /> | ||||
|                 /> | ||||
| 
 | ||||
|                 <path | ||||
|                     className={[styles.path, colorClassName].join(' ')} | ||||
| @ -115,13 +115,13 @@ class Progress extends Component { | ||||
|                     strokeWidth={strokeWidth} | ||||
|                     fillOpacity={0} | ||||
|                     style={progressStyle} | ||||
|                     /> | ||||
|                 /> | ||||
| 
 | ||||
|                 <text | ||||
|                     className={styles.text} | ||||
|                     x={50} | ||||
|                     y={50} | ||||
|                     >{this.state.percentageText}%</text> | ||||
|                 >{this.state.percentageText}%</text> | ||||
|             </svg> | ||||
|         ); | ||||
|     } | ||||
|  | ||||
| @ -14,7 +14,6 @@ const TABS = { | ||||
| }; | ||||
| 
 | ||||
| export default class ViewFeatureToggleComponent extends React.Component { | ||||
| 
 | ||||
|     constructor (props) { | ||||
|         super(props); | ||||
|     } | ||||
| @ -73,7 +72,7 @@ export default class ViewFeatureToggleComponent extends React.Component { | ||||
|             return ( | ||||
|                 <span> | ||||
|                     Could not find the toggle <Link to={{ pathname: '/features/create', query: { name: featureToggleName } }}> | ||||
|                     {featureToggleName}</Link> | ||||
|                         {featureToggleName}</Link> | ||||
|                 </span> | ||||
|             ); | ||||
|         } | ||||
| @ -82,7 +81,7 @@ export default class ViewFeatureToggleComponent extends React.Component { | ||||
|         const tabContent = this.getTabContent(activeTab); | ||||
| 
 | ||||
|         const removeToggle = () => { | ||||
|             if (window.confirm('Are you sure you want to remove this toggle?')) {  // eslint-disable-line no-alert | ||||
|             if (window.confirm('Are you sure you want to remove this toggle?')) { // eslint-disable-line no-alert | ||||
|                 removeFeatureToggle(featureToggle.name); | ||||
|                 hashHistory.push('/features'); | ||||
|             } | ||||
|  | ||||
| @ -4,7 +4,6 @@ import HistoryList from './history-list-container'; | ||||
| import { styles as commonStyles } from '../common'; | ||||
| 
 | ||||
| class History extends PureComponent { | ||||
| 
 | ||||
|     componentDidMount () { | ||||
|         this.props.fetchHistory(); | ||||
|     } | ||||
|  | ||||
| @ -50,7 +50,7 @@ function buildDiff (diff, idx) { | ||||
|         ); | ||||
|     } else { | ||||
|         const spadenClass = KLASSES[diff.kind]; | ||||
|         const prefix      = DIFF_PREFIXES[diff.kind]; | ||||
|         const prefix = DIFF_PREFIXES[diff.kind]; | ||||
| 
 | ||||
|         change = (<div className={spadenClass}>{prefix} {key}: {JSON.stringify(diff.rhs || diff.item)}</div>); | ||||
|     } | ||||
| @ -59,7 +59,6 @@ function buildDiff (diff, idx) { | ||||
| } | ||||
| 
 | ||||
| class HistoryItem extends PureComponent { | ||||
| 
 | ||||
|     static propTypes () { | ||||
|         return { | ||||
|             entry: PropTypes.object, | ||||
|  | ||||
| @ -3,7 +3,6 @@ import React, { PropTypes, PureComponent } from 'react'; | ||||
| import style from './history.scss'; | ||||
| 
 | ||||
| class HistoryItem extends PureComponent { | ||||
| 
 | ||||
|     static propTypes () { | ||||
|         return { | ||||
|             entry: PropTypes.object, | ||||
|  | ||||
| @ -8,7 +8,6 @@ import { formatFullDateTime } from '../common/util'; | ||||
| import styles from './history.scss'; | ||||
| 
 | ||||
| class HistoryList extends Component { | ||||
| 
 | ||||
|     toggleShowDiff () { | ||||
|         this.props.updateSetting('showData', !this.props.settings.showData); | ||||
|     } | ||||
| @ -27,18 +26,18 @@ class HistoryList extends Component { | ||||
|         let entries; | ||||
| 
 | ||||
|         if (showData) { | ||||
|             entries =  history.map((entry) => <HistoryItemJson  key={`log${entry.id}`} entry={entry} />); | ||||
|             entries = history.map((entry) => <HistoryItemJson key={`log${entry.id}`} entry={entry} />); | ||||
|         } else { | ||||
|             entries = (<Table | ||||
|                     sortable | ||||
|                     rows={ | ||||
|                         history.map((entry) => Object.assign({ | ||||
|                             diff: (<HistoryItemDiff  entry={entry} />), | ||||
|                         }, entry)) | ||||
|                     } | ||||
|                     className={commonStyles.fullwidth} | ||||
|                     style={{ border: 0, tableLayout: 'fixed', minWidth: '840px' }} | ||||
|                 > | ||||
|                 sortable | ||||
|                 rows={ | ||||
|                     history.map((entry) => Object.assign({ | ||||
|                         diff: (<HistoryItemDiff entry={entry} />), | ||||
|                     }, entry)) | ||||
|                 } | ||||
|                 className={commonStyles.fullwidth} | ||||
|                 style={{ border: 0, tableLayout: 'fixed', minWidth: '840px' }} | ||||
|             > | ||||
|                 <TableHeader name="type" cellFormatter={truncateTableCell} style={{ width: '136px' }}>Type</TableHeader> | ||||
|                 <TableHeader name="createdBy" cellFormatter={truncateTableCell} style={{ width: '115px' }}>User</TableHeader> | ||||
|                 <TableHeader name="diff">Diff</TableHeader> | ||||
|  | ||||
| @ -2,7 +2,6 @@ import React, { Component, PropTypes } from 'react'; | ||||
| import HistoryList from './history-list-container'; | ||||
| 
 | ||||
| class HistoryListToggle extends Component { | ||||
| 
 | ||||
|     static propTypes () { | ||||
|         return { | ||||
|             toggleName: PropTypes.string.isRequired, | ||||
| @ -19,9 +18,9 @@ class HistoryListToggle extends Component { | ||||
|         } | ||||
|         const { history } = this.props; | ||||
|         return ( | ||||
|                 <HistoryList | ||||
|                     history={history} | ||||
|                     title="Change log"/> | ||||
|             <HistoryList | ||||
|                 history={history} | ||||
|                 title="Change log"/> | ||||
|         ); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -17,7 +17,7 @@ function gerArrayWithEntries (num) { | ||||
| } | ||||
| 
 | ||||
| const Parameter = ({ set, input = {}, index }) => ( | ||||
|     <div  style={{ background: '#f1f1f1', padding: '16px 20px', marginBottom: '20px' }}> | ||||
|     <div style={{ background: '#f1f1f1', padding: '16px 20px', marginBottom: '20px' }}> | ||||
|         <Textfield | ||||
|             style={{ width: '50%' }} | ||||
|             floatingLabel | ||||
| @ -65,7 +65,7 @@ const Parameter = ({ set, input = {}, index }) => ( | ||||
| const EditHeader = () => ( | ||||
|     <div> | ||||
|         <h4 style={{ marginTop: '16px' }}>Edit strategy</h4> | ||||
|         <p style={{ background: '#ffb7b7', padding: '16px 20px'  }}> | ||||
|         <p style={{ background: '#ffb7b7', padding: '16px 20px' }}> | ||||
|             Be carefull! Changing a strategy definition might also require changes to the | ||||
|             implementation in the clients. | ||||
|         </p> | ||||
| @ -80,18 +80,17 @@ const CreateHeader = () => ( | ||||
| 
 | ||||
| 
 | ||||
| const Parameters = ({ input = [], count = 0, updateInList }) => ( | ||||
| <div>{ | ||||
|     gerArrayWithEntries(count) | ||||
|     .map((v, i) => <Parameter | ||||
|         key={i} | ||||
|         set={(v) => updateInList('parameters', i, v, true)} | ||||
|         index={i} | ||||
|         input={input[i]} | ||||
|     />) | ||||
| }</div>); | ||||
|     <div>{ | ||||
|         gerArrayWithEntries(count) | ||||
|             .map((v, i) => (<Parameter | ||||
|                 key={i} | ||||
|                 set={(v) => updateInList('parameters', i, v, true)} | ||||
|                 index={i} | ||||
|                 input={input[i]} | ||||
|             />)) | ||||
|     }</div>); | ||||
| 
 | ||||
| class AddStrategy extends Component { | ||||
| 
 | ||||
|     static propTypes () { | ||||
|         return { | ||||
|             input: PropTypes.object, | ||||
| @ -142,7 +141,7 @@ class AddStrategy extends Component { | ||||
|                             pattern="^[0-9a-zA-Z\.\-]+$" | ||||
|                             onChange={({ target }) => setValue('name', trim(target.value))} | ||||
|                             value={input.name} | ||||
|                             /> | ||||
|                         /> | ||||
|                         <br /> | ||||
|                         <Textfield | ||||
|                             floatingLabel | ||||
| @ -152,7 +151,7 @@ class AddStrategy extends Component { | ||||
|                             name="description" | ||||
|                             onChange={({ target }) => setValue('description', target.value)} | ||||
|                             value={input.description} | ||||
|                             /> | ||||
|                         /> | ||||
| 
 | ||||
| 
 | ||||
|                         <Parameters input={input.parameters} count={input._params} updateInList={updateInList} /> | ||||
|  | ||||
| @ -5,7 +5,6 @@ import { List, ListItem, ListItemContent, IconButton, Grid, Cell } from 'react-m | ||||
| import { HeaderTitle } from '../common'; | ||||
| 
 | ||||
| class StrategiesListComponent extends Component { | ||||
| 
 | ||||
|     static contextTypes = { | ||||
|         router: React.PropTypes.object, | ||||
|     } | ||||
| @ -28,15 +27,15 @@ class StrategiesListComponent extends Component { | ||||
|                                 title="Add new strategy" />} /> | ||||
|                     <List> | ||||
|                         {strategies.length > 0 ? strategies.map((strategy, i) => ( | ||||
|                                 <ListItem key={i} twoLine> | ||||
|                                     <ListItemContent icon="extension" subtitle={strategy.description}> | ||||
|                                         <Link to={`/strategies/view/${strategy.name}`}> | ||||
|                                             <strong>{strategy.name}</strong> | ||||
|                                         </Link> | ||||
|                                         </ListItemContent> | ||||
|                                     <IconButton name="delete" onClick={() => removeStrategy(strategy)} /> | ||||
|                                 </ListItem> | ||||
|                             )) : <ListItem>No entries</ListItem>} | ||||
|                             <ListItem key={i} twoLine> | ||||
|                                 <ListItemContent icon="extension" subtitle={strategy.description}> | ||||
|                                     <Link to={`/strategies/view/${strategy.name}`}> | ||||
|                                         <strong>{strategy.name}</strong> | ||||
|                                     </Link> | ||||
|                                 </ListItemContent> | ||||
|                                 <IconButton name="delete" onClick={() => removeStrategy(strategy)} /> | ||||
|                             </ListItem> | ||||
|                         )) : <ListItem>No entries</ListItem>} | ||||
|                     </List> | ||||
|                 </Cell> | ||||
|             </Grid> | ||||
|  | ||||
| @ -12,7 +12,7 @@ const mapStateToProps = (state) => { | ||||
| 
 | ||||
| const mapDispatchToProps = (dispatch) => ({ | ||||
|     removeStrategy: (strategy) => { | ||||
|         if (window.confirm('Are you sure you want to remove this strategy?')) {  // eslint-disable-line no-alert | ||||
|         if (window.confirm('Are you sure you want to remove this strategy?')) { // eslint-disable-line no-alert | ||||
|             removeStrategy(strategy)(dispatch); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -7,7 +7,7 @@ const mapDispatchToProps = { | ||||
|     openEdit, | ||||
| }; | ||||
| 
 | ||||
| const mapStateToProps = (state) =>  ({ | ||||
| const mapStateToProps = (state) => ({ | ||||
|     user: state.user.toJS(), | ||||
| }); | ||||
| 
 | ||||
|  | ||||
| @ -8,7 +8,7 @@ const mapDispatchToProps = { | ||||
|     save, | ||||
| }; | ||||
| 
 | ||||
| const mapStateToProps = (state) =>  ({ | ||||
| const mapStateToProps = (state) => ({ | ||||
|     user: state.user.toJS(), | ||||
| }); | ||||
| 
 | ||||
|  | ||||
| @ -55,7 +55,7 @@ function toggle (name) { | ||||
|         headers, | ||||
|         credentials: 'include', | ||||
|     }) | ||||
|     .then(throwIfNotSuccess); | ||||
|         .then(throwIfNotSuccess); | ||||
| } | ||||
| 
 | ||||
| function remove (featureToggleName) { | ||||
|  | ||||
| @ -61,7 +61,7 @@ ReactDOM.render( | ||||
|                 </Route> | ||||
| 
 | ||||
|                 <Route pageTitle="Event History" link="/history"> | ||||
|                     <Route pageTitle="Event history"  path="/history" component={HistoryPage} /> | ||||
|                     <Route pageTitle="Event history" path="/history" component={HistoryPage} /> | ||||
|                     <Route pageTitle=":toggleName" path="/history/:toggleName" component={HistoryTogglePage} /> | ||||
|                 </Route> | ||||
| 
 | ||||
|  | ||||
| @ -1,8 +1,8 @@ | ||||
| import api from '../data/archive-api'; | ||||
| 
 | ||||
| export const REVIVE_TOGGLE          = 'REVIVE_TOGGLE'; | ||||
| export const RECEIVE_ARCHIVE        = 'RECEIVE_ARCHIVE'; | ||||
| export const ERROR_RECEIVE_ARCHIVE  = 'ERROR_RECEIVE_ARCHIVE'; | ||||
| export const REVIVE_TOGGLE = 'REVIVE_TOGGLE'; | ||||
| export const RECEIVE_ARCHIVE = 'RECEIVE_ARCHIVE'; | ||||
| export const ERROR_RECEIVE_ARCHIVE = 'ERROR_RECEIVE_ARCHIVE'; | ||||
| 
 | ||||
| const receiveArchive = (json) => ({ | ||||
|     type: RECEIVE_ARCHIVE, | ||||
|  | ||||
| @ -1,19 +1,19 @@ | ||||
| import api from '../data/feature-api'; | ||||
| const debug = require('debug')('unleash:feature-actions'); | ||||
| 
 | ||||
| export const ADD_FEATURE_TOGGLE             = 'ADD_FEATURE_TOGGLE'; | ||||
| export const REMOVE_FEATURE_TOGGLE          = 'REMOVE_FEATURE_TOGGLE'; | ||||
| export const UPDATE_FEATURE_TOGGLE          = 'UPDATE_FEATURE_TOGGLE'; | ||||
| export const TOGGLE_FEATURE_TOGGLE          = 'TOGGLE_FEATURE_TOGGLE'; | ||||
| export const START_FETCH_FEATURE_TOGGLES    = 'START_FETCH_FEATURE_TOGGLES'; | ||||
| export const START_UPDATE_FEATURE_TOGGLE    = 'START_UPDATE_FEATURE_TOGGLE'; | ||||
| export const START_CREATE_FEATURE_TOGGLE    = 'START_CREATE_FEATURE_TOGGLE'; | ||||
| export const START_REMOVE_FEATURE_TOGGLE    = 'START_REMOVE_FEATURE_TOGGLE'; | ||||
| export const RECEIVE_FEATURE_TOGGLES        = 'RECEIVE_FEATURE_TOGGLES'; | ||||
| export const ERROR_FETCH_FEATURE_TOGGLES    = 'ERROR_FETCH_FEATURE_TOGGLES'; | ||||
| export const ERROR_CREATING_FEATURE_TOGGLE  = 'ERROR_CREATING_FEATURE_TOGGLE'; | ||||
| export const ERROR_UPDATE_FEATURE_TOGGLE    = 'ERROR_UPDATE_FEATURE_TOGGLE'; | ||||
| export const ERROR_REMOVE_FEATURE_TOGGLE    = 'ERROR_REMOVE_FEATURE_TOGGLE'; | ||||
| export const ADD_FEATURE_TOGGLE = 'ADD_FEATURE_TOGGLE'; | ||||
| export const REMOVE_FEATURE_TOGGLE = 'REMOVE_FEATURE_TOGGLE'; | ||||
| export const UPDATE_FEATURE_TOGGLE = 'UPDATE_FEATURE_TOGGLE'; | ||||
| export const TOGGLE_FEATURE_TOGGLE = 'TOGGLE_FEATURE_TOGGLE'; | ||||
| export const START_FETCH_FEATURE_TOGGLES = 'START_FETCH_FEATURE_TOGGLES'; | ||||
| export const START_UPDATE_FEATURE_TOGGLE = 'START_UPDATE_FEATURE_TOGGLE'; | ||||
| export const START_CREATE_FEATURE_TOGGLE = 'START_CREATE_FEATURE_TOGGLE'; | ||||
| export const START_REMOVE_FEATURE_TOGGLE = 'START_REMOVE_FEATURE_TOGGLE'; | ||||
| export const RECEIVE_FEATURE_TOGGLES = 'RECEIVE_FEATURE_TOGGLES'; | ||||
| export const ERROR_FETCH_FEATURE_TOGGLES = 'ERROR_FETCH_FEATURE_TOGGLES'; | ||||
| export const ERROR_CREATING_FEATURE_TOGGLE = 'ERROR_CREATING_FEATURE_TOGGLE'; | ||||
| export const ERROR_UPDATE_FEATURE_TOGGLE = 'ERROR_UPDATE_FEATURE_TOGGLE'; | ||||
| export const ERROR_REMOVE_FEATURE_TOGGLE = 'ERROR_REMOVE_FEATURE_TOGGLE'; | ||||
| 
 | ||||
| export function toggleFeature (name) { | ||||
|     debug('Toggle feature toggle ', name); | ||||
|  | ||||
| @ -1,12 +1,12 @@ | ||||
| import api from '../data/feature-metrics-api'; | ||||
| 
 | ||||
| export const START_FETCH_FEATURE_METRICS    = 'START_FETCH_FEATURE_METRICS'; | ||||
| export const RECEIVE_FEATURE_METRICS        = 'RECEIVE_FEATURE_METRICS'; | ||||
| export const ERROR_FETCH_FEATURE_TOGGLES    = 'ERROR_FETCH_FEATURE_TOGGLES'; | ||||
| export const START_FETCH_FEATURE_METRICS = 'START_FETCH_FEATURE_METRICS'; | ||||
| export const RECEIVE_FEATURE_METRICS = 'RECEIVE_FEATURE_METRICS'; | ||||
| export const ERROR_FETCH_FEATURE_TOGGLES = 'ERROR_FETCH_FEATURE_TOGGLES'; | ||||
| 
 | ||||
| export const START_FETCH_SEEN_APP    = 'START_FETCH_SEEN_APP'; | ||||
| export const RECEIVE_SEEN_APPS       = 'RECEIVE_SEEN_APPS'; | ||||
| export const ERROR_FETCH_SEEN_APP    = 'ERROR_FETCH_SEEN_APP'; | ||||
| export const START_FETCH_SEEN_APP = 'START_FETCH_SEEN_APP'; | ||||
| export const RECEIVE_SEEN_APPS = 'RECEIVE_SEEN_APPS'; | ||||
| export const ERROR_FETCH_SEEN_APP = 'ERROR_FETCH_SEEN_APP'; | ||||
| 
 | ||||
| function receiveFeatureMetrics (json) { | ||||
|     return { | ||||
|  | ||||
| @ -1,9 +1,9 @@ | ||||
| import api from '../data/history-api'; | ||||
| 
 | ||||
| export const RECEIVE_HISTORY        = 'RECEIVE_HISTORY'; | ||||
| export const ERROR_RECEIVE_HISTORY  = 'ERROR_RECEIVE_HISTORY'; | ||||
| export const RECEIVE_HISTORY = 'RECEIVE_HISTORY'; | ||||
| export const ERROR_RECEIVE_HISTORY = 'ERROR_RECEIVE_HISTORY'; | ||||
| 
 | ||||
| export const RECEIVE_HISTORY_FOR_TOGGLE        = 'RECEIVE_HISTORY_FOR_TOGGLE'; | ||||
| export const RECEIVE_HISTORY_FOR_TOGGLE = 'RECEIVE_HISTORY_FOR_TOGGLE'; | ||||
| 
 | ||||
| const receiveHistory = (json) => ({ | ||||
|     type: RECEIVE_HISTORY, | ||||
|  | ||||
| @ -31,7 +31,7 @@ function setKeyValue (state, { id, key, value }) { | ||||
| 
 | ||||
| function increment (state, { id, key }) { | ||||
|     state = assertId(state, id); | ||||
|     return state.updateIn(id.concat([key]), (value = 0)  => value + 1); | ||||
|     return state.updateIn(id.concat([key]), (value = 0) => value + 1); | ||||
| } | ||||
| 
 | ||||
| function clear (state, { id }) { | ||||
|  | ||||
| @ -78,8 +78,8 @@ export function updateStrategy (strategy) { | ||||
| 
 | ||||
| export function removeStrategy (strategy) { | ||||
|     return dispatch => api.remove(strategy) | ||||
|             .then(() => dispatch(createRemoveStrategy(strategy))) | ||||
|             .catch(error => dispatch(errorCreatingStrategy(error))); | ||||
|         .then(() => dispatch(createRemoveStrategy(strategy))) | ||||
|         .catch(error => dispatch(errorCreatingStrategy(error))); | ||||
| } | ||||
| 
 | ||||
| export function getApplicationsWithStrategy (strategyName) { | ||||
|  | ||||
| @ -68,10 +68,14 @@ amdefine@>=0.0.4: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" | ||||
| 
 | ||||
| ansi-escapes@^1.1.0, ansi-escapes@^1.4.0: | ||||
| ansi-escapes@^1.4.0: | ||||
|   version "1.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" | ||||
| 
 | ||||
| ansi-escapes@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" | ||||
| 
 | ||||
| ansi-regex@^2.0.0: | ||||
|   version "2.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" | ||||
| @ -156,13 +160,6 @@ array-unique@^0.2.1: | ||||
|   version "0.2.1" | ||||
|   resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" | ||||
| 
 | ||||
| array.prototype.find@^2.0.1: | ||||
|   version "2.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90" | ||||
|   dependencies: | ||||
|     define-properties "^1.1.2" | ||||
|     es-abstract "^1.7.0" | ||||
| 
 | ||||
| arrify@^1.0.0, arrify@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" | ||||
| @ -238,7 +235,7 @@ aws4@^1.2.1: | ||||
|   version "1.6.0" | ||||
|   resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" | ||||
| 
 | ||||
| babel-code-frame@^6.11.0, babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: | ||||
| babel-code-frame@^6.11.0, babel-code-frame@^6.22.0: | ||||
|   version "6.22.0" | ||||
|   resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" | ||||
|   dependencies: | ||||
| @ -1198,11 +1195,11 @@ classnames@^2.2.3: | ||||
|   version "2.2.5" | ||||
|   resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" | ||||
| 
 | ||||
| cli-cursor@^1.0.1: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" | ||||
| cli-cursor@^2.1.0: | ||||
|   version "2.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" | ||||
|   dependencies: | ||||
|     restore-cursor "^1.0.1" | ||||
|     restore-cursor "^2.0.0" | ||||
| 
 | ||||
| cli-width@^2.0.0: | ||||
|   version "2.1.0" | ||||
| @ -1309,7 +1306,7 @@ concat-map@0.0.1: | ||||
|   version "0.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" | ||||
| 
 | ||||
| concat-stream@^1.5.2: | ||||
| concat-stream@^1.6.0: | ||||
|   version "1.6.0" | ||||
|   resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" | ||||
|   dependencies: | ||||
| @ -1502,12 +1499,6 @@ currently-unhandled@^0.4.1: | ||||
|   dependencies: | ||||
|     array-find-index "^1.0.1" | ||||
| 
 | ||||
| d@1: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" | ||||
|   dependencies: | ||||
|     es5-ext "^0.10.9" | ||||
| 
 | ||||
| dashdash@^1.12.0: | ||||
|   version "1.14.1" | ||||
|   resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" | ||||
| @ -1524,7 +1515,7 @@ debug@2.6.7: | ||||
|   dependencies: | ||||
|     ms "2.0.0" | ||||
| 
 | ||||
| debug@2.6.8, debug@^2.1.1, debug@^2.2.0, debug@^2.6.3, debug@^2.6.6: | ||||
| debug@2.6.8, debug@^2.1.1, debug@^2.2.0, debug@^2.6.3, debug@^2.6.6, debug@^2.6.8: | ||||
|   version "2.6.8" | ||||
|   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" | ||||
|   dependencies: | ||||
| @ -1554,13 +1545,6 @@ default-require-extensions@^1.0.0: | ||||
|   dependencies: | ||||
|     strip-bom "^2.0.0" | ||||
| 
 | ||||
| define-properties@^1.1.2: | ||||
|   version "1.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" | ||||
|   dependencies: | ||||
|     foreach "^2.0.5" | ||||
|     object-keys "^1.0.8" | ||||
| 
 | ||||
| defined@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" | ||||
| @ -1616,13 +1600,6 @@ dnd-core@^2.4.0: | ||||
|     lodash "^4.2.0" | ||||
|     redux "^3.2.0" | ||||
| 
 | ||||
| doctrine@^1.2.2: | ||||
|   version "1.5.0" | ||||
|   resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" | ||||
|   dependencies: | ||||
|     esutils "^2.0.2" | ||||
|     isarray "^1.0.0" | ||||
| 
 | ||||
| doctrine@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" | ||||
| @ -1700,75 +1677,6 @@ error-stack-parser@^1.3.6: | ||||
|   dependencies: | ||||
|     stackframe "^0.3.1" | ||||
| 
 | ||||
| es-abstract@^1.7.0: | ||||
|   version "1.7.0" | ||||
|   resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" | ||||
|   dependencies: | ||||
|     es-to-primitive "^1.1.1" | ||||
|     function-bind "^1.1.0" | ||||
|     is-callable "^1.1.3" | ||||
|     is-regex "^1.0.3" | ||||
| 
 | ||||
| es-to-primitive@^1.1.1: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" | ||||
|   dependencies: | ||||
|     is-callable "^1.1.1" | ||||
|     is-date-object "^1.0.1" | ||||
|     is-symbol "^1.0.1" | ||||
| 
 | ||||
| es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: | ||||
|   version "0.10.23" | ||||
|   resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.23.tgz#7578b51be974207a5487821b56538c224e4e7b38" | ||||
|   dependencies: | ||||
|     es6-iterator "2" | ||||
|     es6-symbol "~3.1" | ||||
| 
 | ||||
| es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: | ||||
|   version "2.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" | ||||
|   dependencies: | ||||
|     d "1" | ||||
|     es5-ext "^0.10.14" | ||||
|     es6-symbol "^3.1" | ||||
| 
 | ||||
| es6-map@^0.1.3: | ||||
|   version "0.1.5" | ||||
|   resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" | ||||
|   dependencies: | ||||
|     d "1" | ||||
|     es5-ext "~0.10.14" | ||||
|     es6-iterator "~2.0.1" | ||||
|     es6-set "~0.1.5" | ||||
|     es6-symbol "~3.1.1" | ||||
|     event-emitter "~0.3.5" | ||||
| 
 | ||||
| es6-set@~0.1.5: | ||||
|   version "0.1.5" | ||||
|   resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" | ||||
|   dependencies: | ||||
|     d "1" | ||||
|     es5-ext "~0.10.14" | ||||
|     es6-iterator "~2.0.1" | ||||
|     es6-symbol "3.1.1" | ||||
|     event-emitter "~0.3.5" | ||||
| 
 | ||||
| es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: | ||||
|   version "3.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" | ||||
|   dependencies: | ||||
|     d "1" | ||||
|     es5-ext "~0.10.14" | ||||
| 
 | ||||
| es6-weak-map@^2.0.1: | ||||
|   version "2.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" | ||||
|   dependencies: | ||||
|     d "1" | ||||
|     es5-ext "^0.10.14" | ||||
|     es6-iterator "^2.0.1" | ||||
|     es6-symbol "^3.1.1" | ||||
| 
 | ||||
| escape-html@~1.0.3: | ||||
|   version "1.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" | ||||
| @ -1788,86 +1696,80 @@ escodegen@^1.6.1: | ||||
|   optionalDependencies: | ||||
|     source-map "~0.2.0" | ||||
| 
 | ||||
| escope@^3.6.0: | ||||
|   version "3.6.0" | ||||
|   resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" | ||||
| eslint-config-finn-react@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-finn-react/-/eslint-config-finn-react-2.0.0.tgz#94d11891168eeb110aedd39285c31700e9f09bc2" | ||||
|   dependencies: | ||||
|     eslint-config-schibsted-react "^4.0.1" | ||||
| 
 | ||||
| eslint-config-finn@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-finn/-/eslint-config-finn-2.0.0.tgz#0c4a89ccbc8c48b065c8e42df9965276199ae053" | ||||
|   dependencies: | ||||
|     eslint-config-schibsted "^4.0.0" | ||||
| 
 | ||||
| eslint-config-schibsted-react@^4.0.1: | ||||
|   version "4.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-schibsted-react/-/eslint-config-schibsted-react-4.0.1.tgz#c1fca494bcb142b32cc413885b93eff5ff541e2a" | ||||
| 
 | ||||
| eslint-config-schibsted@^4.0.0: | ||||
|   version "4.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-schibsted/-/eslint-config-schibsted-4.0.0.tgz#7c0dacdc18d56a2dac006923917ef40df29438ed" | ||||
| 
 | ||||
| eslint-plugin-react@^7.1.0: | ||||
|   version "7.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.1.0.tgz#27770acf39f5fd49cd0af4083ce58104eb390d4c" | ||||
|   dependencies: | ||||
|     doctrine "^2.0.0" | ||||
|     has "^1.0.1" | ||||
|     jsx-ast-utils "^1.4.1" | ||||
| 
 | ||||
| eslint-scope@^3.7.1: | ||||
|   version "3.7.1" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" | ||||
|   dependencies: | ||||
|     es6-map "^0.1.3" | ||||
|     es6-weak-map "^2.0.1" | ||||
|     esrecurse "^4.1.0" | ||||
|     estraverse "^4.1.1" | ||||
| 
 | ||||
| eslint-config-finn-react@^1.0.0-alpha.2: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-finn-react/-/eslint-config-finn-react-1.0.2.tgz#52b43261c8f45b459dbdbf427745ce03ef79a7b6" | ||||
| eslint@^4.1.1: | ||||
|   version "4.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.1.1.tgz#facbdfcfe3e0facd3a8b80dc98c4e6c13ae582df" | ||||
|   dependencies: | ||||
|     eslint-config-schibsted-react "^3.0.1" | ||||
| 
 | ||||
| eslint-config-finn@1.0.0-alpha.11: | ||||
|   version "1.0.0-alpha.11" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-finn/-/eslint-config-finn-1.0.0-alpha.11.tgz#bd005e8a98b36d97a05595eded354b1309a59c84" | ||||
|   dependencies: | ||||
|     eslint-config-spt "^3.0.0-beta-2" | ||||
| 
 | ||||
| eslint-config-schibsted-react@^3.0.1: | ||||
|   version "3.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-schibsted-react/-/eslint-config-schibsted-react-3.0.1.tgz#658abaf16528684d0258468432745ab798644838" | ||||
| 
 | ||||
| eslint-config-spt@^3.0.0-beta-2: | ||||
|   version "3.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-config-spt/-/eslint-config-spt-3.0.0.tgz#5529e844f24edbcc03188aac9d36fbab65bcb20e" | ||||
| 
 | ||||
| eslint-plugin-react@^6.2.0: | ||||
|   version "6.10.3" | ||||
|   resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78" | ||||
|   dependencies: | ||||
|     array.prototype.find "^2.0.1" | ||||
|     doctrine "^1.2.2" | ||||
|     has "^1.0.1" | ||||
|     jsx-ast-utils "^1.3.4" | ||||
|     object.assign "^4.0.4" | ||||
| 
 | ||||
| eslint@^3.4.0: | ||||
|   version "3.19.0" | ||||
|   resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" | ||||
|   dependencies: | ||||
|     babel-code-frame "^6.16.0" | ||||
|     babel-code-frame "^6.22.0" | ||||
|     chalk "^1.1.3" | ||||
|     concat-stream "^1.5.2" | ||||
|     debug "^2.1.1" | ||||
|     concat-stream "^1.6.0" | ||||
|     debug "^2.6.8" | ||||
|     doctrine "^2.0.0" | ||||
|     escope "^3.6.0" | ||||
|     espree "^3.4.0" | ||||
|     eslint-scope "^3.7.1" | ||||
|     espree "^3.4.3" | ||||
|     esquery "^1.0.0" | ||||
|     estraverse "^4.2.0" | ||||
|     esutils "^2.0.2" | ||||
|     file-entry-cache "^2.0.0" | ||||
|     glob "^7.0.3" | ||||
|     globals "^9.14.0" | ||||
|     ignore "^3.2.0" | ||||
|     glob "^7.1.2" | ||||
|     globals "^9.17.0" | ||||
|     ignore "^3.3.3" | ||||
|     imurmurhash "^0.1.4" | ||||
|     inquirer "^0.12.0" | ||||
|     is-my-json-valid "^2.10.0" | ||||
|     inquirer "^3.0.6" | ||||
|     is-my-json-valid "^2.16.0" | ||||
|     is-resolvable "^1.0.0" | ||||
|     js-yaml "^3.5.1" | ||||
|     json-stable-stringify "^1.0.0" | ||||
|     js-yaml "^3.8.4" | ||||
|     json-stable-stringify "^1.0.1" | ||||
|     levn "^0.3.0" | ||||
|     lodash "^4.0.0" | ||||
|     mkdirp "^0.5.0" | ||||
|     lodash "^4.17.4" | ||||
|     minimatch "^3.0.2" | ||||
|     mkdirp "^0.5.1" | ||||
|     natural-compare "^1.4.0" | ||||
|     optionator "^0.8.2" | ||||
|     path-is-inside "^1.0.1" | ||||
|     pluralize "^1.2.1" | ||||
|     progress "^1.1.8" | ||||
|     require-uncached "^1.0.2" | ||||
|     shelljs "^0.7.5" | ||||
|     strip-bom "^3.0.0" | ||||
|     path-is-inside "^1.0.2" | ||||
|     pluralize "^4.0.0" | ||||
|     progress "^2.0.0" | ||||
|     require-uncached "^1.0.3" | ||||
|     strip-json-comments "~2.0.1" | ||||
|     table "^3.7.8" | ||||
|     table "^4.0.1" | ||||
|     text-table "~0.2.0" | ||||
|     user-home "^2.0.0" | ||||
| 
 | ||||
| espree@^3.4.0: | ||||
| espree@^3.4.3: | ||||
|   version "3.4.3" | ||||
|   resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374" | ||||
|   dependencies: | ||||
| @ -1911,13 +1813,6 @@ etag@~1.8.0: | ||||
|   version "1.8.0" | ||||
|   resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" | ||||
| 
 | ||||
| event-emitter@~0.3.5: | ||||
|   version "0.3.5" | ||||
|   resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" | ||||
|   dependencies: | ||||
|     d "1" | ||||
|     es5-ext "~0.10.14" | ||||
| 
 | ||||
| eventemitter3@1.x.x: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" | ||||
| @ -1942,10 +1837,6 @@ exenv@1.2.0: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.0.tgz#3835f127abf075bfe082d0aed4484057c78e3c89" | ||||
| 
 | ||||
| exit-hook@^1.0.0: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" | ||||
| 
 | ||||
| expand-brackets@^0.1.4: | ||||
|   version "0.1.5" | ||||
|   resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" | ||||
| @ -1995,6 +1886,14 @@ extend@~3.0.0: | ||||
|   version "3.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" | ||||
| 
 | ||||
| external-editor@^2.0.4: | ||||
|   version "2.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972" | ||||
|   dependencies: | ||||
|     iconv-lite "^0.4.17" | ||||
|     jschardet "^1.4.2" | ||||
|     tmp "^0.0.31" | ||||
| 
 | ||||
| extglob@^0.3.1: | ||||
|   version "0.3.2" | ||||
|   resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" | ||||
| @ -2057,12 +1956,11 @@ fbjs@^0.8.9: | ||||
|     setimmediate "^1.0.5" | ||||
|     ua-parser-js "^0.7.9" | ||||
| 
 | ||||
| figures@^1.3.5: | ||||
|   version "1.7.0" | ||||
|   resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" | ||||
| figures@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" | ||||
|   dependencies: | ||||
|     escape-string-regexp "^1.0.5" | ||||
|     object-assign "^4.1.0" | ||||
| 
 | ||||
| file-entry-cache@^2.0.0: | ||||
|   version "2.0.0" | ||||
| @ -2148,10 +2046,6 @@ for-own@^0.1.4: | ||||
|   dependencies: | ||||
|     for-in "^1.0.1" | ||||
| 
 | ||||
| foreach@^2.0.5: | ||||
|   version "2.0.5" | ||||
|   resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" | ||||
| 
 | ||||
| forever-agent@~0.6.1: | ||||
|   version "0.6.1" | ||||
|   resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" | ||||
| @ -2200,7 +2094,7 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: | ||||
|     mkdirp ">=0.5 0" | ||||
|     rimraf "2" | ||||
| 
 | ||||
| function-bind@^1.0.2, function-bind@^1.1.0: | ||||
| function-bind@^1.0.2: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" | ||||
| 
 | ||||
| @ -2260,7 +2154,7 @@ glob-parent@^2.0.0: | ||||
|   dependencies: | ||||
|     is-glob "^2.0.0" | ||||
| 
 | ||||
| glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@~7.1.1: | ||||
| glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1: | ||||
|   version "7.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" | ||||
|   dependencies: | ||||
| @ -2278,7 +2172,7 @@ global@^4.3.0: | ||||
|     min-document "^2.19.0" | ||||
|     process "~0.5.1" | ||||
| 
 | ||||
| globals@^9.0.0, globals@^9.14.0: | ||||
| globals@^9.0.0, globals@^9.17.0: | ||||
|   version "9.18.0" | ||||
|   resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" | ||||
| 
 | ||||
| @ -2446,7 +2340,7 @@ iconv-lite@0.4.13: | ||||
|   version "0.4.13" | ||||
|   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" | ||||
| 
 | ||||
| iconv-lite@~0.4.13: | ||||
| iconv-lite@^0.4.17, iconv-lite@~0.4.13: | ||||
|   version "0.4.18" | ||||
|   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" | ||||
| 
 | ||||
| @ -2464,7 +2358,7 @@ ieee754@^1.1.4: | ||||
|   version "1.1.8" | ||||
|   resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" | ||||
| 
 | ||||
| ignore@^3.2.0: | ||||
| ignore@^3.3.3: | ||||
|   version "3.3.3" | ||||
|   resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" | ||||
| 
 | ||||
| @ -2519,21 +2413,22 @@ ini@~1.3.0: | ||||
|   version "1.3.4" | ||||
|   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" | ||||
| 
 | ||||
| inquirer@^0.12.0: | ||||
|   version "0.12.0" | ||||
|   resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" | ||||
| inquirer@^3.0.6: | ||||
|   version "3.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.1.1.tgz#87621c4fba4072f48a8dd71c9f9df6f100b2d534" | ||||
|   dependencies: | ||||
|     ansi-escapes "^1.1.0" | ||||
|     ansi-regex "^2.0.0" | ||||
|     ansi-escapes "^2.0.0" | ||||
|     chalk "^1.0.0" | ||||
|     cli-cursor "^1.0.1" | ||||
|     cli-cursor "^2.1.0" | ||||
|     cli-width "^2.0.0" | ||||
|     figures "^1.3.5" | ||||
|     external-editor "^2.0.4" | ||||
|     figures "^2.0.0" | ||||
|     lodash "^4.3.0" | ||||
|     readline2 "^1.0.1" | ||||
|     run-async "^0.1.0" | ||||
|     rx-lite "^3.1.2" | ||||
|     string-width "^1.0.1" | ||||
|     mute-stream "0.0.7" | ||||
|     run-async "^2.2.0" | ||||
|     rx-lite "^4.0.8" | ||||
|     rx-lite-aggregates "^4.0.8" | ||||
|     string-width "^2.0.0" | ||||
|     strip-ansi "^3.0.0" | ||||
|     through "^2.3.6" | ||||
| 
 | ||||
| @ -2541,10 +2436,6 @@ interpret@^0.6.4: | ||||
|   version "0.6.6" | ||||
|   resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" | ||||
| 
 | ||||
| interpret@^1.0.0: | ||||
|   version "1.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" | ||||
| 
 | ||||
| invariant@^2.0.0, invariant@^2.1.0, invariant@^2.2.0, invariant@^2.2.1: | ||||
|   version "2.2.2" | ||||
|   resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" | ||||
| @ -2583,20 +2474,12 @@ is-builtin-module@^1.0.0: | ||||
|   dependencies: | ||||
|     builtin-modules "^1.0.0" | ||||
| 
 | ||||
| is-callable@^1.1.1, is-callable@^1.1.3: | ||||
|   version "1.1.3" | ||||
|   resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" | ||||
| 
 | ||||
| is-ci@^1.0.9: | ||||
|   version "1.0.10" | ||||
|   resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" | ||||
|   dependencies: | ||||
|     ci-info "^1.0.0" | ||||
| 
 | ||||
| is-date-object@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" | ||||
| 
 | ||||
| is-dotfile@^1.0.0: | ||||
|   version "1.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" | ||||
| @ -2647,7 +2530,7 @@ is-glob@^3.1.0: | ||||
|   dependencies: | ||||
|     is-extglob "^2.1.0" | ||||
| 
 | ||||
| is-my-json-valid@^2.10.0: | ||||
| is-my-json-valid@^2.16.0: | ||||
|   version "2.16.0" | ||||
|   resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" | ||||
|   dependencies: | ||||
| @ -2696,16 +2579,14 @@ is-primitive@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" | ||||
| 
 | ||||
| is-promise@^2.1.0: | ||||
|   version "2.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" | ||||
| 
 | ||||
| is-property@^1.0.0: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" | ||||
| 
 | ||||
| is-regex@^1.0.3: | ||||
|   version "1.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" | ||||
|   dependencies: | ||||
|     has "^1.0.1" | ||||
| 
 | ||||
| is-resolvable@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" | ||||
| @ -2722,10 +2603,6 @@ is-svg@^2.0.0: | ||||
|   dependencies: | ||||
|     html-comment-regex "^1.1.0" | ||||
| 
 | ||||
| is-symbol@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" | ||||
| 
 | ||||
| is-typedarray@~1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" | ||||
| @ -3032,7 +2909,7 @@ js-tokens@^3.0.0: | ||||
|   version "3.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" | ||||
| 
 | ||||
| js-yaml@^3.5.1, js-yaml@^3.7.0: | ||||
| js-yaml@^3.7.0, js-yaml@^3.8.4: | ||||
|   version "3.8.4" | ||||
|   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6" | ||||
|   dependencies: | ||||
| @ -3050,6 +2927,10 @@ jsbn@~0.1.0: | ||||
|   version "0.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" | ||||
| 
 | ||||
| jschardet@^1.4.2: | ||||
|   version "1.4.2" | ||||
|   resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.4.2.tgz#2aa107f142af4121d145659d44f50830961e699a" | ||||
| 
 | ||||
| jsdom@^9.11.0: | ||||
|   version "9.12.0" | ||||
|   resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4" | ||||
| @ -3086,7 +2967,7 @@ json-schema@0.2.3: | ||||
|   version "0.2.3" | ||||
|   resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" | ||||
| 
 | ||||
| json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: | ||||
| json-stable-stringify@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" | ||||
|   dependencies: | ||||
| @ -3121,7 +3002,7 @@ jsprim@^1.2.2: | ||||
|     json-schema "0.2.3" | ||||
|     verror "1.3.6" | ||||
| 
 | ||||
| jsx-ast-utils@^1.3.4: | ||||
| jsx-ast-utils@^1.4.1: | ||||
|   version "1.4.1" | ||||
|   resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" | ||||
| 
 | ||||
| @ -3245,7 +3126,7 @@ lodash.words@^3.0.0: | ||||
|   dependencies: | ||||
|     lodash._root "^3.0.0" | ||||
| 
 | ||||
| lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1, lodash@~4.17.4: | ||||
| lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1, lodash@~4.17.4: | ||||
|   version "4.17.4" | ||||
|   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" | ||||
| 
 | ||||
| @ -3376,6 +3257,10 @@ mime@^1.3.4: | ||||
|   version "1.3.6" | ||||
|   resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" | ||||
| 
 | ||||
| mimic-fn@^1.0.0: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" | ||||
| 
 | ||||
| min-document@^2.19.0: | ||||
|   version "2.19.0" | ||||
|   resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" | ||||
| @ -3410,9 +3295,9 @@ ms@2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" | ||||
| 
 | ||||
| mute-stream@0.0.5: | ||||
|   version "0.0.5" | ||||
|   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" | ||||
| mute-stream@0.0.7: | ||||
|   version "0.0.7" | ||||
|   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" | ||||
| 
 | ||||
| nan@^2.3.0, nan@^2.3.2: | ||||
|   version "2.6.2" | ||||
| @ -3601,18 +3486,6 @@ object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: | ||||
|   version "4.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" | ||||
| 
 | ||||
| object-keys@^1.0.10, object-keys@^1.0.8: | ||||
|   version "1.0.11" | ||||
|   resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" | ||||
| 
 | ||||
| object.assign@^4.0.4: | ||||
|   version "4.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" | ||||
|   dependencies: | ||||
|     define-properties "^1.1.2" | ||||
|     function-bind "^1.1.0" | ||||
|     object-keys "^1.0.10" | ||||
| 
 | ||||
| object.omit@^2.0.0: | ||||
|   version "2.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" | ||||
| @ -3636,9 +3509,11 @@ once@^1.3.0, once@^1.3.3, once@^1.4.0: | ||||
|   dependencies: | ||||
|     wrappy "1" | ||||
| 
 | ||||
| onetime@^1.0.0: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" | ||||
| onetime@^2.0.0: | ||||
|   version "2.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" | ||||
|   dependencies: | ||||
|     mimic-fn "^1.0.0" | ||||
| 
 | ||||
| open@0.0.5: | ||||
|   version "0.0.5" | ||||
| @ -3682,7 +3557,7 @@ os-locale@^1.4.0: | ||||
|   dependencies: | ||||
|     lcid "^1.0.0" | ||||
| 
 | ||||
| os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: | ||||
| os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" | ||||
| 
 | ||||
| @ -3748,7 +3623,7 @@ path-is-absolute@^1.0.0: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" | ||||
| 
 | ||||
| path-is-inside@^1.0.1: | ||||
| path-is-inside@^1.0.1, path-is-inside@^1.0.2: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" | ||||
| 
 | ||||
| @ -3796,9 +3671,9 @@ pkg-dir@^1.0.0: | ||||
|   dependencies: | ||||
|     find-up "^1.0.0" | ||||
| 
 | ||||
| pluralize@^1.2.1: | ||||
|   version "1.2.1" | ||||
|   resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" | ||||
| pluralize@^4.0.0: | ||||
|   version "4.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-4.0.0.tgz#59b708c1c0190a2f692f1c7618c446b052fd1762" | ||||
| 
 | ||||
| postcss-calc@^5.2.0: | ||||
|   version "5.3.1" | ||||
| @ -4087,9 +3962,9 @@ process@~0.5.1: | ||||
|   version "0.5.2" | ||||
|   resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" | ||||
| 
 | ||||
| progress@^1.1.8: | ||||
|   version "1.1.8" | ||||
|   resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" | ||||
| progress@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" | ||||
| 
 | ||||
| promise@^7.1.1: | ||||
|   version "7.3.1" | ||||
| @ -4350,20 +4225,6 @@ readdirp@^2.0.0: | ||||
|     readable-stream "^2.0.2" | ||||
|     set-immediate-shim "^1.0.1" | ||||
| 
 | ||||
| readline2@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" | ||||
|   dependencies: | ||||
|     code-point-at "^1.0.0" | ||||
|     is-fullwidth-code-point "^1.0.0" | ||||
|     mute-stream "0.0.5" | ||||
| 
 | ||||
| rechoir@^0.6.2: | ||||
|   version "0.6.2" | ||||
|   resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" | ||||
|   dependencies: | ||||
|     resolve "^1.1.6" | ||||
| 
 | ||||
| redbox-react@^1.2.2: | ||||
|   version "1.4.2" | ||||
|   resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.4.2.tgz#7fe35d3c567301e97938cc7fd6a10918f424c6b4" | ||||
| @ -4524,7 +4385,7 @@ require-main-filename@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" | ||||
| 
 | ||||
| require-uncached@^1.0.2: | ||||
| require-uncached@^1.0.3: | ||||
|   version "1.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" | ||||
|   dependencies: | ||||
| @ -4543,18 +4404,18 @@ resolve@1.1.7: | ||||
|   version "1.1.7" | ||||
|   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" | ||||
| 
 | ||||
| resolve@^1.1.6, resolve@^1.2.0: | ||||
| resolve@^1.2.0: | ||||
|   version "1.3.3" | ||||
|   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" | ||||
|   dependencies: | ||||
|     path-parse "^1.0.5" | ||||
| 
 | ||||
| restore-cursor@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" | ||||
| restore-cursor@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" | ||||
|   dependencies: | ||||
|     exit-hook "^1.0.0" | ||||
|     onetime "^1.0.0" | ||||
|     onetime "^2.0.0" | ||||
|     signal-exit "^3.0.2" | ||||
| 
 | ||||
| right-align@^0.1.1: | ||||
|   version "0.1.3" | ||||
| @ -4572,15 +4433,21 @@ ripemd160@0.2.0: | ||||
|   version "0.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" | ||||
| 
 | ||||
| run-async@^0.1.0: | ||||
|   version "0.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" | ||||
| run-async@^2.2.0: | ||||
|   version "2.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" | ||||
|   dependencies: | ||||
|     once "^1.3.0" | ||||
|     is-promise "^2.1.0" | ||||
| 
 | ||||
| rx-lite@^3.1.2: | ||||
|   version "3.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" | ||||
| rx-lite-aggregates@^4.0.8: | ||||
|   version "4.0.8" | ||||
|   resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" | ||||
|   dependencies: | ||||
|     rx-lite "*" | ||||
| 
 | ||||
| rx-lite@*, rx-lite@^4.0.8: | ||||
|   version "4.0.8" | ||||
|   resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" | ||||
| 
 | ||||
| safe-buffer@^5.0.1, safe-buffer@~5.1.0: | ||||
|   version "5.1.1" | ||||
| @ -4696,19 +4563,11 @@ sha.js@2.2.6: | ||||
|   version "2.2.6" | ||||
|   resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" | ||||
| 
 | ||||
| shelljs@^0.7.5: | ||||
|   version "0.7.8" | ||||
|   resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" | ||||
|   dependencies: | ||||
|     glob "^7.0.0" | ||||
|     interpret "^1.0.0" | ||||
|     rechoir "^0.6.2" | ||||
| 
 | ||||
| shellwords@^0.1.0: | ||||
|   version "0.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.0.tgz#66afd47b6a12932d9071cbfd98a52e785cd0ba14" | ||||
| 
 | ||||
| signal-exit@^3.0.0: | ||||
| signal-exit@^3.0.0, signal-exit@^3.0.2: | ||||
|   version "3.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" | ||||
| 
 | ||||
| @ -4894,7 +4753,7 @@ strip-ansi@^4.0.0: | ||||
|   dependencies: | ||||
|     ansi-regex "^3.0.0" | ||||
| 
 | ||||
| strip-bom@3.0.0, strip-bom@^3.0.0: | ||||
| strip-bom@3.0.0: | ||||
|   version "3.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" | ||||
| 
 | ||||
| @ -4956,9 +4815,9 @@ symbol-tree@^3.2.1: | ||||
|   version "3.2.2" | ||||
|   resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" | ||||
| 
 | ||||
| table@^3.7.8: | ||||
|   version "3.8.3" | ||||
|   resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" | ||||
| table@^4.0.1: | ||||
|   version "4.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/table/-/table-4.0.1.tgz#a8116c133fac2c61f4a420ab6cdf5c4d61f0e435" | ||||
|   dependencies: | ||||
|     ajv "^4.7.0" | ||||
|     ajv-keywords "^1.0.0" | ||||
| @ -5020,6 +4879,12 @@ timers-browserify@^2.0.2: | ||||
|   dependencies: | ||||
|     setimmediate "^1.0.4" | ||||
| 
 | ||||
| tmp@^0.0.31: | ||||
|   version "0.0.31" | ||||
|   resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" | ||||
|   dependencies: | ||||
|     os-tmpdir "~1.0.1" | ||||
| 
 | ||||
| tmpl@1.0.x: | ||||
|   version "1.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" | ||||
| @ -5149,12 +5014,6 @@ url@^0.11.0: | ||||
|     punycode "1.3.2" | ||||
|     querystring "0.2.0" | ||||
| 
 | ||||
| user-home@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" | ||||
|   dependencies: | ||||
|     os-homedir "^1.0.0" | ||||
| 
 | ||||
| util-deprecate@~1.0.1: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user