@@ -1,6 +1,10 @@ | |||
{ | |||
"extends": [ | |||
"eslint:recommended" | |||
"eslint:recommended", | |||
"plugin:import/errors", | |||
"plugin:react/recommended", | |||
"plugin:jsx-a11y/recommended", | |||
"plugin:promise/recommended" | |||
], | |||
"env": { | |||
@@ -10,180 +14,181 @@ | |||
"node": true | |||
}, | |||
"parserOptions": { | |||
"ecmaVersion": 6, | |||
"sourceType": "module", | |||
"ecmaFeatures": { | |||
"jsx": true, | |||
"modules": true | |||
} | |||
}, | |||
"globals": { | |||
"baseUrl": true, | |||
"SyntheticInputEvent": true | |||
}, | |||
"parser": "babel-eslint", | |||
"parser": "typescript-eslint-parser", | |||
"plugins": [ | |||
"import", | |||
"jsx-a11y", | |||
"flowtype", | |||
"react" | |||
], | |||
"plugins": ["import", "jsx-a11y", "react", "promise"], | |||
"rules": { | |||
"array-bracket-spacing": 2, | |||
"array-callback-return": 2, | |||
// "arrow-parens": [2, "as-needed"], | |||
"arrow-spacing": 2, | |||
"block-scoped-var": 2, | |||
"block-spacing": 2, | |||
"brace-style": 2, | |||
"comma-dangle": [2, "never"], | |||
"comma-spacing": 2, | |||
"comma-style": 2, | |||
"computed-property-spacing": 2, | |||
"consistent-this": [2, "that"], | |||
"curly": 2, | |||
"dot-location": [2, "property"], | |||
"eol-last": 2, | |||
"eqeqeq": [2, "smart"], | |||
"func-call-spacing": 2, | |||
"func-name-matching": 2, | |||
"func-names": [2, "never"], | |||
"generator-star-spacing": 2, | |||
"jsx-quotes": 2, | |||
"key-spacing": 2, | |||
"keyword-spacing": 2, | |||
// "max-len": [2, 100], | |||
"new-parens": 2, | |||
"no-lonely-if": 2, | |||
"no-multi-spaces": 2, | |||
"no-multiple-empty-lines": [2, { "max": 2 }], | |||
"no-self-compare": 2, | |||
"no-template-curly-in-string": 2, | |||
"no-trailing-spaces": 2, | |||
"no-unneeded-ternary": 2, | |||
"no-unsafe-negation": 2, | |||
"no-useless-computed-key": 2, | |||
"no-useless-rename": 2, | |||
"no-var": 2, | |||
"no-whitespace-before-property": 2, | |||
"object-curly-spacing": [2, "always"], | |||
"object-shorthand": 2, | |||
"one-var": [2, "never"], | |||
"operator-assignment": 2, | |||
"padded-blocks": [2, "never"], | |||
"prefer-arrow-callback": 2, | |||
"prefer-const": 2, | |||
"prefer-spread": 2, | |||
"quote-props": [2, "as-needed"], | |||
"quotes": [2, "single", { "avoidEscape": true }], | |||
"rest-spread-spacing": 2, | |||
"semi": [2, "always"], | |||
"semi-spacing": 2, | |||
"space-before-blocks": 2, | |||
"space-before-function-paren": [2, "never"], | |||
"space-in-parens": 2, | |||
"space-unary-ops": 2, | |||
"template-curly-spacing": 2, | |||
"yield-star-spacing": 2, | |||
"flowtype/boolean-style": 2, | |||
"flowtype/generic-spacing": 2, | |||
"flowtype/no-dupe-keys": 2, | |||
"flowtype/no-primitive-constructor-types": 2, | |||
"flowtype/no-weak-types": [2, { | |||
"any": true, | |||
"Object": false, | |||
"Function": false | |||
}], | |||
"flowtype/object-type-delimiter": 2, | |||
"flowtype/semi": 2, | |||
"flowtype/space-after-type-colon": 2, | |||
"flowtype/space-before-generic-bracket": 2, | |||
"flowtype/space-before-type-colon": 2, | |||
"flowtype/union-intersection-spacing": 2, | |||
"import/no-unresolved": 0, | |||
"import/named": 2, | |||
"import/default": 2, | |||
"import/namespace": 2, | |||
"import/no-named-as-default": 2, | |||
"import/no-named-as-default-member": 2, | |||
"import/no-amd": 2, | |||
"import/first": 2, | |||
"import/no-duplicates": 2, | |||
"import/extensions": 2, | |||
"import/order": [2, { | |||
"groups": ["builtin", "external"], | |||
"newlines-between": "never" | |||
}], | |||
"import/newline-after-import": 2, | |||
"import/no-named-default": 2, | |||
"jsx-a11y/aria-props": 2, | |||
"jsx-a11y/aria-proptypes": 2, | |||
"jsx-a11y/aria-role": 2, | |||
"jsx-a11y/aria-unsupported-elements": 2, | |||
"jsx-a11y/heading-has-content": 2, | |||
"jsx-a11y/html-has-lang": 2, | |||
"jsx-a11y/img-has-alt": 2, | |||
"jsx-a11y/img-redundant-alt": 2, | |||
"jsx-a11y/lang": 2, | |||
"jsx-a11y/mouse-events-have-key-events": 2, | |||
"jsx-a11y/no-access-key": 2, | |||
"jsx-a11y/no-marquee": 2, | |||
"jsx-a11y/onclick-has-focus": 2, | |||
"jsx-a11y/onclick-has-role": 2, | |||
"jsx-a11y/role-has-required-aria-props": 2, | |||
"jsx-a11y/role-supports-aria-props": 2, | |||
"jsx-a11y/tabindex-no-positive": 2, | |||
"react/jsx-boolean-value": [2, "always"], | |||
"react/jsx-closing-bracket-location": [2, { | |||
"nonEmpty": "after-props", | |||
"selfClosing": "tag-aligned" | |||
}], | |||
"react/jsx-curly-spacing": [2, "never"], | |||
"react/jsx-equals-spacing": [2, "never"], | |||
"react/jsx-key": 2, | |||
"react/jsx-no-duplicate-props": 2, | |||
"react/jsx-no-undef": 2, | |||
"react/jsx-pascal-case": 2, | |||
"react/jsx-space-before-closing": 2, | |||
"react/jsx-tag-spacing": [2, { | |||
"closingSlash": "never", | |||
"beforeSelfClosing": "always", | |||
"afterOpening": "never" | |||
}], | |||
"react/jsx-uses-react": 2, | |||
"react/jsx-uses-vars": 2, | |||
"react/no-children-prop": 2, | |||
"react/no-danger-with-children": 2, | |||
"react/no-deprecated": 2, | |||
"react/no-direct-mutation-state": 2, | |||
"react/no-is-mounted": 2, | |||
"react/no-render-return-value": 2, | |||
"react/no-unescaped-entities": 2, | |||
"react/no-unknown-property": 2, | |||
"react/react-in-jsx-scope": 2, | |||
"react/require-render-return": 2, | |||
"react/self-closing-comp": 2, | |||
"react/sort-comp": [2, { | |||
"order": [ | |||
"type-annotations", | |||
"static-methods", | |||
"lifecycle", | |||
"everything-else", | |||
"rendering" | |||
], | |||
"groups": { | |||
"rendering": [ | |||
"/^render.+$/", | |||
"render" | |||
] | |||
// possible errors | |||
"for-direction": "error", | |||
"no-prototype-builtins": "error", | |||
"no-template-curly-in-string": "error", | |||
"no-unsafe-negation": "error", | |||
// best practices | |||
// TODO turn all rules to "error" eventually | |||
"array-callback-return": "error", | |||
"block-scoped-var": "error", | |||
"complexity": "warn", | |||
"consistent-return": "warn", | |||
"eqeqeq": ["error", "smart"], | |||
"guard-for-in": "error", | |||
"no-alert": "error", | |||
"no-caller": "error", | |||
"no-div-regex": "error", | |||
"no-eval": "error", | |||
"no-extend-native": "error", | |||
"no-extra-bind": "error", | |||
"no-extra-label": "error", | |||
"no-floating-decimal": "error", | |||
"no-implied-eval": "error", | |||
"no-iterator": "error", | |||
"no-labels": "error", | |||
"no-lone-blocks": "error", | |||
"no-loop-func": "error", | |||
"no-new": "warn", | |||
"no-new-func": "error", | |||
"no-new-wrappers": "error", | |||
"no-proto": "error", | |||
"no-restricted-properties": "error", | |||
"no-return-assign": "error", | |||
"no-return-await": "error", | |||
"no-self-compare": "error", | |||
"no-sequences": "error", | |||
"no-throw-literal": "warn", | |||
"no-unmodified-loop-condition": "error", | |||
"no-unused-expressions": "warn", | |||
"no-useless-call": "error", | |||
"no-useless-concat": "warn", | |||
"no-useless-escape": "warn", | |||
"no-useless-return": "warn", | |||
"no-void": "error", | |||
"no-with": "error", | |||
"radix": "error", | |||
"require-await": "error", | |||
"wrap-iife": "error", | |||
"yoda": "warn", | |||
// stylistic | |||
"camelcase": "warn", | |||
"consistent-this": ["warn", "that"], | |||
"func-name-matching": "error", | |||
"func-style": ["warn", "declaration", { "allowArrowFunctions": true }], | |||
"max-depth": "warn", | |||
"max-lines": ["warn", 1000], | |||
"max-params": ["warn", 4], | |||
"no-array-constructor": "warn", | |||
"no-bitwise": "warn", | |||
"no-lonely-if": "error", | |||
"no-mixed-operators": "warn", | |||
"no-multi-assign": "warn", | |||
"no-nested-ternary": "warn", | |||
"no-new-object": "warn", | |||
"no-underscore-dangle": "warn", | |||
"no-unneeded-ternary": "warn", | |||
"one-var": ["warn", "never"], | |||
"operator-assignment": "warn", | |||
// es2015 | |||
"no-duplicate-imports": "error", | |||
"no-useless-computed-key": "error", | |||
"no-useless-rename": "error", | |||
"no-var": "error", | |||
"object-shorthand": "error", | |||
"prefer-arrow-callback": "error", | |||
"prefer-const": "error", | |||
"prefer-destructuring": ["warn", { "object": true, "array": false }], | |||
"prefer-numeric-literals": "warn", | |||
"prefer-rest-params": "warn", | |||
"prefer-spread": "warn", | |||
// disabled because of the usage of typescript-eslint-parser | |||
// https://github.com/eslint/typescript-eslint-parser/issues/77 | |||
"no-undef": "off", | |||
"no-unused-vars": "off", | |||
// import | |||
"import/extensions": "error", | |||
"import/first": "error", | |||
"import/newline-after-import": "error", | |||
"import/no-absolute-path": "error", | |||
"import/no-amd": "error", | |||
"import/no-deprecated": "error", | |||
"import/no-duplicates": "error", | |||
"import/no-dynamic-require": "error", | |||
"import/no-extraneous-dependencies": "error", | |||
"import/no-mutable-exports": "error", | |||
"import/no-named-as-default": "error", | |||
"import/no-named-as-default-member": "error", | |||
"import/no-named-default": "error", | |||
"import/no-webpack-loader-syntax": "error", | |||
"import/order": ["error", { "groups": ["builtin", "external"], "newlines-between": "never" }], | |||
// does not properly work with ts | |||
"import/no-unresolved": "off", | |||
// react | |||
// TODO turn all rules to "error" eventually | |||
"react/display-name": "warn", | |||
"react/jsx-boolean-value": ["error", "always"], | |||
"react/jsx-no-comment-textnodes": "warn", | |||
"react/jsx-no-target-blank": "warn", | |||
"react/jsx-pascal-case": "error", | |||
"react/no-find-dom-node": "warn", | |||
"react/no-string-refs": "warn", | |||
"react/self-closing-comp": "error", | |||
"react/sort-comp": [ | |||
"error", | |||
{ | |||
"order": [ | |||
"type-annotations", | |||
"static-methods", | |||
"lifecycle", | |||
"everything-else", | |||
"rendering" | |||
], | |||
"groups": { "rendering": ["/^render.+$/", "render"] } | |||
} | |||
}] | |||
], | |||
// turn off prop types validation, better use ts ;) | |||
"react/prop-types": "off", | |||
// jsx-a11y | |||
"jsx-a11y/anchor-has-content": "warn", | |||
"jsx-a11y/no-noninteractive-tabindex": "warn", | |||
"jsx-a11y/no-redundant-roles": "warn", | |||
"jsx-a11y/no-static-element-interactions": "warn", | |||
"jsx-a11y/anchor-is-valid": "off", | |||
"jsx-a11y/click-events-have-key-events": "off", | |||
"jsx-a11y/no-autofocus": "off", | |||
"jsx-a11y/no-noninteractive-element-interactions": "off", | |||
// has FPs | |||
"jsx-a11y/label-has-for": "off", | |||
// promise | |||
"promise/catch-or-return": ["warn", { "allowThen": true }], | |||
"promise/always-return": "off", | |||
"promise/avoid-new": "off" | |||
}, | |||
"settings": { | |||
"import/ignore": [ | |||
"node_modules", | |||
"hbs$" | |||
] | |||
"import/ignore": ["node_modules", "hbs$"] | |||
} | |||
} |
@@ -67,7 +67,6 @@ | |||
"autoprefixer": "7.1.1", | |||
"awesome-typescript-loader": "3.2.3", | |||
"babel-core": "^6.22.1", | |||
"babel-eslint": "7.2.3", | |||
"babel-jest": "20.0.3", | |||
"babel-loader": "7.0.0", | |||
"babel-plugin-dynamic-import-node": "1.0.2", | |||
@@ -83,12 +82,12 @@ | |||
"css-loader": "0.28.4", | |||
"enzyme": "2.9.1", | |||
"enzyme-to-json": "1.5.1", | |||
"eslint": "3.14.1", | |||
"eslint": "4.9.0", | |||
"eslint-loader": "1.8.0", | |||
"eslint-plugin-flowtype": "^2.29.1", | |||
"eslint-plugin-import": "2.7.0", | |||
"eslint-plugin-jsx-a11y": "^3.0.2", | |||
"eslint-plugin-react": "^6.8.0", | |||
"eslint-plugin-import": "2.8.0", | |||
"eslint-plugin-jsx-a11y": "6.0.2", | |||
"eslint-plugin-promise": "3.6.0", | |||
"eslint-plugin-react": "7.4.0", | |||
"expose-loader": "0.7.3", | |||
"extract-text-webpack-plugin": "2.1.2", | |||
"flow-bin": "^0.52.0", | |||
@@ -106,7 +105,8 @@ | |||
"rimraf": "2.5.4", | |||
"style-loader": "0.18.2", | |||
"ts-jest": "20.0.10", | |||
"typescript": "2.4.2", | |||
"typescript": "2.5.3", | |||
"typescript-eslint-parser": "8.0.0", | |||
"webpack": "2.6.1", | |||
"webpack-bundle-analyzer": "2.8.2", | |||
"webpack-dev-server": "2.4.5" | |||
@@ -118,7 +118,7 @@ | |||
"test": "node scripts/test.js", | |||
"coverage": "npm test -- --coverage", | |||
"format": "prettier --write --list-different 'src/main/{js,less}/!(libs)/**/*.{js,ts,tsx,css,less}'", | |||
"lint": "eslint src/main/js", | |||
"lint": "eslint --ext js,ts,tsx --quiet src/main/js", | |||
"typecheck": "flow src/main/js", | |||
"validate": "eslint src/main/js && flow check src/main/js && NODE_ENV=test jest" | |||
}, |
@@ -40,7 +40,6 @@ interface State { | |||
class App extends React.PureComponent<Props, State> { | |||
mounted: boolean; | |||
state: State = { branchesEnabled: false, canAdmin: false, loading: true, onSonarCloud: false }; | |||
static childContextTypes = { | |||
branchesEnabled: PropTypes.bool.isRequired, | |||
@@ -48,6 +47,11 @@ class App extends React.PureComponent<Props, State> { | |||
onSonarCloud: PropTypes.bool | |||
}; | |||
constructor(props: Props) { | |||
super(props); | |||
this.state = { branchesEnabled: false, canAdmin: false, loading: true, onSonarCloud: false }; | |||
} | |||
getChildContext() { | |||
return { | |||
branchesEnabled: this.state.branchesEnabled, | |||
@@ -73,7 +77,7 @@ class App extends React.PureComponent<Props, State> { | |||
return this.props.fetchAppState().then(appState => { | |||
if (this.mounted) { | |||
const onSonarCloud = | |||
appState.settings != undefined && | |||
appState.settings !== undefined && | |||
appState.settings['sonar.sonarcloud.enabled'] === 'true'; | |||
this.setState({ | |||
branchesEnabled: appState.branchesEnabled, |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first */ | |||
jest.mock('../../../api/branches', () => ({ getBranches: jest.fn() })); | |||
jest.mock('../../../api/components', () => ({ getComponentData: jest.fn() })); | |||
jest.mock('../../../api/nav', () => ({ getComponentNavigation: jest.fn() })); |
@@ -46,17 +46,21 @@ interface State { | |||
export default class ComponentNavBranch extends React.PureComponent<Props, State> { | |||
mounted: boolean; | |||
state: State = { | |||
dropdownOpen: false, | |||
noBranchSupportPopupOpen: false, | |||
singleBranchPopupOpen: false | |||
}; | |||
static contextTypes = { | |||
branchesEnabled: PropTypes.bool.isRequired, | |||
onSonarCloud: PropTypes.bool | |||
}; | |||
constructor(props: Props) { | |||
super(props); | |||
this.state = { | |||
dropdownOpen: false, | |||
noBranchSupportPopupOpen: false, | |||
singleBranchPopupOpen: false | |||
}; | |||
} | |||
componentDidMount() { | |||
this.mounted = true; | |||
} | |||
@@ -94,7 +98,7 @@ export default class ComponentNavBranch extends React.PureComponent<Props, State | |||
}; | |||
toggleSingleBranchPopup = (show?: boolean) => { | |||
if (show != undefined) { | |||
if (show !== undefined) { | |||
this.setState({ singleBranchPopupOpen: show }); | |||
} else { | |||
this.setState(state => ({ singleBranchPopupOpen: !state.singleBranchPopupOpen })); | |||
@@ -102,7 +106,7 @@ export default class ComponentNavBranch extends React.PureComponent<Props, State | |||
}; | |||
toggleNoBranchSupportPopup = (show?: boolean) => { | |||
if (show != undefined) { | |||
if (show !== undefined) { | |||
this.setState({ noBranchSupportPopupOpen: show }); | |||
} else { | |||
this.setState(state => ({ noBranchSupportPopupOpen: !state.noBranchSupportPopupOpen })); |
@@ -46,12 +46,16 @@ interface State { | |||
export default class ComponentNavBranchesMenu extends React.PureComponent<Props, State> { | |||
private node: HTMLElement | null; | |||
state = { query: '', selected: null }; | |||
static contextTypes = { | |||
router: PropTypes.object | |||
}; | |||
constructor(props: Props) { | |||
super(props); | |||
this.state = { query: '', selected: null }; | |||
} | |||
componentDidMount() { | |||
window.addEventListener('click', this.handleClickOutside); | |||
} |
@@ -127,7 +127,6 @@ export default class ComponentNavMenu extends React.PureComponent<Props> { | |||
} | |||
renderActivityLink() { | |||
if (this.props.branch && isShortLivingBranch(this.props.branch)) { | |||
return null; | |||
} |
@@ -17,20 +17,23 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../ComponentNavFavorite', () => ({ | |||
// eslint-disable-next-line | |||
default: function ComponentNavFavorite() { | |||
return null; | |||
} | |||
})); | |||
jest.mock('../ComponentNavBreadcrumbs', () => ({ | |||
// eslint-disable-next-line | |||
default: function ComponentNavBreadcrumbs() { | |||
return null; | |||
} | |||
})); | |||
jest.mock('../ComponentNavMenu', () => ({ | |||
// eslint-disable-next-line | |||
default: function ComponentNavMenu() { | |||
return null; | |||
} |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first */ | |||
jest.mock('../../../../../helpers/l10n', () => { | |||
const l10n = require.requireActual('../../../../../helpers/l10n'); | |||
l10n.hasMessage = jest.fn(() => true); |
@@ -69,9 +69,9 @@ export default class TaskActions extends React.PureComponent<Props, State> { | |||
render() { | |||
const { component, task } = this.props; | |||
const canFilter = component == undefined; | |||
const canFilter = component === undefined; | |||
const canCancel = task.status === STATUSES.PENDING; | |||
const canShowStacktrace = task.errorMessage != undefined; | |||
const canShowStacktrace = task.errorMessage !== undefined; | |||
const hasActions = canFilter || canCancel || task.hasScannerContext || canShowStacktrace; | |||
if (!hasActions) { |
@@ -83,7 +83,7 @@ export default class Workers extends React.PureComponent<{}, State> { | |||
}; | |||
toggleNoSupportPopup = (show?: boolean) => { | |||
if (show != undefined) { | |||
if (show !== undefined) { | |||
this.setState({ noSupportPopup: show }); | |||
} else { | |||
this.setState(state => ({ noSupportPopup: !state.noSupportPopup })); |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../api/ce', () => ({ | |||
getTask: jest.fn() | |||
})); |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../api/ce', () => ({ | |||
getTask: jest.fn() | |||
})); |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../api/ce', () => ({ | |||
setWorkerCount: () => Promise.resolve() | |||
})); |
@@ -222,8 +222,8 @@ export default class App extends React.PureComponent<Props, State> { | |||
<Breadcrumbs branch={branchName} breadcrumbs={breadcrumbs} rootComponent={component} /> | |||
)} | |||
{sourceViewer == undefined && | |||
components != undefined && ( | |||
{sourceViewer === undefined && | |||
components !== undefined && ( | |||
<div className={componentsClassName}> | |||
<Components | |||
baseComponent={baseComponent} | |||
@@ -234,12 +234,12 @@ export default class App extends React.PureComponent<Props, State> { | |||
</div> | |||
)} | |||
{sourceViewer == undefined && | |||
components != undefined && ( | |||
{sourceViewer === undefined && | |||
components !== undefined && ( | |||
<ListFooter count={components.length} total={total} loadMore={this.handleLoadMore} /> | |||
)} | |||
{sourceViewer != undefined && ( | |||
{sourceViewer !== undefined && ( | |||
<div className="spacer-top"> | |||
<SourceViewer branch={branchName} component={sourceViewer.key} /> | |||
</div> |
@@ -59,7 +59,7 @@ export default function ComponentName(props: Props) { | |||
const { branch, component, rootComponent, previous, canBrowse = false } = props; | |||
const areBothDirs = component.qualifier === 'DIR' && previous && previous.qualifier === 'DIR'; | |||
const prefix = | |||
areBothDirs && previous != undefined | |||
areBothDirs && previous !== undefined | |||
? mostCommitPrefix([component.name + '/', previous.name + '/']) | |||
: ''; | |||
const name = prefix ? ( |
@@ -61,8 +61,8 @@ export default function ComponentBreadcrumbs({ branch, component, issue, organiz | |||
)} | |||
{displaySubProject && | |||
issue.subProject != undefined && | |||
issue.subProjectName != undefined && ( | |||
issue.subProject !== undefined && | |||
issue.subProjectName !== undefined && ( | |||
<span title={issue.subProjectName}> | |||
<Link to={getProjectUrl(issue.subProject, branch)} className="link-no-underline"> | |||
{limitComponentName(issue.subProjectName)} |
@@ -103,8 +103,8 @@ export default class Activity extends React.PureComponent<Props> { | |||
{this.state.loading ? ( | |||
<i className="spinner" /> | |||
) : ( | |||
this.state.metrics != undefined && | |||
this.state.history != undefined && ( | |||
this.state.metrics !== undefined && | |||
this.state.history !== undefined && ( | |||
<AnyPreviewGraph | |||
history={this.state.history} | |||
metrics={this.state.metrics} |
@@ -98,10 +98,10 @@ export default class App extends React.PureComponent<Props, State> { | |||
); | |||
} | |||
isEmpty = () => this.state.measures == undefined || this.state.measures['ncloc'] == undefined; | |||
isEmpty = () => this.state.measures === undefined || this.state.measures['ncloc'] === undefined; | |||
isNotComputed = () => | |||
this.state.measures && this.state.measures['reliability_rating'] == undefined; | |||
this.state.measures && this.state.measures['reliability_rating'] === undefined; | |||
renderSpinner() { | |||
return ( | |||
@@ -151,8 +151,8 @@ export default class App extends React.PureComponent<Props, State> { | |||
<MaintainabilityBox component={component.key} measures={measures!} /> | |||
</div> | |||
{subComponents != undefined && | |||
totalSubComponents != undefined && ( | |||
{subComponents !== undefined && | |||
totalSubComponents !== undefined && ( | |||
<WorstProjects | |||
component={component.key} | |||
subComponents={subComponents} |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../helpers/storage', () => ({ | |||
getCustomGraph: () => ['coverage'], | |||
getGraph: () => 'custom' |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../api/measures', () => ({ | |||
getMeasures: jest.fn(() => Promise.resolve([])) | |||
})); | |||
@@ -27,12 +28,14 @@ jest.mock('../../../../api/components', () => ({ | |||
// mock Activity to not deal with localstorage | |||
jest.mock('../Activity', () => ({ | |||
// eslint-disable-next-line | |||
default: function Activity() { | |||
return null; | |||
} | |||
})); | |||
jest.mock('../Report', () => ({ | |||
// eslint-disable-next-line | |||
default: function Report() { | |||
return null; | |||
} |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../api/report', () => { | |||
const report = require.requireActual('../../../../api/report'); | |||
report.getReportStatus = jest.fn(() => Promise.resolve({})); |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../api/report', () => { | |||
const report = require.requireActual('../../../../api/report'); | |||
report.subscribe = jest.fn(() => Promise.resolve()); |
@@ -18,15 +18,15 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
import * as React from 'react'; | |||
import { FormattedMessage } from 'react-intl'; | |||
import { Link } from 'react-router'; | |||
import BranchRow from './BranchRow'; | |||
import LongBranchesPattern from './LongBranchesPattern'; | |||
import { Branch } from '../../../app/types'; | |||
import { sortBranchesAsTree } from '../../../helpers/branches'; | |||
import { translate } from '../../../helpers/l10n'; | |||
import { getValues } from '../../../api/settings'; | |||
import { FormattedMessage } from 'react-intl'; | |||
import { formatMeasure } from '../../../helpers/measures'; | |||
import { Link } from 'react-router'; | |||
interface Props { | |||
branches: Branch[]; |
@@ -18,8 +18,8 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
import * as React from 'react'; | |||
import { Branch } from '../../../app/types'; | |||
import * as classNames from 'classnames'; | |||
import { Branch } from '../../../app/types'; | |||
import DeleteBranchModal from './DeleteBranchModal'; | |||
import LeakPeriodForm from './LeakPeriodForm'; | |||
import BranchStatus from '../../../components/common/BranchStatus'; |
@@ -109,7 +109,7 @@ export default class RenameBranchModal extends React.PureComponent<Props, State> | |||
required={true} | |||
size={50} | |||
type="text" | |||
value={this.state.name != undefined ? this.state.name : branch.name} | |||
value={this.state.name !== undefined ? this.state.name : branch.name} | |||
/> | |||
</div> | |||
</div> |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../api/settings', () => ({ | |||
getValues: jest.fn(() => Promise.resolve([])) | |||
})); |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first */ | |||
jest.mock('../../../../api/branches', () => ({ deleteBranch: jest.fn() })); | |||
import * as React from 'react'; |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../api/settings', () => ({ | |||
getValues: jest.fn(() => Promise.resolve([])) | |||
})); | |||
@@ -40,7 +41,7 @@ it('renders', () => { | |||
it('opens form', () => { | |||
const wrapper = shallow(<LongBranchesPattern project="project" />); | |||
(wrapper.instance() as LongBranchesPattern) .mounted = true; | |||
(wrapper.instance() as LongBranchesPattern).mounted = true; | |||
wrapper.setState({ loading: false, setting: { value: 'release-.*' } }); | |||
click(wrapper.find('a')); |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first */ | |||
jest.mock('../../../../api/branches', () => ({ renameBranch: jest.fn() })); | |||
import * as React from 'react'; |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../api/settings', () => ({ | |||
setSimpleSettingValue: jest.fn(() => Promise.resolve()), | |||
resetSettingValue: jest.fn(() => Promise.resolve()) |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../api/quality-gates', () => ({ | |||
associateGateWithProject: jest.fn(() => Promise.resolve()), | |||
dissociateGateWithProject: jest.fn(() => Promise.resolve()), |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../api/quality-profiles', () => ({ | |||
associateProject: jest.fn(() => Promise.resolve()), | |||
dissociateProject: jest.fn(() => Promise.resolve()), | |||
@@ -116,7 +117,7 @@ function randomProfile(key: string, language: string, isDefault = false) { | |||
isDefault, | |||
key, | |||
name: key, | |||
language: language, | |||
language, | |||
languageName: language, | |||
organization: 'org' | |||
}; |
@@ -42,7 +42,7 @@ function randomProfile(key: string, language: string) { | |||
activeDeprecatedRuleCount: 0, | |||
key, | |||
name: key, | |||
language: language, | |||
language, | |||
languageName: language, | |||
organization: 'org' | |||
}; |
@@ -49,6 +49,7 @@ describe('cumulativeMapFacetValues', () => { | |||
{ val: '4', count: 2 }, | |||
{ val: '5', count: 0 } | |||
]) | |||
// eslint-disable-next-line | |||
).toEqual({ '1': 50, '2': 9, '3': 8, '4': 2, '5': 0 }); | |||
}); | |||
it('should correctly cumulate facets with NO_DATA items', () => { |
@@ -51,7 +51,6 @@ interface State { | |||
export default class AllProjects extends React.PureComponent<Props, State> { | |||
mounted: boolean; | |||
state: State = { loading: true, query: {} }; | |||
static contextTypes = { | |||
currentUser: PropTypes.object.isRequired, | |||
@@ -59,6 +58,11 @@ export default class AllProjects extends React.PureComponent<Props, State> { | |||
router: PropTypes.object.isRequired | |||
}; | |||
constructor(props: Props) { | |||
super(props); | |||
this.state = { loading: true, query: {} }; | |||
} | |||
componentDidMount() { | |||
this.mounted = true; | |||
if (this.props.isFavorite && !this.context.currentUser.isLoggedIn) { | |||
@@ -88,7 +92,7 @@ export default class AllProjects extends React.PureComponent<Props, State> { | |||
getSort = () => this.state.query.sort || 'name'; | |||
isFiltered = () => Object.values(this.state.query).some(value => value != undefined); | |||
isFiltered = () => Object.values(this.state.query).some(value => value !== undefined); | |||
stopLoading = () => { | |||
if (this.mounted) { | |||
@@ -280,10 +284,10 @@ export default class AllProjects extends React.PureComponent<Props, State> { | |||
/> | |||
)} | |||
<ListFooter | |||
count={this.state.projects != undefined ? this.state.projects.length : 0} | |||
count={this.state.projects !== undefined ? this.state.projects.length : 0} | |||
loadMore={this.fetchMoreProjects} | |||
ready={!this.state.loading} | |||
total={this.state.total != undefined ? this.state.total : 0} | |||
total={this.state.total !== undefined ? this.state.total : 0} | |||
/> | |||
</div> | |||
); |
@@ -37,7 +37,7 @@ export default class ProjectCardLanguages extends React.PureComponent<Props> { | |||
}; | |||
render() { | |||
if (this.props.distribution == undefined) { | |||
if (this.props.distribution === undefined) { | |||
return null; | |||
} | |||
@@ -43,7 +43,7 @@ export default function ProjectCardOverall({ organization, project }: Props) { | |||
return ( | |||
<div data-key={project.key} className="boxed-group project-card"> | |||
<div className="boxed-group-header clearfix"> | |||
{project.isFavorite != undefined && ( | |||
{project.isFavorite !== undefined && ( | |||
<Favorite | |||
className="spacer-right" | |||
component={project.key} |
@@ -34,7 +34,7 @@ interface Props { | |||
} | |||
export default function ProjectCardOverallMeasures({ measures }: Props) { | |||
if (measures == undefined) { | |||
if (measures === undefined) { | |||
return null; | |||
} | |||
@@ -17,19 +17,23 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../ProjectsList', () => ({ | |||
// eslint-disable-next-line | |||
default: function ProjectsList() { | |||
return null; | |||
} | |||
})); | |||
jest.mock('../PageHeader', () => ({ | |||
// eslint-disable-next-line | |||
default: function PageHeader() { | |||
return null; | |||
} | |||
})); | |||
jest.mock('../PageSidebar', () => ({ | |||
// eslint-disable-next-line | |||
default: function PageSidebar() { | |||
return null; | |||
} |
@@ -17,7 +17,9 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../AllProjects', () => ({ | |||
// eslint-disable-next-line | |||
default: function AllProjects() { | |||
return null; | |||
} |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first */ | |||
jest.mock('../../../../helpers/storage', () => ({ | |||
saveAll: jest.fn(), | |||
saveFavorite: jest.fn() |
@@ -85,7 +85,7 @@ export default class Filter extends React.PureComponent<Props> { | |||
} | |||
renderOptionBar(facetValue: number | undefined) { | |||
if (facetValue == undefined || !this.props.maxFacetValue) { | |||
if (facetValue === undefined || !this.props.maxFacetValue) { | |||
return null; | |||
} | |||
return ( |
@@ -198,7 +198,7 @@ export function fetchProjects( | |||
const value = isDiffMetric(measure.metric) | |||
? getPeriodValue(measure, 1) | |||
: measure.value; | |||
if (value != undefined) { | |||
if (value !== undefined) { | |||
componentMeasures[measure.metric] = value; | |||
} | |||
}); | |||
@@ -248,7 +248,7 @@ function convertToQueryData( | |||
if (sort.s) { | |||
data.s = sort.s; | |||
} | |||
if (sort.hasOwnProperty('asc')) { | |||
if (sort.asc !== undefined) { | |||
data.asc = sort.asc; | |||
} | |||
return data; |
@@ -69,7 +69,7 @@ export default class BulkApplyTemplateModal extends React.PureComponent<Props, S | |||
loading: false, | |||
permissionTemplate: | |||
permissionTemplates.length > 0 ? permissionTemplates[0].id : undefined, | |||
permissionTemplates: permissionTemplates | |||
permissionTemplates | |||
}); | |||
} | |||
}, |
@@ -22,8 +22,7 @@ import * as Select from 'react-select'; | |||
import { sortBy } from 'lodash'; | |||
import BulkApplyTemplateModal from './BulkApplyTemplateModal'; | |||
import DeleteModal from './DeleteModal'; | |||
import { QUALIFIERS_ORDER } from './utils'; | |||
import { Project } from './utils'; | |||
import { QUALIFIERS_ORDER, Project } from './utils'; | |||
import { Organization } from '../../app/types'; | |||
import Checkbox from '../../components/controls/Checkbox'; | |||
import { translate } from '../../helpers/l10n'; |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('lodash', () => { | |||
const lodash = require.requireActual('lodash'); | |||
lodash.debounce = (fn: Function) => (...args: any[]) => fn(args); | |||
@@ -25,6 +26,7 @@ jest.mock('lodash', () => { | |||
// actual version breaks `mount` | |||
jest.mock('rc-tooltip', () => ({ | |||
// eslint-disable-next-line | |||
default: function Tooltip() { | |||
return null; | |||
} | |||
@@ -81,7 +83,7 @@ it('searches', () => { | |||
expect(getComponents).lastCalledWith({ ...defaultSearchParameters, q: 'foo', qualifiers: 'TRK' }); | |||
}); | |||
it('loads more', async () => { | |||
it('loads more', () => { | |||
const wrapper = mountRender(); | |||
wrapper.find('ListFooter').prop<Function>('loadMore')(); | |||
expect(getComponents).lastCalledWith({ ...defaultSearchParameters, p: 2, qualifiers: 'TRK' }); |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../api/permissions', () => ({ | |||
bulkApplyTemplate: jest.fn(() => Promise.resolve()), | |||
getPermissionTemplates: jest.fn(() => Promise.resolve({ permissionTemplates: [] })) |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../api/components', () => ({ | |||
createProject: jest.fn(({ name }: { name: string }) => | |||
Promise.resolve({ project: { key: name, name } }) |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../api/components', () => ({ | |||
bulkDeleteProjects: jest.fn(() => Promise.resolve()) | |||
})); |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first */ | |||
jest.mock('../../permissions/project/views/ApplyTemplateView'); | |||
import * as React from 'react'; |
@@ -32,7 +32,7 @@ interface Props { | |||
onRequestFail: (reasong: any) => void; | |||
organization: string | null; | |||
profiles: Profile[]; | |||
router: { replace: ({}) => void }; | |||
router: { replace: (path: any) => void }; | |||
updateProfiles: () => Promise<void>; | |||
} | |||
@@ -82,7 +82,7 @@ export default class ProfilePermissionsForm extends React.PureComponent<Props, S | |||
const { selected } = this.state; | |||
if (selected) { | |||
this.setState({ submitting: true }); | |||
if ((selected as User).login != undefined) { | |||
if ((selected as User).login !== undefined) { | |||
this.handleUserAdd(selected as User); | |||
} else { | |||
this.handleGroupAdd(selected as Group); |
@@ -113,7 +113,7 @@ export default class ProfilePermissionsFormSelect extends React.PureComponent<Pr | |||
} | |||
function isUser(option: Option): option is User { | |||
return (option as User).login != undefined; | |||
return (option as User).login !== undefined; | |||
} | |||
function getStringValue(option: Option) { |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../api/quality-profiles', () => ({ | |||
searchUsers: jest.fn(() => Promise.resolve([])), | |||
searchGroups: jest.fn(() => Promise.resolve([])) |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../api/quality-profiles', () => ({ | |||
addUser: jest.fn(() => Promise.resolve()), | |||
addGroup: jest.fn(() => Promise.resolve()) |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first */ | |||
jest.mock('lodash', () => { | |||
const lodash = require.requireActual('lodash'); | |||
lodash.debounce = (fn: Function) => (...args: any[]) => fn(...args); |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../api/quality-profiles', () => ({ | |||
removeGroup: jest.fn(() => Promise.resolve()) | |||
})); |
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first, import/order */ | |||
jest.mock('../../../../api/quality-profiles', () => ({ | |||
removeUser: jest.fn(() => Promise.resolve()) | |||
})); |
@@ -41,12 +41,16 @@ interface State { | |||
export default class App extends React.PureComponent<Props, State> { | |||
mounted: boolean; | |||
state: State = { loading: true }; | |||
static contextTypes = { | |||
router: PropTypes.object | |||
}; | |||
constructor(props: Props) { | |||
super(props); | |||
this.state = { loading: true }; | |||
} | |||
componentDidMount() { | |||
this.mounted = true; | |||
this.fetchSysInfo(); |
@@ -94,7 +94,7 @@ export function getSearchNodes(sysInfoData: ClusterSysInfo): NodeInfo[] { | |||
export function isCluster(sysInfoData?: SysInfo): boolean { | |||
return ( | |||
sysInfoData != undefined && sysInfoData['System'] && sysInfoData['System'][HA_FIELD] === true | |||
sysInfoData !== undefined && sysInfoData['System'] && sysInfoData['System'][HA_FIELD] === true | |||
); | |||
} | |||
@@ -165,8 +165,8 @@ export function getStandaloneSecondarySections(sysInfoData: SysInfo): SysInfoSec | |||
} | |||
export function groupSections(sysInfoData: SysValueObject) { | |||
let mainSection: SysValueObject = {}; | |||
let sections: SysInfoSection = {}; | |||
const mainSection: SysValueObject = {}; | |||
const sections: SysInfoSection = {}; | |||
each(sysInfoData, (item, key) => { | |||
if (typeof item !== 'object' || item instanceof Array) { | |||
mainSection[key] = item; |
@@ -44,17 +44,21 @@ interface State { | |||
export default class WebApiApp extends React.PureComponent<Props, State> { | |||
mounted: boolean; | |||
state: State = { | |||
domains: [], | |||
searchQuery: '', | |||
showDeprecated: false, | |||
showInternal: false | |||
}; | |||
static contextTypes = { | |||
router: PropTypes.object.isRequired | |||
}; | |||
constructor(props: Props) { | |||
super(props); | |||
this.state = { | |||
domains: [], | |||
searchQuery: '', | |||
showDeprecated: false, | |||
showInternal: false | |||
}; | |||
} | |||
componentDidMount() { | |||
this.mounted = true; | |||
this.fetchList(); |
@@ -77,7 +77,7 @@ it('should not render internal actions', () => { | |||
it('should render only actions matching the query', () => { | |||
const actions = [ACTION, { ...ACTION, key: 'bar', description: 'Bar desc' }]; | |||
const domain = { ...DOMAIN, actions: actions }; | |||
const domain = { ...DOMAIN, actions }; | |||
expect( | |||
shallow(<Domain {...DEFAULT_PROPS} domain={domain} searchQuery="Foo" />) | |||
).toMatchSnapshot(); | |||
@@ -89,7 +89,7 @@ it('should also render actions with a description matching the query', () => { | |||
{ ...ACTION, key: 'bar', description: 'Bar desc' }, | |||
{ ...ACTION, key: 'baz', description: 'foobar' } | |||
]; | |||
const domain = { ...DOMAIN, actions: actions }; | |||
const domain = { ...DOMAIN, actions }; | |||
expect( | |||
shallow(<Domain {...DEFAULT_PROPS} domain={domain} searchQuery="Foo" />) | |||
).toMatchSnapshot(); |
@@ -48,6 +48,10 @@ export const BarChart = createReactClass({ | |||
}; | |||
}, | |||
getInitialState() { | |||
return { width: this.props.width, height: this.props.height }; | |||
}, | |||
componentDidUpdate(prevProps) { | |||
if (this.props.width && prevProps.width !== this.props.width) { | |||
this.setState({ width: this.props.width }); | |||
@@ -57,10 +61,6 @@ export const BarChart = createReactClass({ | |||
} | |||
}, | |||
getInitialState() { | |||
return { width: this.props.width, height: this.props.height }; | |||
}, | |||
handleClick(point) { | |||
this.props.onBarClick(point); | |||
}, |
@@ -47,7 +47,7 @@ export default class SelectListItem extends React.PureComponent { | |||
renderLink() { | |||
let children = this.props.item; | |||
if (this.props.hasOwnProperty('children')) { | |||
if (this.props.children) { | |||
children = this.props.children; | |||
} | |||
return ( |
@@ -105,7 +105,7 @@ export default class DateInput extends React.PureComponent<Props> { | |||
<path d="M5.5 6h2v2h-2V6zm3 0h2v2h-2V6zm3 0h2v2h-2V6zm-9 6h2v2h-2v-2zm3 0h2v2h-2v-2zm3 0h2v2h-2v-2zm-3-3h2v2h-2V9zm3 0h2v2h-2V9zm3 0h2v2h-2V9zm-9 0h2v2h-2V9zm11-9v1h-2V0h-7v1h-2V0h-2v16h15V0h-2zm1 15h-13V4h13v11z" /> | |||
</svg> | |||
</span> | |||
{this.props.value != undefined && ( | |||
{this.props.value !== undefined && ( | |||
<a className="date-input-control-reset" href="#" onClick={this.handleResetClick}> | |||
<CloseIcon className="" /> | |||
</a> |
@@ -33,10 +33,8 @@ export const longFormatterOption = { year: 'numeric', month: 'long', day: 'numer | |||
export default function DateFormatter({ children, date, long }: Props) { | |||
return ( | |||
<FormattedDate | |||
children={children} | |||
value={parseDate(date)} | |||
{...(long ? longFormatterOption : formatterOption)} | |||
/> | |||
<FormattedDate value={parseDate(date)} {...(long ? longFormatterOption : formatterOption)}> | |||
{children} | |||
</FormattedDate> | |||
); | |||
} |
@@ -27,5 +27,5 @@ interface Props { | |||
} | |||
export default function DateFromNow({ children, date }: Props) { | |||
return <FormattedRelative children={children} value={parseDate(date)} />; | |||
return <FormattedRelative value={parseDate(date)}>{children}</FormattedRelative>; | |||
} |
@@ -35,5 +35,9 @@ export const formatterOption = { | |||
}; | |||
export default function DateTimeFormatter({ children, date }: Props) { | |||
return <FormattedDate children={children} value={parseDate(date)} {...formatterOption} />; | |||
return ( | |||
<FormattedDate value={parseDate(date)} {...formatterOption}> | |||
{children} | |||
</FormattedDate> | |||
); | |||
} |
@@ -33,10 +33,8 @@ export const longFormatterOption = { hour: 'numeric', minute: 'numeric', second: | |||
export default function TimeFormatter({ children, date, long }: Props) { | |||
return ( | |||
<FormattedTime | |||
children={children} | |||
value={parseDate(date)} | |||
{...(long ? longFormatterOption : formatterOption)} | |||
/> | |||
<FormattedTime value={parseDate(date)} {...(long ? longFormatterOption : formatterOption)}> | |||
{children} | |||
</FormattedTime> | |||
); | |||
} |
@@ -31,14 +31,14 @@ interface Props { | |||
} | |||
export default function Measure({ className, decimals, measure }: Props) { | |||
if (measure == undefined) { | |||
if (measure === undefined) { | |||
return <span>{'–'}</span>; | |||
} | |||
const metric = measure.metric; | |||
const value = isDiffMetric(metric.key) ? measure.leak : measure.value; | |||
if (value == undefined) { | |||
if (value === undefined) { | |||
return <span>{'–'}</span>; | |||
} | |||
@@ -17,6 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
/* eslint-disable import/first */ | |||
jest.mock('../../../helpers/measures', () => { | |||
const measures = require.requireActual('../../../helpers/measures'); | |||
measures.getRatingTooltip = jest.fn(() => 'tooltip'); |
@@ -30,7 +30,7 @@ interface Props { | |||
} | |||
export default function Rating({ className, muted = false, small = false, value }: Props) { | |||
if (value == undefined) { | |||
if (value === undefined) { | |||
return <span>{'–'}</span>; | |||
} | |||
const formatted = formatMeasure(value, 'RATING'); |
@@ -81,7 +81,7 @@ function injectRelational( | |||
) { | |||
const newFields: { [x: string]: any } = {}; | |||
const baseValue = issue[baseField]; | |||
if (baseValue != undefined && source != undefined) { | |||
if (baseValue !== undefined && source !== undefined) { | |||
const lookupValue = source.find(candidate => candidate[lookupField] === baseValue); | |||
if (lookupValue != null) { | |||
Object.keys(lookupValue).forEach(key => { |
@@ -42,6 +42,7 @@ export function translate(...keys: string[]): string { | |||
const messageKey = keys.join('.'); | |||
if (process.env.NODE_ENV === 'development') { | |||
if (!messages[messageKey]) { | |||
// eslint-disable-next-line | |||
console.error(`No message for: ${messageKey}`); | |||
} | |||
} | |||
@@ -59,6 +60,7 @@ export function translateWithParameters( | |||
.reduce((acc, parameter, index) => acc.replace(`{${index}}`, parameter), message); | |||
} else { | |||
if (process.env.NODE_ENV === 'development') { | |||
// eslint-disable-next-line | |||
console.error(`No message for: ${messageKey}`); | |||
} | |||
return `${messageKey}.${parameters.join('.')}`; |
@@ -101,7 +101,7 @@ function useFormatter( | |||
formatter: Formatter, | |||
options?: any | |||
): string { | |||
return value != undefined && value !== '' ? formatter(value, options) : ''; | |||
return value !== undefined && value !== '' ? formatter(value, options) : ''; | |||
} | |||
function getFormatter(type: string): Formatter { | |||
@@ -313,7 +313,7 @@ function formatDurationShort( | |||
function durationFormatter(value: string | number): string { | |||
if (typeof value === 'string') { | |||
value = parseInt(value); | |||
value = parseInt(value, 10); | |||
} | |||
if (value === 0) { | |||
return '0'; | |||
@@ -330,7 +330,7 @@ function durationFormatter(value: string | number): string { | |||
function shortDurationFormatter(value: string | number): string { | |||
if (typeof value === 'string') { | |||
value = parseInt(value); | |||
value = parseInt(value, 10); | |||
} | |||
if (value === 0) { | |||
return '0'; |
@@ -8,9 +8,7 @@ | |||
"strict": true, | |||
"target": "es5", | |||
"jsx": "react", | |||
// remove "es2015.promise", "es2015.iterable" when upgrading to TypeScript 2.5 | |||
// see https://github.com/Microsoft/TypeScript/issues/16017 | |||
"lib": ["es2015.promise", "es2015.iterable", "es2017", "dom"], | |||
"lib": ["es2017", "dom"], | |||
"module": "esnext", | |||
"moduleResolution": "node", | |||
"typeRoots": ["./src/main/js/typings", "./node_modules/@types"] |
@@ -182,10 +182,14 @@ address@1.0.2, address@^1.0.1: | |||
version "1.0.2" | |||
resolved "https://registry.yarnpkg.com/address/-/address-1.0.2.tgz#480081e82b587ba319459fef512f516fe03d58af" | |||
ajv-keywords@^1.0.0, ajv-keywords@^1.1.1: | |||
ajv-keywords@^1.1.1: | |||
version "1.5.1" | |||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" | |||
ajv-keywords@^2.1.0: | |||
version "2.1.0" | |||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0" | |||
ajv@^4.7.0, ajv@^4.9.1: | |||
version "4.11.8" | |||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" | |||
@@ -202,6 +206,15 @@ ajv@^5.0.0: | |||
json-schema-traverse "^0.3.0" | |||
json-stable-stringify "^1.0.1" | |||
ajv@^5.2.0, ajv@^5.2.3: | |||
version "5.2.3" | |||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2" | |||
dependencies: | |||
co "^4.6.0" | |||
fast-deep-equal "^1.0.0" | |||
json-schema-traverse "^0.3.0" | |||
json-stable-stringify "^1.0.1" | |||
align-text@^0.1.1, align-text@^0.1.3: | |||
version "0.1.4" | |||
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" | |||
@@ -238,6 +251,10 @@ ansi-escapes@^2.0.0: | |||
version "2.0.0" | |||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" | |||
ansi-escapes@^3.0.0: | |||
version "3.0.0" | |||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" | |||
ansi-html@0.0.7: | |||
version "0.0.7" | |||
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" | |||
@@ -290,6 +307,12 @@ argparse@^1.0.7: | |||
dependencies: | |||
sprintf-js "~1.0.2" | |||
aria-query@^0.7.0: | |||
version "0.7.0" | |||
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.0.tgz#4af10a1e61573ddea0cf3b99b51c52c05b424d24" | |||
dependencies: | |||
ast-types-flow "0.0.7" | |||
arr-diff@^2.0.0: | |||
version "2.0.0" | |||
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" | |||
@@ -320,6 +343,13 @@ array-flatten@1.1.1: | |||
version "1.1.1" | |||
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" | |||
array-includes@^3.0.3: | |||
version "3.0.3" | |||
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" | |||
dependencies: | |||
define-properties "^1.1.2" | |||
es-abstract "^1.7.0" | |||
array-map@~0.0.0: | |||
version "0.0.0" | |||
resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" | |||
@@ -346,13 +376,6 @@ array-unique@^0.3.2: | |||
version "0.3.2" | |||
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" | |||
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" | |||
@@ -387,6 +410,10 @@ assert@^1.1.1: | |||
dependencies: | |||
util "0.10.3" | |||
ast-types-flow@0.0.7: | |||
version "0.0.7" | |||
resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" | |||
async-each@^1.0.0: | |||
version "1.0.1" | |||
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" | |||
@@ -456,7 +483,13 @@ aws4@^1.2.1: | |||
version "1.6.0" | |||
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" | |||
babel-code-frame@6.22.0, babel-code-frame@^6.11.0, babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: | |||
axobject-query@^0.1.0: | |||
version "0.1.0" | |||
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0" | |||
dependencies: | |||
ast-types-flow "0.0.7" | |||
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: | |||
@@ -488,15 +521,6 @@ babel-core@^6.0.0, babel-core@^6.22.1, babel-core@^6.24.1: | |||
slash "^1.0.0" | |||
source-map "^0.5.0" | |||
babel-eslint@7.2.3: | |||
version "7.2.3" | |||
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" | |||
dependencies: | |||
babel-code-frame "^6.22.0" | |||
babel-traverse "^6.23.1" | |||
babel-types "^6.23.0" | |||
babylon "^6.17.0" | |||
babel-generator@^6.18.0, babel-generator@^6.25.0: | |||
version "6.25.0" | |||
resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.25.0.tgz#33a1af70d5f2890aeb465a4a7793c1df6a9ea9fc" | |||
@@ -1055,7 +1079,7 @@ babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.25.0: | |||
babylon "^6.17.2" | |||
lodash "^4.2.0" | |||
babel-traverse@^6.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.25.0: | |||
babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.25.0: | |||
version "6.25.0" | |||
resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.25.0.tgz#2257497e2fcd19b89edc13c4c91381f9512496f1" | |||
dependencies: | |||
@@ -1069,7 +1093,7 @@ babel-traverse@^6.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-tr | |||
invariant "^2.2.0" | |||
lodash "^4.2.0" | |||
babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.25.0: | |||
babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.25.0: | |||
version "6.25.0" | |||
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.25.0.tgz#70afb248d5660e5d18f811d91c8303b54134a18e" | |||
dependencies: | |||
@@ -1078,7 +1102,7 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24 | |||
lodash "^4.2.0" | |||
to-fast-properties "^1.0.1" | |||
babylon@^6.17.0, babylon@^6.17.2, babylon@^6.17.4: | |||
babylon@^6.17.2, babylon@^6.17.4: | |||
version "6.17.4" | |||
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a" | |||
@@ -1401,7 +1425,7 @@ center-align@^0.1.1: | |||
align-text "^0.1.3" | |||
lazy-cache "^1.0.3" | |||
chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: | |||
chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.3: | |||
version "1.1.3" | |||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" | |||
dependencies: | |||
@@ -1500,12 +1524,6 @@ clean-css@4.1.x: | |||
dependencies: | |||
source-map "0.5.x" | |||
cli-cursor@^1.0.1: | |||
version "1.0.2" | |||
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" | |||
dependencies: | |||
restore-cursor "^1.0.1" | |||
cli-cursor@^2.1.0: | |||
version "2.1.0" | |||
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" | |||
@@ -1656,7 +1674,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.4.6: | |||
concat-stream@^1.6.0: | |||
version "1.6.0" | |||
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" | |||
dependencies: | |||
@@ -1780,7 +1798,7 @@ cross-spawn@4.0.2: | |||
lru-cache "^4.0.1" | |||
which "^1.2.9" | |||
cross-spawn@5.1.0, cross-spawn@^5.0.1: | |||
cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0: | |||
version "5.1.0" | |||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" | |||
dependencies: | |||
@@ -1983,12 +2001,6 @@ d3-time@1: | |||
version "1.0.7" | |||
resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.7.tgz#94caf6edbb7879bb809d0d1f7572bc48482f7270" | |||
d@1: | |||
version "1.0.0" | |||
resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" | |||
dependencies: | |||
es5-ext "^0.10.9" | |||
damerau-levenshtein@^1.0.0: | |||
version "1.0.4" | |||
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" | |||
@@ -2013,6 +2025,12 @@ debug@2.6.8, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6. | |||
dependencies: | |||
ms "2.0.0" | |||
debug@^3.0.1: | |||
version "3.1.0" | |||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" | |||
dependencies: | |||
ms "2.0.0" | |||
decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: | |||
version "1.2.0" | |||
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" | |||
@@ -2126,13 +2144,20 @@ diffie-hellman@^5.0.0: | |||
miller-rabin "^4.0.0" | |||
randombytes "^2.0.0" | |||
doctrine@1.5.0, doctrine@^1.2.2: | |||
doctrine@1.5.0: | |||
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" | |||
dependencies: | |||
esutils "^2.0.2" | |||
isarray "^1.0.0" | |||
dom-align@1.x: | |||
version "1.6.3" | |||
resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.6.3.tgz#3017bcc87f02547b1f15b458649a8d94a71f5903" | |||
@@ -2232,6 +2257,10 @@ elliptic@^6.0.0: | |||
minimalistic-assert "^1.0.0" | |||
minimalistic-crypto-utils "^1.0.0" | |||
emoji-regex@^6.1.0: | |||
version "6.5.1" | |||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" | |||
emojis-list@^2.0.0: | |||
version "2.1.0" | |||
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" | |||
@@ -2325,58 +2354,6 @@ es-to-primitive@^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.27" | |||
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.27.tgz#bf926b058c62b1cb5de1a887930673b6aa6d9a66" | |||
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, escape-html@~1.0.3: | |||
version "1.0.3" | |||
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" | |||
@@ -2396,15 +2373,6 @@ 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" | |||
dependencies: | |||
es6-map "^0.1.3" | |||
es6-weak-map "^2.0.1" | |||
esrecurse "^4.1.0" | |||
estraverse "^4.1.1" | |||
eslint-import-resolver-node@^0.3.1: | |||
version "0.3.1" | |||
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc" | |||
@@ -2429,15 +2397,9 @@ eslint-module-utils@^2.1.1: | |||
debug "^2.6.8" | |||
pkg-dir "^1.0.0" | |||
eslint-plugin-flowtype@^2.29.1: | |||
version "2.35.0" | |||
resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.35.0.tgz#d17494f0ae8b727c632d8b9d4b4a848e7e0c04af" | |||
dependencies: | |||
lodash "^4.15.0" | |||
eslint-plugin-import@2.7.0: | |||
version "2.7.0" | |||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz#21de33380b9efb55f5ef6d2e210ec0e07e7fa69f" | |||
eslint-plugin-import@2.8.0: | |||
version "2.8.0" | |||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894" | |||
dependencies: | |||
builtin-modules "^1.1.1" | |||
contains-path "^0.1.0" | |||
@@ -2450,66 +2412,83 @@ eslint-plugin-import@2.7.0: | |||
minimatch "^3.0.3" | |||
read-pkg-up "^2.0.0" | |||
eslint-plugin-jsx-a11y@^3.0.2: | |||
version "3.0.2" | |||
resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-3.0.2.tgz#9f0eabcafde3d2a2600d96a66adb90d099e841fe" | |||
eslint-plugin-jsx-a11y@6.0.2: | |||
version "6.0.2" | |||
resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.2.tgz#659277a758b036c305a7e4a13057c301cd3be73f" | |||
dependencies: | |||
aria-query "^0.7.0" | |||
array-includes "^3.0.3" | |||
ast-types-flow "0.0.7" | |||
axobject-query "^0.1.0" | |||
damerau-levenshtein "^1.0.0" | |||
jsx-ast-utils "^1.0.0" | |||
object-assign "^4.0.1" | |||
emoji-regex "^6.1.0" | |||
jsx-ast-utils "^1.4.0" | |||
eslint-plugin-promise@3.6.0: | |||
version "3.6.0" | |||
resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz#54b7658c8f454813dc2a870aff8152ec4969ba75" | |||
eslint-plugin-react@^6.8.0: | |||
version "6.10.3" | |||
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78" | |||
eslint-plugin-react@7.4.0: | |||
version "7.4.0" | |||
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.4.0.tgz#300a95861b9729c087d362dd64abcc351a74364a" | |||
dependencies: | |||
array.prototype.find "^2.0.1" | |||
doctrine "^1.2.2" | |||
doctrine "^2.0.0" | |||
has "^1.0.1" | |||
jsx-ast-utils "^1.3.4" | |||
object.assign "^4.0.4" | |||
jsx-ast-utils "^2.0.0" | |||
prop-types "^15.5.10" | |||
eslint@3.14.1: | |||
version "3.14.1" | |||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.14.1.tgz#8a62175f2255109494747a1b25128d97b8eb3d97" | |||
eslint-scope@^3.7.1: | |||
version "3.7.1" | |||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" | |||
dependencies: | |||
babel-code-frame "^6.16.0" | |||
chalk "^1.1.3" | |||
concat-stream "^1.4.6" | |||
debug "^2.1.1" | |||
doctrine "^1.2.2" | |||
escope "^3.6.0" | |||
espree "^3.3.1" | |||
esrecurse "^4.1.0" | |||
estraverse "^4.1.1" | |||
eslint@4.9.0: | |||
version "4.9.0" | |||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.9.0.tgz#76879d274068261b191fe0f2f56c74c2f4208e8b" | |||
dependencies: | |||
ajv "^5.2.0" | |||
babel-code-frame "^6.22.0" | |||
chalk "^2.1.0" | |||
concat-stream "^1.6.0" | |||
cross-spawn "^5.1.0" | |||
debug "^3.0.1" | |||
doctrine "^2.0.0" | |||
eslint-scope "^3.7.1" | |||
espree "^3.5.1" | |||
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" | |||
functional-red-black-tree "^1.0.1" | |||
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-resolvable "^1.0.0" | |||
js-yaml "^3.5.1" | |||
json-stable-stringify "^1.0.0" | |||
js-yaml "^3.9.1" | |||
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 "^7.0.0" | |||
progress "^2.0.0" | |||
require-uncached "^1.0.3" | |||
semver "^5.3.0" | |||
strip-ansi "^4.0.0" | |||
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.3.1: | |||
version "3.5.0" | |||
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.0.tgz#98358625bdd055861ea27e2867ea729faf463d8d" | |||
espree@^3.5.1: | |||
version "3.5.1" | |||
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.1.tgz#0c988b8ab46db53100a1954ae4ba995ddd27d87e" | |||
dependencies: | |||
acorn "^5.1.1" | |||
acorn-jsx "^3.0.0" | |||
@@ -2522,6 +2501,12 @@ esprima@^4.0.0: | |||
version "4.0.0" | |||
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" | |||
esquery@^1.0.0: | |||
version "1.0.0" | |||
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" | |||
dependencies: | |||
estraverse "^4.0.0" | |||
esrecurse@^4.1.0: | |||
version "4.2.0" | |||
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" | |||
@@ -2533,7 +2518,7 @@ estraverse@^1.9.1: | |||
version "1.9.3" | |||
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" | |||
estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: | |||
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: | |||
version "4.2.0" | |||
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" | |||
@@ -2545,13 +2530,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" | |||
@@ -2598,10 +2576,6 @@ exenv@^1.2.1: | |||
version "1.2.2" | |||
resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" | |||
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" | |||
@@ -2767,13 +2741,6 @@ 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" | |||
dependencies: | |||
escape-string-regexp "^1.0.5" | |||
object-assign "^4.1.0" | |||
figures@^2.0.0: | |||
version "2.0.0" | |||
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" | |||
@@ -2973,6 +2940,10 @@ function.prototype.name@^1.0.0: | |||
function-bind "^1.1.0" | |||
is-callable "^1.1.3" | |||
functional-red-black-tree@^1.0.1: | |||
version "1.0.1" | |||
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" | |||
gauge@~2.7.3: | |||
version "2.7.4" | |||
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" | |||
@@ -2986,16 +2957,6 @@ gauge@~2.7.3: | |||
strip-ansi "^3.0.1" | |||
wide-align "^1.1.0" | |||
generate-function@^2.0.0: | |||
version "2.0.0" | |||
resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" | |||
generate-object-property@^1.1.0: | |||
version "1.2.0" | |||
resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" | |||
dependencies: | |||
is-property "^1.0.0" | |||
get-caller-file@^1.0.1: | |||
version "1.0.2" | |||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" | |||
@@ -3027,7 +2988,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.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: | |||
version "7.1.2" | |||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" | |||
dependencies: | |||
@@ -3056,7 +3017,7 @@ global-prefix@^1.0.1: | |||
is-windows "^1.0.1" | |||
which "^1.2.14" | |||
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" | |||
@@ -3367,9 +3328,9 @@ ieee754@^1.1.4: | |||
version "1.1.8" | |||
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" | |||
ignore@^3.2.0: | |||
version "3.3.3" | |||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" | |||
ignore@^3.3.3: | |||
version "3.3.5" | |||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6" | |||
image-size@~0.5.0: | |||
version "0.5.5" | |||
@@ -3443,22 +3404,23 @@ inquirer@3.2.1: | |||
strip-ansi "^4.0.0" | |||
through "^2.3.6" | |||
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.3.0" | |||
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" | |||
dependencies: | |||
ansi-escapes "^1.1.0" | |||
ansi-regex "^2.0.0" | |||
chalk "^1.0.0" | |||
cli-cursor "^1.0.1" | |||
ansi-escapes "^3.0.0" | |||
chalk "^2.0.0" | |||
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" | |||
strip-ansi "^3.0.0" | |||
mute-stream "0.0.7" | |||
run-async "^2.2.0" | |||
rx-lite "^4.0.8" | |||
rx-lite-aggregates "^4.0.8" | |||
string-width "^2.1.0" | |||
strip-ansi "^4.0.0" | |||
through "^2.3.6" | |||
interpret@^1.0.0: | |||
@@ -3631,15 +3593,6 @@ is-glob@^3.1.0: | |||
dependencies: | |||
is-extglob "^2.1.0" | |||
is-my-json-valid@^2.10.0: | |||
version "2.16.0" | |||
resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" | |||
dependencies: | |||
generate-function "^2.0.0" | |||
generate-object-property "^1.1.0" | |||
jsonpointer "^4.0.0" | |||
xtend "^4.0.0" | |||
is-number@^2.1.0: | |||
version "2.1.0" | |||
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" | |||
@@ -3696,10 +3649,6 @@ 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.4: | |||
version "1.0.4" | |||
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" | |||
@@ -4069,13 +4018,20 @@ 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.4.3, js-yaml@^3.5.1, js-yaml@^3.7.0: | |||
js-yaml@^3.4.3, js-yaml@^3.7.0: | |||
version "3.9.1" | |||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0" | |||
dependencies: | |||
argparse "^1.0.7" | |||
esprima "^4.0.0" | |||
js-yaml@^3.9.1: | |||
version "3.10.0" | |||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" | |||
dependencies: | |||
argparse "^1.0.7" | |||
esprima "^4.0.0" | |||
js-yaml@~3.7.0: | |||
version "3.7.0" | |||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" | |||
@@ -4135,7 +4091,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: | |||
@@ -4169,10 +4125,6 @@ jsonify@~0.0.0: | |||
version "0.0.0" | |||
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" | |||
jsonpointer@^4.0.0: | |||
version "4.0.1" | |||
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" | |||
jsprim@^1.2.2: | |||
version "1.4.1" | |||
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" | |||
@@ -4182,10 +4134,16 @@ jsprim@^1.2.2: | |||
json-schema "0.2.3" | |||
verror "1.10.0" | |||
jsx-ast-utils@^1.0.0, jsx-ast-utils@^1.3.4: | |||
jsx-ast-utils@^1.4.0: | |||
version "1.4.1" | |||
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" | |||
jsx-ast-utils@^2.0.0: | |||
version "2.0.1" | |||
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" | |||
dependencies: | |||
array-includes "^3.0.3" | |||
keymaster@1.6.2: | |||
version "1.6.2" | |||
resolved "https://registry.yarnpkg.com/keymaster/-/keymaster-1.6.2.tgz#e1ae54d0ea9488f9f60b66b668f02e9a1946c6eb" | |||
@@ -4421,11 +4379,15 @@ lodash.some@^4.4.0: | |||
version "4.6.0" | |||
resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" | |||
lodash.unescape@4.0.1: | |||
version "4.0.1" | |||
resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" | |||
lodash.uniq@^4.5.0: | |||
version "4.5.0" | |||
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" | |||
lodash@4.17.4, lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: | |||
lodash@4.17.4, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: | |||
version "4.17.4" | |||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" | |||
@@ -4618,10 +4580,6 @@ 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" | |||
@@ -4898,10 +4856,6 @@ 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" | |||
@@ -5081,7 +5035,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" | |||
@@ -5151,9 +5105,9 @@ pkg-dir@^2.0.0: | |||
dependencies: | |||
find-up "^2.1.0" | |||
pluralize@^1.2.1: | |||
version "1.2.1" | |||
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" | |||
pluralize@^7.0.0: | |||
version "7.0.0" | |||
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" | |||
portfinder@^1.0.9: | |||
version "1.0.13" | |||
@@ -5487,9 +5441,9 @@ process@^0.11.0: | |||
version "0.11.10" | |||
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" | |||
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" | |||
@@ -5877,20 +5831,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" | |||
recursive-readdir@2.2.1: | |||
version "2.2.1" | |||
resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99" | |||
@@ -6066,7 +6006,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: | |||
@@ -6096,19 +6036,12 @@ 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.3.2: | |||
resolve@^1.2.0, resolve@^1.3.2: | |||
version "1.4.0" | |||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" | |||
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" | |||
dependencies: | |||
exit-hook "^1.0.0" | |||
onetime "^1.0.0" | |||
restore-cursor@^2.0.0: | |||
version "2.0.0" | |||
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" | |||
@@ -6141,12 +6074,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: | |||
hash-base "^2.0.0" | |||
inherits "^2.0.1" | |||
run-async@^0.1.0: | |||
version "0.1.0" | |||
resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" | |||
dependencies: | |||
once "^1.3.0" | |||
run-async@^2.2.0: | |||
version "2.3.0" | |||
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" | |||
@@ -6163,10 +6090,6 @@ 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" | |||
rx-lite@^3.1.2: | |||
version "3.1.2" | |||
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" | |||
rx@^4.1.0: | |||
version "4.1.0" | |||
resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" | |||
@@ -6209,7 +6132,7 @@ select@^1.0.6: | |||
version "1.1.2" | |||
resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" | |||
"semver@2 || 3 || 4 || 5", semver@^5.3.0: | |||
"semver@2 || 3 || 4 || 5", semver@5.4.1, semver@^5.3.0: | |||
version "5.4.1" | |||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" | |||
@@ -6322,14 +6245,6 @@ shell-quote@1.6.1: | |||
array-reduce "~0.0.0" | |||
jsonify "~0.0.0" | |||
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" | |||
@@ -6342,9 +6257,11 @@ slash@^1.0.0: | |||
version "1.0.0" | |||
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" | |||
slice-ansi@0.0.4: | |||
version "0.0.4" | |||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" | |||
slice-ansi@1.0.0: | |||
version "1.0.0" | |||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" | |||
dependencies: | |||
is-fullwidth-code-point "^2.0.0" | |||
snapdragon-node@^2.0.1: | |||
version "2.1.1" | |||
@@ -6574,7 +6491,7 @@ string-width@^1.0.1, string-width@^1.0.2: | |||
is-fullwidth-code-point "^1.0.0" | |||
strip-ansi "^3.0.0" | |||
string-width@^2.0.0, string-width@^2.1.0: | |||
string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: | |||
version "2.1.1" | |||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" | |||
dependencies: | |||
@@ -6668,16 +6585,16 @@ 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.2" | |||
resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" | |||
dependencies: | |||
ajv "^4.7.0" | |||
ajv-keywords "^1.0.0" | |||
chalk "^1.1.1" | |||
lodash "^4.0.0" | |||
slice-ansi "0.0.4" | |||
string-width "^2.0.0" | |||
ajv "^5.2.3" | |||
ajv-keywords "^2.1.0" | |||
chalk "^2.1.0" | |||
lodash "^4.17.4" | |||
slice-ansi "1.0.0" | |||
string-width "^2.1.1" | |||
tapable@^0.2.5, tapable@^0.2.7, tapable@~0.2.5: | |||
version "0.2.8" | |||
@@ -6855,9 +6772,16 @@ typedarray@^0.0.6: | |||
version "0.0.6" | |||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" | |||
typescript@2.4.2: | |||
version "2.4.2" | |||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.4.2.tgz#f8395f85d459276067c988aa41837a8f82870844" | |||
typescript-eslint-parser@8.0.0: | |||
version "8.0.0" | |||
resolved "https://registry.yarnpkg.com/typescript-eslint-parser/-/typescript-eslint-parser-8.0.0.tgz#81f70bbffca1139c1dc5a1301208a7fd8213f8b2" | |||
dependencies: | |||
lodash.unescape "4.0.1" | |||
semver "5.4.1" | |||
typescript@2.5.3: | |||
version "2.5.3" | |||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.3.tgz#df3dcdc38f3beb800d4bc322646b04a3f6ca7f0d" | |||
ua-parser-js@^0.7.9: | |||
version "0.7.14" | |||
@@ -6978,12 +6902,6 @@ use@^2.0.0: | |||
isobject "^3.0.0" | |||
lazy-cache "^2.0.2" | |||
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" |