From e4429b714332305fb31d0b5a8505c0b56e40da66 Mon Sep 17 00:00:00 2001 From: Adrien Denat Date: Fri, 21 Jun 2019 12:43:05 -0300 Subject: [PATCH 1/5] Add support for es module build (#1374) --- package.json | 4 ++-- rollup.config.js | 51 ++++++++++++++++++++++++++++-------------------- 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index c2c467d..d9c125a 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ "datagrid" ], "main": "dist/index.js", - "_module": "dist/index.es.js", - "_jsnext:main": "dist/index.es.js", + "module": "dist/index.es.js", + "jsnext:main": "dist/index.es.js", "scripts": { "test": "cross-env CI=1 react-scripts test --env=jsdom", "test:watch": "react-scripts test --env=jsdom", diff --git a/rollup.config.js b/rollup.config.js index c215136..3898807 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -6,27 +6,36 @@ import { uglify } from 'rollup-plugin-uglify' import pkg from './package.json' -export default { - input: 'src/index.js', - output: [ - { +export default [ + { + input: 'src/index.js', + output: { file: pkg.main, format: 'cjs', sourcemap: true - } - // { - // file: pkg.module, - // format: "es", - // sourcemap: true - // } - ], - plugins: [ - external(), - babel({ - exclude: 'node_modules/**' - }), - resolve(), - commonjs(), - uglify() - ] -} + }, + plugins: [ + external(), + babel({ + exclude: 'node_modules/**' + }), + resolve(), + commonjs(), + uglify() + ] + }, + { + input: 'src/index.js', + external: Object.keys(pkg.peerDependencies), + output: { + file: pkg.module, + format: 'es', + sourcemap: true + }, + plugins: [ + babel({ + exclude: ['/**/node_modules/**'] + }) + ] + } +] From addf28a011849bd77ec5d93eb4fa58070a850f60 Mon Sep 17 00:00:00 2001 From: Adrien Denat Date: Fri, 21 Jun 2019 13:00:59 -0300 Subject: [PATCH 2/5] Fix useExpanded wrongly flattening subRows (#1372) * Fix useExpanded wrongly flattening subRows * Add new paginateSubRows option defaulting to true --- src/hooks/useExpanded.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/hooks/useExpanded.js b/src/hooks/useExpanded.js index 70a8c61..7f0e81f 100755 --- a/src/hooks/useExpanded.js +++ b/src/hooks/useExpanded.js @@ -13,7 +13,8 @@ addActions({ }) const propTypes = { - expandedKey: PropTypes.string + expandedKey: PropTypes.string, + paginateSubRows: PropTypes.bool } export const useExpanded = props => { @@ -21,11 +22,11 @@ export const useExpanded = props => { const { debug, - columns, rows, expandedKey = 'expanded', hooks, - state: [{ expanded }, setState] + state: [{ expanded }, setState], + paginateSubRows = true } = props const toggleExpandedByPath = (path, set) => { @@ -62,17 +63,21 @@ export const useExpanded = props => { row.isExpanded = (row.original && row.original[expandedKey]) || getBy(expanded, path) - expandedRows.push(row) + if (paginateSubRows || (!paginateSubRows && row.depth === 0)) { + expandedRows.push(row) + } if (row.isExpanded && row.subRows && row.subRows.length) { row.subRows.forEach((row, i) => handleRow(row, i, depth + 1, path)) } + + return row } rows.forEach((row, i) => handleRow(row, i)) return expandedRows - }, [rows, expanded, columns]) + }, [debug, rows, expandedKey, expanded, paginateSubRows]) const expandedDepth = findExpandedDepth(expanded) From ead3599378ae09e8c676c11f2ed36832e6cd2f66 Mon Sep 17 00:00:00 2001 From: ggascoigne Date: Mon, 1 Jul 2019 08:36:42 -0700 Subject: [PATCH 3/5] Fix pagination resetting to page zero with manualPagination (#1369) * Fix pagination resetting to page zero with manualPagination To be honest I'm not sure what this useLayoutEffect is there to do. It has no visible effect if you don't use manualPagination, and if you do it, simply jumps you back to the first page, defeating the point of you having control of the pagination. * Conditionally reset page on data change Rather disable the whole page reset when filters, groupBy or sortBy change, just because I wanted to disable the page reset on data change, make that bit be conditional. With that in mind, usePagination now accepts a disablePageResetOnDataChange parameter. --- src/hooks/usePagination.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/hooks/usePagination.js b/src/hooks/usePagination.js index ee1904e..5e4a438 100755 --- a/src/hooks/usePagination.js +++ b/src/hooks/usePagination.js @@ -23,6 +23,7 @@ export const usePagination = props => { const { rows, manualPagination, + disablePageResetOnDataChange, debug, state: [ { @@ -37,6 +38,7 @@ export const usePagination = props => { ] } = props + const rowDep = disablePageResetOnDataChange ? null : rows useLayoutEffect(() => { setState( old => ({ @@ -45,8 +47,8 @@ export const usePagination = props => { }), actions.pageChange ) - }, [rows, filters, groupBy, sortBy]) - + }, [setState, rowDep, filters, groupBy, sortBy]) + const { pages, pageCount } = useMemo(() => { if (manualPagination) { return { From 18f2dea24747c469577b7795d68e3c19533b3eef Mon Sep 17 00:00:00 2001 From: ggascoigne Date: Mon, 1 Jul 2019 08:43:46 -0700 Subject: [PATCH 4/5] Fix lint errors from react-hooks/exhaustive-deps (#1371) They all seemed like reasonable warnings, this squashes them. --- .eslintrc | 31 +++-- package.json | 3 +- src/hooks/useColumns.js | 263 +++++++++++++++++++------------------ src/hooks/useFilters.js | 2 +- src/hooks/useGroupBy.js | 2 +- src/hooks/usePagination.js | 6 +- src/hooks/useRows.js | 2 +- 7 files changed, 159 insertions(+), 150 deletions(-) diff --git a/.eslintrc b/.eslintrc index 23d57a2..eaee486 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,14 +1,19 @@ { - "parser": "babel-eslint", - "extends": ["react-app", "prettier"], - "env": { - "es6": true - }, - "parserOptions": { - "sourceType": "module" - }, - "rules": { - "space-before-function-paren": 0, - "react/jsx-boolean-value": 0 - } -} + "parser": "babel-eslint", + "extends": ["react-app", "prettier"], + "env": { + "es6": true + }, + "parserOptions": { + "sourceType": "module" + }, + "rules": { + "space-before-function-paren": 0, + "react/jsx-boolean-value": 0 + }, + "settings": { + "react": { + "version": "latest" + } + } +} \ No newline at end of file diff --git a/package.json b/package.json index d9c125a..8455a73 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,8 @@ "start": "rollup -c -w", "prepare": "yarn build", "release": "yarn publish", - "releaseNext": "yarn publish --tag next" + "releaseNext": "yarn publish --tag next", + "lint": "eslint 'src/**/*.js'" }, "files": [ "src/", diff --git a/src/hooks/useColumns.js b/src/hooks/useColumns.js index 1a86b20..2074d71 100755 --- a/src/hooks/useColumns.js +++ b/src/hooks/useColumns.js @@ -13,6 +13,137 @@ const propTypes = { ) } +// Find the depth of the columns +function findMaxDepth(columns, depth = 0) { + return columns.reduce((prev, curr) => { + if (curr.columns) { + return Math.max(prev, findMaxDepth(curr.columns, depth + 1)) + } + return depth + }, 0) +} + +function decorateColumn(column, parent) { + // First check for string accessor + let { id, accessor, Header } = column + + if (typeof accessor === 'string') { + id = id || accessor + const accessorString = accessor + accessor = row => getBy(row, accessorString) + } + + if (!id && typeof Header === 'string') { + id = Header + } + + if (!id) { + // Accessor, but no column id? This is bad. + console.error(column) + throw new Error('A column id is required!') + } + + column = { + Header: '', + Cell: cell => cell.value, + show: true, + ...column, + id, + accessor, + parent + } + + return column +} + +// Build the visible columns, headers and flat column list +function decorateColumnTree(columns, parent, depth = 0) { + return columns.map(column => { + column = decorateColumn(column, parent) + if (column.columns) { + column.columns = decorateColumnTree(column.columns, column, depth + 1) + } + return column + }) +} + +// Build the header groups from the bottom up +function makeHeaderGroups(columns, maxDepth) { + const headerGroups = [] + + const removeChildColumns = column => { + delete column.columns + if (column.parent) { + removeChildColumns(column.parent) + } + } + columns.forEach(removeChildColumns) + + const buildGroup = (columns, depth = 0) => { + const headerGroup = { + headers: [] + } + + const parentColumns = [] + + const hasParents = columns.some(col => col.parent) + + columns.forEach(column => { + const isFirst = !parentColumns.length + let latestParentColumn = [...parentColumns].reverse()[0] + + // If the column has a parent, add it if necessary + if (column.parent) { + if (isFirst || latestParentColumn.originalID !== column.parent.id) { + parentColumns.push({ + ...column.parent, + originalID: column.parent.id, + id: [column.parent.id, parentColumns.length].join('_') + }) + } + } else if (hasParents) { + // If other columns have parents, add a place holder if necessary + const placeholderColumn = decorateColumn({ + originalID: [column.id, 'placeholder', maxDepth - depth].join('_'), + id: [ + column.id, + 'placeholder', + maxDepth - depth, + parentColumns.length + ].join('_') + }) + if ( + isFirst || + latestParentColumn.originalID !== placeholderColumn.originalID + ) { + parentColumns.push(placeholderColumn) + } + } + + // Establish the new columns[] relationship on the parent + if (column.parent || hasParents) { + latestParentColumn = [...parentColumns].reverse()[0] + latestParentColumn.columns = latestParentColumn.columns || [] + if (!latestParentColumn.columns.includes(column)) { + latestParentColumn.columns.push(column) + } + } + + headerGroup.headers.push(column) + }) + + headerGroups.push(headerGroup) + + if (parentColumns.length) { + buildGroup(parentColumns) + } + } + + buildGroup(columns) + + return headerGroups.reverse() +} + export const useColumns = props => { const { debug, @@ -45,7 +176,7 @@ export const useColumns = props => { headerGroups, headers } - }, [groupBy, userColumns]) + }, [debug, groupBy, userColumns]) return { ...props, @@ -54,60 +185,6 @@ export const useColumns = props => { headers } - // Find the depth of the columns - function findMaxDepth(columns, depth = 0) { - return columns.reduce((prev, curr) => { - if (curr.columns) { - return Math.max(prev, findMaxDepth(curr.columns, depth + 1)) - } - return depth - }, 0) - } - - function decorateColumn(column, parent) { - // First check for string accessor - let { id, accessor, Header } = column - - if (typeof accessor === 'string') { - id = id || accessor - const accessorString = accessor - accessor = row => getBy(row, accessorString) - } - - if (!id && typeof Header === 'string') { - id = Header - } - - if (!id) { - // Accessor, but no column id? This is bad. - console.error(column) - throw new Error('A column id is required!') - } - - column = { - Header: '', - Cell: cell => cell.value, - show: true, - ...column, - id, - accessor, - parent - } - - return column - } - - // Build the visible columns, headers and flat column list - function decorateColumnTree(columns, parent, depth = 0) { - return columns.map(column => { - column = decorateColumn(column, parent) - if (column.columns) { - column.columns = decorateColumnTree(column.columns, column, depth + 1) - } - return column - }) - } - function flattenBy(columns, childKey) { const flatColumns = [] @@ -126,80 +203,4 @@ export const useColumns = props => { return flatColumns } - // Build the header groups from the bottom up - function makeHeaderGroups(columns, maxDepth) { - const headerGroups = [] - - const removeChildColumns = column => { - delete column.columns - if (column.parent) { - removeChildColumns(column.parent) - } - } - columns.forEach(removeChildColumns) - - const buildGroup = (columns, depth = 0) => { - const headerGroup = { - headers: [] - } - - const parentColumns = [] - - const hasParents = columns.some(col => col.parent) - - columns.forEach(column => { - const isFirst = !parentColumns.length - let latestParentColumn = [...parentColumns].reverse()[0] - - // If the column has a parent, add it if necessary - if (column.parent) { - if (isFirst || latestParentColumn.originalID !== column.parent.id) { - parentColumns.push({ - ...column.parent, - originalID: column.parent.id, - id: [column.parent.id, parentColumns.length].join('_') - }) - } - } else if (hasParents) { - // If other columns have parents, add a place holder if necessary - const placeholderColumn = decorateColumn({ - originalID: [column.id, 'placeholder', maxDepth - depth].join('_'), - id: [ - column.id, - 'placeholder', - maxDepth - depth, - parentColumns.length - ].join('_') - }) - if ( - isFirst || - latestParentColumn.originalID !== placeholderColumn.originalID - ) { - parentColumns.push(placeholderColumn) - } - } - - // Establish the new columns[] relationship on the parent - if (column.parent || hasParents) { - latestParentColumn = [...parentColumns].reverse()[0] - latestParentColumn.columns = latestParentColumn.columns || [] - if (!latestParentColumn.columns.includes(column)) { - latestParentColumn.columns.push(column) - } - } - - headerGroup.headers.push(column) - }) - - headerGroups.push(headerGroup) - - if (parentColumns.length) { - buildGroup(parentColumns) - } - } - - buildGroup(columns) - - return headerGroups.reverse() - } } diff --git a/src/hooks/useFilters.js b/src/hooks/useFilters.js index 1948afc..b6c9394 100755 --- a/src/hooks/useFilters.js +++ b/src/hooks/useFilters.js @@ -150,7 +150,7 @@ export const useFilters = props => { } return filterRows(rows) - }, [rows, filters, manualFilters]) + }, [manualFilters, filters, debug, rows, columns, filterFn]) return { ...props, diff --git a/src/hooks/useGroupBy.js b/src/hooks/useGroupBy.js index 0fe3693..3d36d90 100755 --- a/src/hooks/useGroupBy.js +++ b/src/hooks/useGroupBy.js @@ -180,7 +180,7 @@ export const useGroupBy = props => { // Assign the new data return groupRecursively(rows, groupBy) - }, [rows, groupBy, columns, manualGroupBy]) + }, [manualGroupBy, groupBy, debug, rows, columns, userAggregations, groupByFn]) return { ...props, diff --git a/src/hooks/usePagination.js b/src/hooks/usePagination.js index 5e4a438..0cf6ab8 100755 --- a/src/hooks/usePagination.js +++ b/src/hooks/usePagination.js @@ -38,7 +38,10 @@ export const usePagination = props => { ] } = props + const pageOptions = useMemo(() => [...new Array(userPageCount)].map((d, i) => i), [userPageCount]) + const rowDep = disablePageResetOnDataChange ? null : rows + useLayoutEffect(() => { setState( old => ({ @@ -76,9 +79,8 @@ export const usePagination = props => { pageCount, pageOptions } - }, [rows, pageSize, userPageCount]) + }, [manualPagination, debug, rows, pageOptions, userPageCount, pageSize]) - const pageOptions = [...new Array(pageCount)].map((d, i) => i) const page = manualPagination ? rows : pages[pageIndex] || [] const canPreviousPage = pageIndex > 0 const canNextPage = pageIndex < pageCount - 1 diff --git a/src/hooks/useRows.js b/src/hooks/useRows.js index e0a54dd..978fd9f 100755 --- a/src/hooks/useRows.js +++ b/src/hooks/useRows.js @@ -57,7 +57,7 @@ export const useRows = props => { // Use the resolved data return data.map((d, i) => accessRow(d, i)) - }, [data, columns]) + }, [debug, data, subRowsKey, columns]) return { ...props, From e2bb09d8b2899ee275abd17b6c61dc223f2e2d38 Mon Sep 17 00:00:00 2001 From: Larry Botha Date: Mon, 1 Jul 2019 22:03:57 -0500 Subject: [PATCH 5/5] Feature/add prettier config, ref #1383 (#1384) * add prettier config * write files with prettier * install and configure lint-staged and husky - ref 1.2 in #1383 * feat(style): add prettier configs, ref 1.1 & 1.2 in #1383 --- .huskyrc.js | 5 + lint-staged.config.js | 3 + package.json | 2 + prettier.config.js | 6 + src/hooks/useColumns.js | 23 +- src/hooks/useExpanded.js | 10 +- src/hooks/useFilters.js | 30 +- src/hooks/useFlexLayout.js | 24 +- src/hooks/useGroupBy.js | 46 ++- src/hooks/usePagination.js | 31 +- src/hooks/useRows.js | 6 +- src/hooks/useSimpleLayout.js | 10 +- src/hooks/useSortBy.js | 38 +- src/hooks/useTable.js | 18 +- src/hooks/useTableState.js | 6 +- src/hooks/useTokenPagination.js | 2 +- src/utils.js | 18 +- yarn.lock | 595 +++++++++++++++++++++++++++++++- 18 files changed, 733 insertions(+), 140 deletions(-) create mode 100644 .huskyrc.js create mode 100644 lint-staged.config.js create mode 100644 prettier.config.js diff --git a/.huskyrc.js b/.huskyrc.js new file mode 100644 index 0000000..6dd52fe --- /dev/null +++ b/.huskyrc.js @@ -0,0 +1,5 @@ +module.exports = { + hooks: { + 'pre-commit': 'lint-staged', + }, +} diff --git a/lint-staged.config.js b/lint-staged.config.js new file mode 100644 index 0000000..0469838 --- /dev/null +++ b/lint-staged.config.js @@ -0,0 +1,3 @@ +module.exports = { + '*.js': ['prettier --write', 'git add'], +} diff --git a/package.json b/package.json index 8455a73..e02b176 100644 --- a/package.json +++ b/package.json @@ -64,6 +64,8 @@ "eslint-plugin-react": "7.x", "eslint-plugin-react-hooks": "1.5.0", "eslint-plugin-standard": "^4.0.0", + "husky": "^3.0.0", + "lint-staged": "^9.0.0", "rollup": "^0.68.0", "rollup-plugin-babel": "^4.1.0", "rollup-plugin-commonjs": "^9.1.3", diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..0614ee7 --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,6 @@ +module.exports = { + trailingComma: 'es5', + tabWidth: 2, + semi: false, + singleQuote: true, +} diff --git a/src/hooks/useColumns.js b/src/hooks/useColumns.js index 2074d71..cdd7191 100755 --- a/src/hooks/useColumns.js +++ b/src/hooks/useColumns.js @@ -8,9 +8,9 @@ const propTypes = { columns: PropTypes.arrayOf( PropTypes.shape({ Cell: PropTypes.any, - Header: PropTypes.any + Header: PropTypes.any, }) - ) + ), } // Find the depth of the columns @@ -50,7 +50,7 @@ function decorateColumn(column, parent) { ...column, id, accessor, - parent + parent, } return column @@ -81,7 +81,7 @@ function makeHeaderGroups(columns, maxDepth) { const buildGroup = (columns, depth = 0) => { const headerGroup = { - headers: [] + headers: [], } const parentColumns = [] @@ -98,7 +98,7 @@ function makeHeaderGroups(columns, maxDepth) { parentColumns.push({ ...column.parent, originalID: column.parent.id, - id: [column.parent.id, parentColumns.length].join('_') + id: [column.parent.id, parentColumns.length].join('_'), }) } } else if (hasParents) { @@ -109,8 +109,8 @@ function makeHeaderGroups(columns, maxDepth) { column.id, 'placeholder', maxDepth - depth, - parentColumns.length - ].join('_') + parentColumns.length, + ].join('_'), }) if ( isFirst || @@ -148,7 +148,7 @@ export const useColumns = props => { const { debug, columns: userColumns, - state: [{ groupBy }] + state: [{ groupBy }], } = props PropTypes.checkPropTypes(propTypes, props, 'property', 'useColumns') @@ -164,7 +164,7 @@ export const useColumns = props => { columns = [ ...groupBy.map(g => columns.find(col => col.id === g)), - ...columns.filter(col => !groupBy.includes(col.id)) + ...columns.filter(col => !groupBy.includes(col.id)), ] // Get headerGroups @@ -174,7 +174,7 @@ export const useColumns = props => { return { columns, headerGroups, - headers + headers, } }, [debug, groupBy, userColumns]) @@ -182,7 +182,7 @@ export const useColumns = props => { ...props, columns, headerGroups, - headers + headers, } function flattenBy(columns, childKey) { @@ -202,5 +202,4 @@ export const useColumns = props => { return flatColumns } - } diff --git a/src/hooks/useExpanded.js b/src/hooks/useExpanded.js index 7f0e81f..80489d1 100755 --- a/src/hooks/useExpanded.js +++ b/src/hooks/useExpanded.js @@ -9,12 +9,12 @@ defaultState.expanded = {} addActions({ toggleExpanded: '__toggleExpanded__', - useExpanded: '__useExpanded__' + useExpanded: '__useExpanded__', }) const propTypes = { expandedKey: PropTypes.string, - paginateSubRows: PropTypes.bool + paginateSubRows: PropTypes.bool, } export const useExpanded = props => { @@ -26,7 +26,7 @@ export const useExpanded = props => { expandedKey = 'expanded', hooks, state: [{ expanded }, setState], - paginateSubRows = true + paginateSubRows = true, } = props const toggleExpandedByPath = (path, set) => { @@ -36,7 +36,7 @@ export const useExpanded = props => { set = getFirstDefined(set, !existing) return { ...old, - expanded: setBy(expanded, path, set) + expanded: setBy(expanded, path, set), } }, actions.toggleExpanded) } @@ -85,7 +85,7 @@ export const useExpanded = props => { ...props, toggleExpandedByPath, expandedDepth, - rows: expandedRows + rows: expandedRows, } } diff --git a/src/hooks/useFilters.js b/src/hooks/useFilters.js index b6c9394..a6b74c3 100755 --- a/src/hooks/useFilters.js +++ b/src/hooks/useFilters.js @@ -8,7 +8,7 @@ import { defaultState } from './useTableState' defaultState.filters = {} addActions({ setFilter: '__setFilter__', - setAllFilters: '__setAllFilters__' + setAllFilters: '__setAllFilters__', }) const propTypes = { @@ -18,12 +18,12 @@ const propTypes = { filterFn: PropTypes.func, filterAll: PropTypes.bool, canFilter: PropTypes.bool, - Filter: PropTypes.any + Filter: PropTypes.any, }) ), filterFn: PropTypes.func, - manualFilters: PropTypes.bool + manualFilters: PropTypes.bool, } export const useFilters = props => { @@ -37,17 +37,17 @@ export const useFilters = props => { manualFilters, disableFilters, hooks, - state: [{ filters }, setState] + state: [{ filters }, setState], } = props columns.forEach(column => { const { id, accessor, canFilter } = column column.canFilter = accessor ? getFirstDefined( - canFilter, - disableFilters === true ? false : undefined, - true - ) + canFilter, + disableFilters === true ? false : undefined, + true + ) : false // Was going to add this to the filter hook column.filterValue = filters[id] @@ -60,8 +60,8 @@ export const useFilters = props => { return { ...old, filters: { - ...rest - } + ...rest, + }, } } @@ -69,8 +69,8 @@ export const useFilters = props => { ...old, filters: { ...filters, - [id]: val - } + [id]: val, + }, } }, actions.setFilter) } @@ -79,7 +79,7 @@ export const useFilters = props => { return setState(old => { return { ...old, - filters + filters, } }, actions.setAllFilters) } @@ -134,7 +134,7 @@ export const useFilters = props => { } return { ...row, - subRows: filterRows(row.subRows) + subRows: filterRows(row.subRows), } }) @@ -156,6 +156,6 @@ export const useFilters = props => { ...props, setFilter, setAllFilters, - rows: filteredRows + rows: filteredRows, } } diff --git a/src/hooks/useFlexLayout.js b/src/hooks/useFlexLayout.js index db400b4..362c440 100755 --- a/src/hooks/useFlexLayout.js +++ b/src/hooks/useFlexLayout.js @@ -5,7 +5,7 @@ import { getFirstDefined, sum } from '../utils' export const actions = {} const propTypes = { - defaultFlex: PropTypes.number + defaultFlex: PropTypes.number, } export const useFlexLayout = props => { @@ -18,8 +18,8 @@ export const useFlexLayout = props => { getRowProps, getHeaderRowProps, getHeaderProps, - getCellProps - } + getCellProps, + }, } = props columnsHooks.push((columns, api) => { @@ -47,8 +47,8 @@ export const useFlexLayout = props => { const rowStyles = { style: { display: 'flex', - minWidth: `${sumWidth}px` - } + minWidth: `${sumWidth}px`, + }, } api.rowStyles = rowStyles @@ -59,8 +59,8 @@ export const useFlexLayout = props => { getHeaderProps.push(column => ({ style: { boxSizing: 'border-box', - ...getStylesForColumn(column, columnMeasurements, defaultFlex, api) - } + ...getStylesForColumn(column, columnMeasurements, defaultFlex, api), + }, // [refKey]: el => { // renderedCellInfoRef.current[key] = { // column, @@ -80,8 +80,8 @@ export const useFlexLayout = props => { defaultFlex, undefined, api - ) - } + ), + }, // [refKey]: el => { // renderedCellInfoRef.current[columnPathStr] = { // column, @@ -110,7 +110,7 @@ function getStylesForColumn(column, columnMeasurements, defaultFlex, api) { return { flex: `${flex} 0 auto`, width: `${width}px`, - maxWidth: `${maxWidth}px` + maxWidth: `${maxWidth}px`, } } @@ -138,7 +138,7 @@ function getSizesForColumn( return { flex, width, - maxWidth + maxWidth, } } @@ -148,7 +148,7 @@ function getSizesForColumn( width === 'auto' ? columnMeasurements[id] || defaultFlex : getFirstDefined(width, minWidth, defaultFlex), - maxWidth + maxWidth, } } diff --git a/src/hooks/useGroupBy.js b/src/hooks/useGroupBy.js index 3d36d90..6187735 100755 --- a/src/hooks/useGroupBy.js +++ b/src/hooks/useGroupBy.js @@ -8,13 +8,13 @@ import { mergeProps, applyPropHooks, defaultGroupByFn, - getFirstDefined + getFirstDefined, } from '../utils' defaultState.groupBy = [] addActions({ - toggleGroupBy: '__toggleGroupBy__' + toggleGroupBy: '__toggleGroupBy__', }) const propTypes = { @@ -23,12 +23,12 @@ const propTypes = { PropTypes.shape({ aggregate: PropTypes.func, canGroupBy: PropTypes.bool, - Aggregated: PropTypes.any + Aggregated: PropTypes.any, }) ), groupByFn: PropTypes.func, manualGrouping: PropTypes.bool, - aggregations: PropTypes.object + aggregations: PropTypes.object, } export const useGroupBy = props => { @@ -43,7 +43,7 @@ export const useGroupBy = props => { disableGrouping, aggregations: userAggregations = {}, hooks, - state: [{ groupBy }, setState] + state: [{ groupBy }, setState], } = props columns.forEach(column => { @@ -52,10 +52,10 @@ export const useGroupBy = props => { column.canGroupBy = accessor ? getFirstDefined( - canGroupBy, - disableGrouping === true ? false : undefined, - true - ) + canGroupBy, + disableGrouping === true ? false : undefined, + true + ) : false column.Aggregated = column.Aggregated || column.Cell @@ -68,12 +68,12 @@ export const useGroupBy = props => { if (resolvedToggle) { return { ...old, - groupBy: [...groupBy, id] + groupBy: [...groupBy, id], } } return { ...old, - groupBy: groupBy.filter(d => d !== id) + groupBy: groupBy.filter(d => d !== id), } }, actions.toggleGroupBy) } @@ -97,14 +97,14 @@ export const useGroupBy = props => { { onClick: canGroupBy ? e => { - e.persist() - column.toggleGroupBy() - } + e.persist() + column.toggleGroupBy() + } : undefined, style: { - cursor: canGroupBy ? 'pointer' : undefined + cursor: canGroupBy ? 'pointer' : undefined, }, - title: 'Toggle GroupBy' + title: 'Toggle GroupBy', }, applyPropHooks(api.hooks.getGroupByToggleProps, column, api), props @@ -169,7 +169,7 @@ export const useGroupBy = props => { values, subRows, depth, - index + index, } return row } @@ -180,10 +180,18 @@ export const useGroupBy = props => { // Assign the new data return groupRecursively(rows, groupBy) - }, [manualGroupBy, groupBy, debug, rows, columns, userAggregations, groupByFn]) + }, [ + manualGroupBy, + groupBy, + debug, + rows, + columns, + userAggregations, + groupByFn, + ]) return { ...props, - rows: groupedRows + rows: groupedRows, } } diff --git a/src/hooks/usePagination.js b/src/hooks/usePagination.js index 0cf6ab8..31daf81 100755 --- a/src/hooks/usePagination.js +++ b/src/hooks/usePagination.js @@ -9,12 +9,12 @@ defaultState.pageSize = 10 defaultState.pageIndex = 0 addActions({ - pageChange: '__pageChange__' + pageChange: '__pageChange__', }) const propTypes = { // General - manualPagination: PropTypes.bool + manualPagination: PropTypes.bool, } export const usePagination = props => { @@ -32,31 +32,34 @@ export const usePagination = props => { pageCount: userPageCount, filters, groupBy, - sortBy + sortBy, }, - setState - ] + setState, + ], } = props - const pageOptions = useMemo(() => [...new Array(userPageCount)].map((d, i) => i), [userPageCount]) + const pageOptions = useMemo( + () => [...new Array(userPageCount)].map((d, i) => i), + [userPageCount] + ) const rowDep = disablePageResetOnDataChange ? null : rows - + useLayoutEffect(() => { setState( old => ({ ...old, - pageIndex: 0 + pageIndex: 0, }), actions.pageChange ) }, [setState, rowDep, filters, groupBy, sortBy]) - + const { pages, pageCount } = useMemo(() => { if (manualPagination) { return { pages: [rows], - pageCount: userPageCount + pageCount: userPageCount, } } if (debug) console.info('getPages') @@ -77,7 +80,7 @@ export const usePagination = props => { return { pages, pageCount, - pageOptions + pageOptions, } }, [manualPagination, debug, rows, pageOptions, userPageCount, pageSize]) @@ -93,7 +96,7 @@ export const usePagination = props => { } return { ...old, - pageIndex + pageIndex, } }, actions.pageChange) } @@ -113,7 +116,7 @@ export const usePagination = props => { return { ...old, pageIndex, - pageSize + pageSize, } }, actions.setPageSize) } @@ -130,6 +133,6 @@ export const usePagination = props => { nextPage, setPageSize, pageIndex, - pageSize + pageSize, } } diff --git a/src/hooks/useRows.js b/src/hooks/useRows.js index 978fd9f..b7b5c5e 100755 --- a/src/hooks/useRows.js +++ b/src/hooks/useRows.js @@ -2,7 +2,7 @@ import { useMemo } from 'react' import PropTypes from 'prop-types' const propTypes = { - subRowsKey: PropTypes.string + subRowsKey: PropTypes.string, } export const useRows = props => { @@ -29,7 +29,7 @@ export const useRows = props => { path: [i], // used to create a key for each row even if not nested subRows, depth, - cells: [{}] // This is a dummy cell + cells: [{}], // This is a dummy cell } // Override common array functions (and the dummy cell's getCellProps function) @@ -61,6 +61,6 @@ export const useRows = props => { return { ...props, - rows: accessedRows + rows: accessedRows, } } diff --git a/src/hooks/useSimpleLayout.js b/src/hooks/useSimpleLayout.js index c126323..a2793d3 100644 --- a/src/hooks/useSimpleLayout.js +++ b/src/hooks/useSimpleLayout.js @@ -1,14 +1,14 @@ export const useSimpleLayout = props => { const { - hooks: { columns: columnsHooks, getHeaderProps, getCellProps } + hooks: { columns: columnsHooks, getHeaderProps, getCellProps }, } = props columnsHooks.push(columns => { getHeaderProps.push(column => ({ style: { boxSizing: 'border-box', - width: column.width !== undefined ? `${column.width}px` : 'auto' - } + width: column.width !== undefined ? `${column.width}px` : 'auto', + }, })) getCellProps.push(cell => { @@ -16,8 +16,8 @@ export const useSimpleLayout = props => { style: { boxSizing: 'border-box', width: - cell.column.width !== undefined ? `${cell.column.width}px` : 'auto' - } + cell.column.width !== undefined ? `${cell.column.width}px` : 'auto', + }, } }) diff --git a/src/hooks/useSortBy.js b/src/hooks/useSortBy.js index b960743..af3b867 100755 --- a/src/hooks/useSortBy.js +++ b/src/hooks/useSortBy.js @@ -8,13 +8,13 @@ import { applyPropHooks, getFirstDefined, defaultOrderByFn, - defaultSortByFn + defaultSortByFn, } from '../utils' defaultState.sortBy = [] addActions({ - sortByChange: '__sortByChange__' + sortByChange: '__sortByChange__', }) const propTypes = { @@ -22,7 +22,7 @@ const propTypes = { columns: PropTypes.arrayOf( PropTypes.shape({ sortByFn: PropTypes.func, - defaultSortDesc: PropTypes.bool + defaultSortDesc: PropTypes.bool, }) ), sortByFn: PropTypes.func, @@ -30,7 +30,7 @@ const propTypes = { disableSorting: PropTypes.bool, defaultSortDesc: PropTypes.bool, disableMultiSort: PropTypes.bool, - disableSortRemove: PropTypes.bool + disableSortRemove: PropTypes.bool, } export const useSortBy = props => { @@ -47,7 +47,7 @@ export const useSortBy = props => { defaultSortDesc, disableSortRemove, hooks, - state: [{ sortBy }, setState] + state: [{ sortBy }, setState], } = props columns.forEach(column => { @@ -84,9 +84,11 @@ export const useSortBy = props => { if (!multi) { if (sortBy.length <= 1 && existingSortBy) { - if ((existingSortBy.desc && !resolvedDefaultSortDesc) || - (!existingSortBy.desc && resolvedDefaultSortDesc)) { - action = disableSortRemove? 'toggle' : 'remove' + if ( + (existingSortBy.desc && !resolvedDefaultSortDesc) || + (!existingSortBy.desc && resolvedDefaultSortDesc) + ) { + action = disableSortRemove ? 'toggle' : 'remove' } else { action = 'toggle' } @@ -109,23 +111,23 @@ export const useSortBy = props => { newSortBy = [ { id: columnID, - desc: hasDescDefined ? desc : resolvedDefaultSortDesc - } + desc: hasDescDefined ? desc : resolvedDefaultSortDesc, + }, ] } else if (action === 'add') { newSortBy = [ ...sortBy, { id: columnID, - desc: hasDescDefined ? desc : resolvedDefaultSortDesc - } + desc: hasDescDefined ? desc : resolvedDefaultSortDesc, + }, ] } else if (action === 'set') { newSortBy = sortBy.map(d => { if (d.id === columnID) { return { ...d, - desc + desc, } } return d @@ -135,7 +137,7 @@ export const useSortBy = props => { if (d.id === columnID) { return { ...d, - desc: !existingSortBy.desc + desc: !existingSortBy.desc, } } return d @@ -146,7 +148,7 @@ export const useSortBy = props => { return { ...old, - sortBy: newSortBy + sortBy: newSortBy, } }, actions.sortByChange) } @@ -179,9 +181,9 @@ export const useSortBy = props => { } : undefined, style: { - cursor: canSortBy ? 'pointer' : undefined + cursor: canSortBy ? 'pointer' : undefined, }, - title: 'Toggle SortBy' + title: 'Toggle SortBy', }, applyPropHooks(api.hooks.getSortByToggleProps, column, api), props @@ -254,6 +256,6 @@ export const useSortBy = props => { return { ...props, - rows: sortedRows + rows: sortedRows, } } diff --git a/src/hooks/useTable.js b/src/hooks/useTable.js index 0edfb88..ec6576f 100755 --- a/src/hooks/useTable.js +++ b/src/hooks/useTable.js @@ -10,7 +10,7 @@ const renderErr = const propTypes = { // General data: PropTypes.array.isRequired, - debug: PropTypes.bool + debug: PropTypes.bool, } export const useTable = (props, ...plugins) => { @@ -41,7 +41,7 @@ export const useTable = (props, ...plugins) => { getRowProps: [], getHeaderRowProps: [], getHeaderProps: [], - getCellProps: [] + getCellProps: [], } // The initial api @@ -49,7 +49,7 @@ export const useTable = (props, ...plugins) => { ...props, data, state, - hooks + hooks, } if (debug) console.time('hooks') @@ -83,7 +83,7 @@ export const useTable = (props, ...plugins) => { return flexRender(column[type], { ...api, ...column, - ...userProps + ...userProps, }) } @@ -92,7 +92,7 @@ export const useTable = (props, ...plugins) => { mergeProps( { key: ['header', column.id].join('_'), - colSpan: column.columns ? column.columns.length : 1 + colSpan: column.columns ? column.columns.length : 1, }, applyPropHooks(api.hooks.getHeaderProps, column, api), props @@ -125,7 +125,7 @@ export const useTable = (props, ...plugins) => { headerGroup.getRowProps = (props = {}) => mergeProps( { - key: [`header${i}`].join('_') + key: [`header${i}`].join('_'), }, applyPropHooks(api.hooks.getHeaderRowProps, headerGroup, api), props @@ -164,14 +164,14 @@ export const useTable = (props, ...plugins) => { const cell = { column, row, - value: row.values[column.id] + value: row.values[column.id], } cell.getCellProps = props => { const columnPathStr = [path, column.id].join('_') return mergeProps( { - key: ['cell', columnPathStr].join('_') + key: ['cell', columnPathStr].join('_'), }, applyPropHooks(api.hooks.getCellProps, cell, api), props @@ -187,7 +187,7 @@ export const useTable = (props, ...plugins) => { return flexRender(column[type], { ...api, ...cell, - ...userProps + ...userProps, }) } diff --git a/src/hooks/useTableState.js b/src/hooks/useTableState.js index 25d014f..0a6b97d 100755 --- a/src/hooks/useTableState.js +++ b/src/hooks/useTableState.js @@ -11,12 +11,12 @@ export const useTableState = ( ) => { let [state, setState] = userUseState({ ...defaultState, - ...initialState + ...initialState, }) const overriddenState = React.useMemo(() => { const newState = { - ...state + ...state, } if (overrides) { Object.keys(overrides).forEach(key => { @@ -38,6 +38,6 @@ export const useTableState = ( return React.useMemo(() => [overriddenState, reducedSetState], [ overriddenState, - reducedSetState + reducedSetState, ]) } diff --git a/src/hooks/useTokenPagination.js b/src/hooks/useTokenPagination.js index e1d40ac..9e2af40 100644 --- a/src/hooks/useTokenPagination.js +++ b/src/hooks/useTokenPagination.js @@ -46,6 +46,6 @@ export const useTokenPagination = () => { nextPage, canPreviousPage, canNextPage, - resetPagination + resetPagination, } } diff --git a/src/utils.js b/src/utils.js index c0ea29b..6fc5bd2 100755 --- a/src/utils.js +++ b/src/utils.js @@ -70,8 +70,8 @@ export function defaultGroupByFn(rows, grouper) { export function defaultFilterFn(row, id, value, column) { return row.values[id] !== undefined ? String(row.values[id]) - .toLowerCase() - .includes(String(value).toLowerCase()) + .toLowerCase() + .includes(String(value).toLowerCase()) : true } @@ -83,7 +83,7 @@ export function setBy(obj = {}, path, value) { depth === path.length - 1 ? value : recurse(target, depth + 1) return { ...obj, - [key]: subValue + [key]: subValue, } } @@ -95,11 +95,11 @@ export function getElementDimensions(element) { const style = window.getComputedStyle(element) const margins = { left: parseInt(style.marginLeft), - right: parseInt(style.marginRight) + right: parseInt(style.marginRight), } const padding = { left: parseInt(style.paddingLeft), - right: parseInt(style.paddingRight) + right: parseInt(style.paddingRight), } return { left: Math.ceil(rect.left), @@ -111,7 +111,7 @@ export function getElementDimensions(element) { marginRight: margins.right, paddingLeft: padding.left, paddingRight: padding.right, - scrollWidth: element.scrollWidth + scrollWidth: element.scrollWidth, } } @@ -134,9 +134,9 @@ export const mergeProps = (...groups) => { ...rest, style: { ...(props.style || {}), - ...style + ...style, }, - className: [props.className, className].filter(Boolean).join(' ') + className: [props.className, className].filter(Boolean).join(' '), } }) return props @@ -152,7 +152,7 @@ export const warnUnknownProps = props => { if (Object.keys(props).length) { throw new Error( `Unknown options passed to useReactTable: - + ${JSON.stringify(props, null, 2)}` ) } diff --git a/yarn.lock b/yarn.lock index fb73e2f..e32c5bf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -684,6 +684,13 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" + integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== + dependencies: + any-observable "^0.3.0" + "@svgr/babel-plugin-add-jsx-attribute@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.0.0.tgz#5acf239cd2747b1a36ec7e708de05d914cb9b948" @@ -794,11 +801,35 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + "@types/node@*": version "10.12.21" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e" integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ== +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + "@types/q@^1.5.1": version "1.5.1" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.1.tgz#48fd98c1561fe718b61733daed46ff115b496e18" @@ -846,7 +877,7 @@ ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-escapes@^3.2.0: +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== @@ -864,12 +895,22 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" dependencies: color-convert "^1.9.0" +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -906,6 +947,18 @@ array-includes@^3.0.3: define-properties "^1.1.2" es-abstract "^1.7.0" +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" @@ -973,6 +1026,13 @@ braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" +braces@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + browserslist@^4.3.4: version "4.4.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.4.1.tgz#42e828954b6b29a7a53e352277be429478a69062" @@ -1030,6 +1090,17 @@ ccount@^1.0.3: resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.3.tgz#f1cec43f332e2ea5a569fd46f9f5bde4e6102aff" integrity sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw== +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + chalk@^2.0.0: version "2.4.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.0.tgz#a060a297a6b57e15b61ca63ce84995daa0fe6e52" @@ -1060,7 +1131,12 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -cli-cursor@^2.1.0: +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cli-cursor@^2.0.0, cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" dependencies: @@ -1076,6 +1152,14 @@ cli-table3@^0.5.0: optionalDependencies: colors "^1.1.2" +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" @@ -1140,7 +1224,7 @@ comma-separated-tokens@^1.0.0: dependencies: trim "0.0.1" -commander@^2.11.0: +commander@^2.11.0, commander@^2.20.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== @@ -1182,6 +1266,16 @@ cosmiconfig@^5.0.7: js-yaml "^3.9.0" parse-json "^4.0.0" +cosmiconfig@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + cross-env@^5.1.4: version "5.1.4" resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.1.4.tgz#f61c14291f7cc653bb86457002ea80a04699d022" @@ -1261,13 +1355,18 @@ damerau-levenshtein@^1.0.4: resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414" integrity sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA== +date-fns@^1.27.2: + version "1.30.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== + debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: ms "2.0.0" -debug@^4.0.1, debug@^4.1.0: +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== @@ -1279,6 +1378,11 @@ decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -1297,6 +1401,19 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -1348,6 +1465,11 @@ electron-to-chromium@^1.3.103: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz#b1ccf619df7295aea17bc6951dc689632629e4a9" integrity sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g== +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= + emoji-regex@^7.0.1, emoji-regex@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -1410,7 +1532,7 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" -escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -1673,6 +1795,21 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/execa/-/execa-2.0.2.tgz#3af2650be2b719549dc011a53118ecff5e28d0a2" + integrity sha512-CkFnhVuWj5stQUvRSeI+zAw0ME+Iprkew4HKSc491vOXLM+hKrDVn+QQoL2CIYy0CpvT0mY+MXlzPreNbuj/8A== + dependencies: + cross-spawn "^6.0.5" + get-stream "^5.0.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^3.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" @@ -1723,6 +1860,14 @@ fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" +figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + 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" @@ -1750,6 +1895,13 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -1763,6 +1915,14 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -1812,11 +1972,21 @@ 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" +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" + integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg== + get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== +get-stdin@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" + integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== + get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -1824,6 +1994,13 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" +get-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" @@ -1837,9 +2014,10 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" +glob@^7.0.3, glob@^7.1.3: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -1848,10 +2026,9 @@ glob@^7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.3: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== +glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -1869,10 +2046,28 @@ globals@^11.7.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.10.0.tgz#1e09776dffda5e01816b3bb4077c8b59c24eaa50" integrity sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ== +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + graceful-fs@^4.1.2: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -1925,6 +2120,22 @@ hosted-git-info@^2.1.4: version "2.6.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" +husky@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/husky/-/husky-3.0.0.tgz#de63821a7049dc412b1afd753c259e2f6e227562" + integrity sha512-lKMEn7bRK+7f5eWPNGclDVciYNQt0GIkAQmhKl+uHP1qFzoN0h92kmH9HZ8PCwyVA2EQPD8KHf0FYWqnTxau+Q== + dependencies: + cosmiconfig "^5.2.1" + execa "^1.0.0" + get-stdin "^7.0.0" + is-ci "^2.0.0" + opencollective-postinstall "^2.0.2" + pkg-dir "^4.2.0" + please-upgrade-node "^3.1.1" + read-pkg "^5.1.1" + run-node "^1.0.0" + slash "^3.0.0" + iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -1962,6 +2173,11 @@ imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -2031,6 +2247,13 @@ is-callable@^1.1.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.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" @@ -2090,6 +2313,42 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== + dependencies: + symbol-observable "^1.1.0" + +is-path-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.1.0.tgz#2e0c7e463ff5b7a0eb60852d851a6809347a124c" + integrity sha512-Sc5j3/YnM8tDeyCsVeKlm/0p95075DyLmDEIkSgQ7mXkrOX+uTCtmQFm0CYzVyJwcCCmO3k8qfJt17SxQwB5Zw== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -2120,11 +2379,21 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + is-symbol@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" @@ -2189,7 +2458,7 @@ js-yaml@^3.12.0, js-yaml@^3.9.0: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^3.13.0: +js-yaml@^3.13.0, js-yaml@^3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== @@ -2281,6 +2550,69 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +lint-staged@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-9.0.0.tgz#3ab93063f11ee2e6782769149de0f1e815d49731" + integrity sha512-32TJoaeyAaj3rvabaXWe0eOhAhnsYRixEmXuSxKbs0uczFbwVjoDhJ/s2g6r1v8jMTw7t5OzXlHR8iaKtz8nLQ== + dependencies: + chalk "^2.4.2" + commander "^2.20.0" + cosmiconfig "^5.2.1" + debug "^4.1.1" + dedent "^0.7.0" + del "^4.1.1" + execa "^2.0.1" + listr "^0.14.3" + log-symbols "^3.0.0" + micromatch "^4.0.2" + please-upgrade-node "^3.1.1" + string-argv "^0.3.0" + stringify-object "^3.3.0" + +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= + +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^2.3.0" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + +listr@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" + load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" @@ -2305,11 +2637,41 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + lodash@^4.17.10, lodash@^4.17.11: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= + dependencies: + chalk "^1.0.0" + +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= + dependencies: + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" + loose-envify@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" @@ -2374,6 +2736,11 @@ merge-stream@^1.0.1: dependencies: readable-stream "^2.0.1" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + micromatch@^2.3.11: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" @@ -2392,10 +2759,23 @@ micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -2462,6 +2842,16 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -2475,6 +2865,13 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +npm-run-path@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" + integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== + dependencies: + path-key "^3.0.0" + nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -2486,7 +2883,7 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -object-assign@^4.1.0, object-assign@^4.1.1: +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" @@ -2547,6 +2944,18 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + +opencollective-postinstall@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" + integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== + optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" @@ -2581,6 +2990,11 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + p-is-promise@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.0.0.tgz#7554e3d572109a87e1f3f53f6a7d85d1b194f4c5" @@ -2599,6 +3013,13 @@ p-limit@^2.0.0: dependencies: p-try "^2.0.0" +p-limit@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" + integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== + dependencies: + p-try "^2.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -2612,6 +3033,18 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -2659,6 +3092,11 @@ path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + 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" @@ -2671,6 +3109,11 @@ path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" +path-key@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.0.tgz#99a10d870a803bdd5ee6f0470e58dfcd2f9a54d3" + integrity sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg== + path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" @@ -2686,10 +3129,32 @@ path-type@^2.0.0: dependencies: pify "^2.0.0" +picomatch@^2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" + integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" @@ -2697,6 +3162,20 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +please-upgrade-node@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" + integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ== + dependencies: + semver-compare "^1.0.0" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -2790,6 +3269,16 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" +read-pkg@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.1.1.tgz#5cf234dde7a405c90c88a519ab73c467e9cb83f5" + integrity sha512-dFcTLQi6BZ+aFUaICg7er+/usEoqFdQxiEBsEMNGoipenihtxxtdrQuBXvyANCEI8VuUIVYFgeHGx9sLLvim4w== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^4.0.0" + type-fest "^0.4.1" + readable-stream@^2.0.1: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" @@ -2942,7 +3431,7 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" -rimraf@2.6.3: +rimraf@2.6.3, rimraf@^2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== @@ -3013,6 +3502,18 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" +run-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" + integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== + +rxjs@^6.3.3: + version "6.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== + dependencies: + tslib "^1.9.0" + rxjs@^6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" @@ -3035,6 +3536,11 @@ sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" @@ -3077,6 +3583,16 @@ 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" +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= + slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -3138,6 +3654,11 @@ stable@~0.1.6: resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== +string-argv@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.0.tgz#0ea99e7257fea5e97a1bfcdfc19cf12d68e6ec6a" + integrity sha512-NGZHq3nkSXVtGZXTBjFru3MNfoZyIzN25T7BmvdgnSC0LCJczAGLLMQLyjywSIaAoqSemgLzBRHOsnrHbt60+Q== + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -3169,6 +3690,15 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -3197,11 +3727,21 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-json-comments@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + supports-color@^5.3.0: version "5.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" @@ -3235,6 +3775,11 @@ svgo@^1.1.1: unquote "~1.1.1" util.promisify "~1.0.0" +symbol-observable@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + table@^5.2.3: version "5.4.0" resolved "https://registry.yarnpkg.com/table/-/table-5.4.0.tgz#d772a3216e68829920a41a32c18eda286c95d780" @@ -3264,6 +3809,13 @@ to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" @@ -3289,6 +3841,11 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-fest@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" + integrity sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw== + uglify-js@^3.4.9: version "3.4.9" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" @@ -3415,6 +3972,14 @@ wrap-ansi@^2.0.0: string-width "^1.0.1" strip-ansi "^3.0.1" +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"